From 7252698764ddc0a3d3b4bc6e4ad83d1016a8f571 Mon Sep 17 00:00:00 2001 From: m0_75251201 Date: Sat, 30 Aug 2025 00:26:27 +0800 Subject: [PATCH] =?UTF-8?q?(client)=20feat:UI=E6=9B=B4=E6=96=B0=20chore:Lo?= =?UTF-8?q?gUI=E6=80=A7=E8=83=BD=E6=9B=B4=E5=A5=BD=EF=BC=8C=E5=B9=B6?= =?UTF-8?q?=E4=B8=94=E4=BF=AE=E5=A4=8D=E5=8F=8D=E5=A4=8D=E6=89=93=E5=BC=80?= =?UTF-8?q?Log=E6=B6=88=E5=A4=B1=E7=9A=84bug=EF=BC=8C=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E9=83=A8=E5=88=86=E9=9D=9E=E9=A2=84=E6=9C=9F=E7=9A=84=E8=AD=A6?= =?UTF-8?q?=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Client/Assets/Resources/UI.meta | 8 + Client/Assets/Resources/UI/其余杂项.meta | 8 + .../Resources/UI/其余杂项/小地图背景.svg | 602 ++++++++++++++++++ .../Resources/UI/其余杂项/小地图背景.svg.meta | 55 ++ .../Assets/Resources/UI/其余杂项/局内金钱.svg | 335 ++++++++++ .../Resources/UI/其余杂项/局内金钱.svg.meta | 55 ++ .../UI/其余杂项/非当前层级-行为示意栏.svg | 338 ++++++++++ .../其余杂项/非当前层级-行为示意栏.svg.meta | 55 ++ .../Assets/Resources/UI/增减益状态栏UI.meta | 8 + .../UI/增减益状态栏UI/当前层级减益状态栏.svg | 334 ++++++++++ .../当前层级减益状态栏.svg.meta | 55 ++ .../UI/增减益状态栏UI/当前层级增益状态栏.svg | 244 +++++++ .../当前层级增益状态栏.svg.meta | 55 ++ .../增减益状态栏UI/非当前层级减益状态栏.svg | 334 ++++++++++ .../非当前层级减益状态栏.svg.meta | 55 ++ .../增减益状态栏UI/非当前层级增益状态栏.svg | 334 ++++++++++ .../非当前层级增益状态栏.svg.meta | 55 ++ Client/Assets/Resources/UI/武器栏UI.meta | 8 + .../Resources/UI/武器栏UI/当前武器栏.svg | 338 ++++++++++ .../Resources/UI/武器栏UI/当前武器栏.svg.meta | 55 ++ .../Resources/UI/武器栏UI/非当前武器栏.svg | 338 ++++++++++ .../UI/武器栏UI/非当前武器栏.svg.meta | 55 ++ Client/Assets/Resources/UI/血条相关UI.meta | 8 + .../Resources/UI/血条相关UI/基地血条.svg | 16 + .../Resources/UI/血条相关UI/基地血条.svg.meta | 55 ++ .../Resources/UI/血条相关UI/基地血条底.svg | 13 + .../UI/血条相关UI/基地血条底.svg.meta | 55 ++ .../Resources/UI/血条相关UI/当前层级血条.svg | 26 + .../UI/血条相关UI/当前层级血条.svg.meta | 55 ++ .../Assets/Resources/UI/血条相关UI/血条底.svg | 18 + .../Resources/UI/血条相关UI/血条底.svg.meta | 55 ++ .../UI/血条相关UI/非当前层级血条.svg | 26 + .../UI/血条相关UI/非当前层级血条.svg.meta | 55 ++ .../UI/血条相关UI/非当前层级血条底.svg | 18 + .../UI/血条相关UI/非当前层级血条底.svg.meta | 55 ++ .../RunTimeResource/MiniMap.renderTexture | 4 +- Client/Assets/Scenes/Game.unity | 412 +++++------- Client/Assets/Scripts/Base/Clock.cs | 223 +++++-- Client/Assets/Scripts/Base/UIInputControl.cs | 2 - .../Scripts/CameraControl/CameraControl.cs | 210 +++--- Client/Assets/Scripts/Entity/Entity.cs | 4 +- Client/Assets/Scripts/Item/ItemResource.cs | 7 - Client/Assets/Scripts/Logging/LogCapturer.cs | 49 +- .../Scripts/Logging/LoggerManagerWrapper.cs | 2 +- .../Assets/Scripts/Managers/DefineManager.cs | 1 - Client/Assets/Scripts/Map/Dimension.cs | 15 +- Client/Assets/Scripts/UI/BarUI.cs | 57 +- Client/Assets/Scripts/UI/Button3D.cs | 27 +- Client/Assets/Scripts/UI/DevMenuUI.cs | 2 +- Client/Assets/Scripts/UI/EquipmentUI.cs | 20 +- Client/Assets/Scripts/UI/FullScreenUI.cs | 21 + Client/Assets/Scripts/UI/FullScreenUI.cs.meta | 2 + Client/Assets/Scripts/UI/LogUI.cs | 95 ++- Client/Assets/Scripts/UI/SettingUI.cs | 1 + .../Assets/Shader/OutlineShader.shadergraph | 2 +- Client/Packages/manifest.json | 1 + Client/Packages/packages-lock.json | 19 + Client/ProjectSettings/ProjectSettings.asset | 2 +- 58 files changed, 4849 insertions(+), 508 deletions(-) create mode 100644 Client/Assets/Resources/UI.meta create mode 100644 Client/Assets/Resources/UI/其余杂项.meta create mode 100644 Client/Assets/Resources/UI/其余杂项/小地图背景.svg create mode 100644 Client/Assets/Resources/UI/其余杂项/小地图背景.svg.meta create mode 100644 Client/Assets/Resources/UI/其余杂项/局内金钱.svg create mode 100644 Client/Assets/Resources/UI/其余杂项/局内金钱.svg.meta create mode 100644 Client/Assets/Resources/UI/其余杂项/非当前层级-行为示意栏.svg create mode 100644 Client/Assets/Resources/UI/其余杂项/非当前层级-行为示意栏.svg.meta create mode 100644 Client/Assets/Resources/UI/增减益状态栏UI.meta create mode 100644 Client/Assets/Resources/UI/增减益状态栏UI/当前层级减益状态栏.svg create mode 100644 Client/Assets/Resources/UI/增减益状态栏UI/当前层级减益状态栏.svg.meta create mode 100644 Client/Assets/Resources/UI/增减益状态栏UI/当前层级增益状态栏.svg create mode 100644 Client/Assets/Resources/UI/增减益状态栏UI/当前层级增益状态栏.svg.meta create mode 100644 Client/Assets/Resources/UI/增减益状态栏UI/非当前层级减益状态栏.svg create mode 100644 Client/Assets/Resources/UI/增减益状态栏UI/非当前层级减益状态栏.svg.meta create mode 100644 Client/Assets/Resources/UI/增减益状态栏UI/非当前层级增益状态栏.svg create mode 100644 Client/Assets/Resources/UI/增减益状态栏UI/非当前层级增益状态栏.svg.meta create mode 100644 Client/Assets/Resources/UI/武器栏UI.meta create mode 100644 Client/Assets/Resources/UI/武器栏UI/当前武器栏.svg create mode 100644 Client/Assets/Resources/UI/武器栏UI/当前武器栏.svg.meta create mode 100644 Client/Assets/Resources/UI/武器栏UI/非当前武器栏.svg create mode 100644 Client/Assets/Resources/UI/武器栏UI/非当前武器栏.svg.meta create mode 100644 Client/Assets/Resources/UI/血条相关UI.meta create mode 100644 Client/Assets/Resources/UI/血条相关UI/基地血条.svg create mode 100644 Client/Assets/Resources/UI/血条相关UI/基地血条.svg.meta create mode 100644 Client/Assets/Resources/UI/血条相关UI/基地血条底.svg create mode 100644 Client/Assets/Resources/UI/血条相关UI/基地血条底.svg.meta create mode 100644 Client/Assets/Resources/UI/血条相关UI/当前层级血条.svg create mode 100644 Client/Assets/Resources/UI/血条相关UI/当前层级血条.svg.meta create mode 100644 Client/Assets/Resources/UI/血条相关UI/血条底.svg create mode 100644 Client/Assets/Resources/UI/血条相关UI/血条底.svg.meta create mode 100644 Client/Assets/Resources/UI/血条相关UI/非当前层级血条.svg create mode 100644 Client/Assets/Resources/UI/血条相关UI/非当前层级血条.svg.meta create mode 100644 Client/Assets/Resources/UI/血条相关UI/非当前层级血条底.svg create mode 100644 Client/Assets/Resources/UI/血条相关UI/非当前层级血条底.svg.meta create mode 100644 Client/Assets/Scripts/UI/FullScreenUI.cs create mode 100644 Client/Assets/Scripts/UI/FullScreenUI.cs.meta diff --git a/Client/Assets/Resources/UI.meta b/Client/Assets/Resources/UI.meta new file mode 100644 index 0000000..25cd1ec --- /dev/null +++ b/Client/Assets/Resources/UI.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2f2b7ac503b3be64ea46fc40e1b5cfb2 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Resources/UI/其余杂项.meta b/Client/Assets/Resources/UI/其余杂项.meta new file mode 100644 index 0000000..1137774 --- /dev/null +++ b/Client/Assets/Resources/UI/其余杂项.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0235e00b79d8e2b49b8bded5ab65839f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Resources/UI/其余杂项/小地图背景.svg b/Client/Assets/Resources/UI/其余杂项/小地图背景.svg new file mode 100644 index 0000000..552cf23 --- /dev/null +++ b/Client/Assets/Resources/UI/其余杂项/小地图背景.svg @@ -0,0 +1,602 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Client/Assets/Resources/UI/其余杂项/小地图背景.svg.meta b/Client/Assets/Resources/UI/其余杂项/小地图背景.svg.meta new file mode 100644 index 0000000..0bd2085 --- /dev/null +++ b/Client/Assets/Resources/UI/其余杂项/小地图背景.svg.meta @@ -0,0 +1,55 @@ +fileFormatVersion: 2 +guid: 899963cf0e2bdb447a6ffc59bf5dadeb +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: a57477913897c46af95d590f580878bd, type: 3} + svgType: 1 + texturedSpriteMeshType: 0 + svgPixelsPerUnit: 100 + gradientResolution: 64 + alignment: 0 + customPivot: {x: 0, y: 0} + generatePhysicsShape: 0 + viewportOptions: 0 + preserveViewport: 0 + advancedMode: 0 + predefinedResolutionIndex: 1 + targetResolution: 1080 + resolutionMultiplier: 1 + stepDistance: 10 + samplingStepDistance: 100 + maxCordDeviationEnabled: 0 + maxCordDeviation: 1 + maxTangentAngleEnabled: 0 + maxTangentAngle: 5 + keepTextureAspectRatio: 1 + textureSize: 256 + textureWidth: 256 + textureHeight: 256 + wrapMode: 0 + filterMode: 1 + sampleCount: 4 + preserveSVGImageAspect: 0 + useSVGPixelsPerUnit: 0 + spriteData: + TessellationDetail: 0 + SpriteRect: + name: + originalName: + pivot: {x: 0, y: 0} + alignment: 0 + border: {x: 0, y: 0, z: 0, w: 0} + customData: + rect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + spriteID: a321414884999e24a994cf0e3bb39506 + PhysicsOutlines: [] diff --git a/Client/Assets/Resources/UI/其余杂项/局内金钱.svg b/Client/Assets/Resources/UI/其余杂项/局内金钱.svg new file mode 100644 index 0000000..2cc40e9 --- /dev/null +++ b/Client/Assets/Resources/UI/其余杂项/局内金钱.svg @@ -0,0 +1,335 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Client/Assets/Resources/UI/其余杂项/局内金钱.svg.meta b/Client/Assets/Resources/UI/其余杂项/局内金钱.svg.meta new file mode 100644 index 0000000..59a5e24 --- /dev/null +++ b/Client/Assets/Resources/UI/其余杂项/局内金钱.svg.meta @@ -0,0 +1,55 @@ +fileFormatVersion: 2 +guid: d102f013c83999e4081e0c014bf2430a +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: a57477913897c46af95d590f580878bd, type: 3} + svgType: 0 + texturedSpriteMeshType: 0 + svgPixelsPerUnit: 100 + gradientResolution: 64 + alignment: 0 + customPivot: {x: 0, y: 0} + generatePhysicsShape: 0 + viewportOptions: 0 + preserveViewport: 0 + advancedMode: 0 + predefinedResolutionIndex: 1 + targetResolution: 1080 + resolutionMultiplier: 1 + stepDistance: 10 + samplingStepDistance: 100 + maxCordDeviationEnabled: 0 + maxCordDeviation: 1 + maxTangentAngleEnabled: 0 + maxTangentAngle: 5 + keepTextureAspectRatio: 1 + textureSize: 256 + textureWidth: 256 + textureHeight: 256 + wrapMode: 0 + filterMode: 1 + sampleCount: 4 + preserveSVGImageAspect: 0 + useSVGPixelsPerUnit: 0 + spriteData: + TessellationDetail: 0 + SpriteRect: + name: + originalName: + pivot: {x: 0, y: 0} + alignment: 0 + border: {x: 0, y: 0, z: 0, w: 0} + customData: + rect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + spriteID: b541a5b5259afde4e9c7306f3da97ca4 + PhysicsOutlines: [] diff --git a/Client/Assets/Resources/UI/其余杂项/非当前层级-行为示意栏.svg b/Client/Assets/Resources/UI/其余杂项/非当前层级-行为示意栏.svg new file mode 100644 index 0000000..7b8ac06 --- /dev/null +++ b/Client/Assets/Resources/UI/其余杂项/非当前层级-行为示意栏.svg @@ -0,0 +1,338 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Client/Assets/Resources/UI/其余杂项/非当前层级-行为示意栏.svg.meta b/Client/Assets/Resources/UI/其余杂项/非当前层级-行为示意栏.svg.meta new file mode 100644 index 0000000..06bc487 --- /dev/null +++ b/Client/Assets/Resources/UI/其余杂项/非当前层级-行为示意栏.svg.meta @@ -0,0 +1,55 @@ +fileFormatVersion: 2 +guid: 54c0e08acbe0ac9468618f599293ce2c +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: a57477913897c46af95d590f580878bd, type: 3} + svgType: 0 + texturedSpriteMeshType: 0 + svgPixelsPerUnit: 100 + gradientResolution: 64 + alignment: 0 + customPivot: {x: 0, y: 0} + generatePhysicsShape: 0 + viewportOptions: 0 + preserveViewport: 0 + advancedMode: 0 + predefinedResolutionIndex: 1 + targetResolution: 1080 + resolutionMultiplier: 1 + stepDistance: 10 + samplingStepDistance: 100 + maxCordDeviationEnabled: 0 + maxCordDeviation: 1 + maxTangentAngleEnabled: 0 + maxTangentAngle: 5 + keepTextureAspectRatio: 1 + textureSize: 256 + textureWidth: 256 + textureHeight: 256 + wrapMode: 0 + filterMode: 1 + sampleCount: 4 + preserveSVGImageAspect: 0 + useSVGPixelsPerUnit: 0 + spriteData: + TessellationDetail: 0 + SpriteRect: + name: + originalName: + pivot: {x: 0, y: 0} + alignment: 0 + border: {x: 0, y: 0, z: 0, w: 0} + customData: + rect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + spriteID: c3595dff73373c44d8ecaa0911cb1d78 + PhysicsOutlines: [] diff --git a/Client/Assets/Resources/UI/增减益状态栏UI.meta b/Client/Assets/Resources/UI/增减益状态栏UI.meta new file mode 100644 index 0000000..4a6e444 --- /dev/null +++ b/Client/Assets/Resources/UI/增减益状态栏UI.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 17b4c90b2bde48b45bf20e7af41378e1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Resources/UI/增减益状态栏UI/当前层级减益状态栏.svg b/Client/Assets/Resources/UI/增减益状态栏UI/当前层级减益状态栏.svg new file mode 100644 index 0000000..c76723f --- /dev/null +++ b/Client/Assets/Resources/UI/增减益状态栏UI/当前层级减益状态栏.svg @@ -0,0 +1,334 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Client/Assets/Resources/UI/增减益状态栏UI/当前层级减益状态栏.svg.meta b/Client/Assets/Resources/UI/增减益状态栏UI/当前层级减益状态栏.svg.meta new file mode 100644 index 0000000..46f210a --- /dev/null +++ b/Client/Assets/Resources/UI/增减益状态栏UI/当前层级减益状态栏.svg.meta @@ -0,0 +1,55 @@ +fileFormatVersion: 2 +guid: 07ef1a47e0caab340808a9098d5c1ff7 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: a57477913897c46af95d590f580878bd, type: 3} + svgType: 0 + texturedSpriteMeshType: 0 + svgPixelsPerUnit: 100 + gradientResolution: 64 + alignment: 0 + customPivot: {x: 0, y: 0} + generatePhysicsShape: 0 + viewportOptions: 0 + preserveViewport: 0 + advancedMode: 0 + predefinedResolutionIndex: 1 + targetResolution: 1080 + resolutionMultiplier: 1 + stepDistance: 10 + samplingStepDistance: 100 + maxCordDeviationEnabled: 0 + maxCordDeviation: 1 + maxTangentAngleEnabled: 0 + maxTangentAngle: 5 + keepTextureAspectRatio: 1 + textureSize: 256 + textureWidth: 256 + textureHeight: 256 + wrapMode: 0 + filterMode: 1 + sampleCount: 4 + preserveSVGImageAspect: 0 + useSVGPixelsPerUnit: 0 + spriteData: + TessellationDetail: 0 + SpriteRect: + name: + originalName: + pivot: {x: 0, y: 0} + alignment: 0 + border: {x: 0, y: 0, z: 0, w: 0} + customData: + rect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + spriteID: 4499e16b44d401f41b9f63e3b3321ea6 + PhysicsOutlines: [] diff --git a/Client/Assets/Resources/UI/增减益状态栏UI/当前层级增益状态栏.svg b/Client/Assets/Resources/UI/增减益状态栏UI/当前层级增益状态栏.svg new file mode 100644 index 0000000..a129015 --- /dev/null +++ b/Client/Assets/Resources/UI/增减益状态栏UI/当前层级增益状态栏.svg @@ -0,0 +1,244 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Client/Assets/Resources/UI/增减益状态栏UI/当前层级增益状态栏.svg.meta b/Client/Assets/Resources/UI/增减益状态栏UI/当前层级增益状态栏.svg.meta new file mode 100644 index 0000000..eb195c1 --- /dev/null +++ b/Client/Assets/Resources/UI/增减益状态栏UI/当前层级增益状态栏.svg.meta @@ -0,0 +1,55 @@ +fileFormatVersion: 2 +guid: fb99d95e0a6d23f4e9410d6c113af2bd +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: a57477913897c46af95d590f580878bd, type: 3} + svgType: 0 + texturedSpriteMeshType: 0 + svgPixelsPerUnit: 100 + gradientResolution: 64 + alignment: 0 + customPivot: {x: 0, y: 0} + generatePhysicsShape: 0 + viewportOptions: 0 + preserveViewport: 0 + advancedMode: 0 + predefinedResolutionIndex: 1 + targetResolution: 1080 + resolutionMultiplier: 1 + stepDistance: 10 + samplingStepDistance: 100 + maxCordDeviationEnabled: 0 + maxCordDeviation: 1 + maxTangentAngleEnabled: 0 + maxTangentAngle: 5 + keepTextureAspectRatio: 1 + textureSize: 256 + textureWidth: 256 + textureHeight: 256 + wrapMode: 0 + filterMode: 1 + sampleCount: 4 + preserveSVGImageAspect: 0 + useSVGPixelsPerUnit: 0 + spriteData: + TessellationDetail: 0 + SpriteRect: + name: + originalName: + pivot: {x: 0, y: 0} + alignment: 0 + border: {x: 0, y: 0, z: 0, w: 0} + customData: + rect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + spriteID: 7914fb98a7dd82f46b3f765345ee8ee4 + PhysicsOutlines: [] diff --git a/Client/Assets/Resources/UI/增减益状态栏UI/非当前层级减益状态栏.svg b/Client/Assets/Resources/UI/增减益状态栏UI/非当前层级减益状态栏.svg new file mode 100644 index 0000000..58339fb --- /dev/null +++ b/Client/Assets/Resources/UI/增减益状态栏UI/非当前层级减益状态栏.svg @@ -0,0 +1,334 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Client/Assets/Resources/UI/增减益状态栏UI/非当前层级减益状态栏.svg.meta b/Client/Assets/Resources/UI/增减益状态栏UI/非当前层级减益状态栏.svg.meta new file mode 100644 index 0000000..a8b9bb9 --- /dev/null +++ b/Client/Assets/Resources/UI/增减益状态栏UI/非当前层级减益状态栏.svg.meta @@ -0,0 +1,55 @@ +fileFormatVersion: 2 +guid: 9975605dcc1c4f74b9bc49197f0239b2 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: a57477913897c46af95d590f580878bd, type: 3} + svgType: 0 + texturedSpriteMeshType: 0 + svgPixelsPerUnit: 100 + gradientResolution: 64 + alignment: 0 + customPivot: {x: 0, y: 0} + generatePhysicsShape: 0 + viewportOptions: 0 + preserveViewport: 0 + advancedMode: 0 + predefinedResolutionIndex: 1 + targetResolution: 1080 + resolutionMultiplier: 1 + stepDistance: 10 + samplingStepDistance: 100 + maxCordDeviationEnabled: 0 + maxCordDeviation: 1 + maxTangentAngleEnabled: 0 + maxTangentAngle: 5 + keepTextureAspectRatio: 1 + textureSize: 256 + textureWidth: 256 + textureHeight: 256 + wrapMode: 0 + filterMode: 1 + sampleCount: 4 + preserveSVGImageAspect: 0 + useSVGPixelsPerUnit: 0 + spriteData: + TessellationDetail: 0 + SpriteRect: + name: + originalName: + pivot: {x: 0, y: 0} + alignment: 0 + border: {x: 0, y: 0, z: 0, w: 0} + customData: + rect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + spriteID: bd9daf534f34fde4a87f3fccdc2e7024 + PhysicsOutlines: [] diff --git a/Client/Assets/Resources/UI/增减益状态栏UI/非当前层级增益状态栏.svg b/Client/Assets/Resources/UI/增减益状态栏UI/非当前层级增益状态栏.svg new file mode 100644 index 0000000..37754f1 --- /dev/null +++ b/Client/Assets/Resources/UI/增减益状态栏UI/非当前层级增益状态栏.svg @@ -0,0 +1,334 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Client/Assets/Resources/UI/增减益状态栏UI/非当前层级增益状态栏.svg.meta b/Client/Assets/Resources/UI/增减益状态栏UI/非当前层级增益状态栏.svg.meta new file mode 100644 index 0000000..b3a3d4b --- /dev/null +++ b/Client/Assets/Resources/UI/增减益状态栏UI/非当前层级增益状态栏.svg.meta @@ -0,0 +1,55 @@ +fileFormatVersion: 2 +guid: 4195586faba96a041a71527fa3df5274 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: a57477913897c46af95d590f580878bd, type: 3} + svgType: 0 + texturedSpriteMeshType: 0 + svgPixelsPerUnit: 100 + gradientResolution: 64 + alignment: 0 + customPivot: {x: 0, y: 0} + generatePhysicsShape: 0 + viewportOptions: 0 + preserveViewport: 0 + advancedMode: 0 + predefinedResolutionIndex: 1 + targetResolution: 1080 + resolutionMultiplier: 1 + stepDistance: 10 + samplingStepDistance: 100 + maxCordDeviationEnabled: 0 + maxCordDeviation: 1 + maxTangentAngleEnabled: 0 + maxTangentAngle: 5 + keepTextureAspectRatio: 1 + textureSize: 256 + textureWidth: 256 + textureHeight: 256 + wrapMode: 0 + filterMode: 1 + sampleCount: 4 + preserveSVGImageAspect: 0 + useSVGPixelsPerUnit: 0 + spriteData: + TessellationDetail: 0 + SpriteRect: + name: + originalName: + pivot: {x: 0, y: 0} + alignment: 0 + border: {x: 0, y: 0, z: 0, w: 0} + customData: + rect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + spriteID: aa8bac081468539419b3cc510ead7cfe + PhysicsOutlines: [] diff --git a/Client/Assets/Resources/UI/武器栏UI.meta b/Client/Assets/Resources/UI/武器栏UI.meta new file mode 100644 index 0000000..5dc3c19 --- /dev/null +++ b/Client/Assets/Resources/UI/武器栏UI.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 06c1b677afb94ee4e8ab02849f646a65 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Resources/UI/武器栏UI/当前武器栏.svg b/Client/Assets/Resources/UI/武器栏UI/当前武器栏.svg new file mode 100644 index 0000000..f28c8f4 --- /dev/null +++ b/Client/Assets/Resources/UI/武器栏UI/当前武器栏.svg @@ -0,0 +1,338 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Client/Assets/Resources/UI/武器栏UI/当前武器栏.svg.meta b/Client/Assets/Resources/UI/武器栏UI/当前武器栏.svg.meta new file mode 100644 index 0000000..228ff63 --- /dev/null +++ b/Client/Assets/Resources/UI/武器栏UI/当前武器栏.svg.meta @@ -0,0 +1,55 @@ +fileFormatVersion: 2 +guid: 89c428aa91735ee48a38fff2a726dbd5 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: a57477913897c46af95d590f580878bd, type: 3} + svgType: 0 + texturedSpriteMeshType: 0 + svgPixelsPerUnit: 100 + gradientResolution: 64 + alignment: 0 + customPivot: {x: 0, y: 0} + generatePhysicsShape: 0 + viewportOptions: 0 + preserveViewport: 0 + advancedMode: 0 + predefinedResolutionIndex: 1 + targetResolution: 1080 + resolutionMultiplier: 1 + stepDistance: 10 + samplingStepDistance: 100 + maxCordDeviationEnabled: 0 + maxCordDeviation: 1 + maxTangentAngleEnabled: 0 + maxTangentAngle: 5 + keepTextureAspectRatio: 1 + textureSize: 256 + textureWidth: 256 + textureHeight: 256 + wrapMode: 0 + filterMode: 1 + sampleCount: 4 + preserveSVGImageAspect: 0 + useSVGPixelsPerUnit: 0 + spriteData: + TessellationDetail: 0 + SpriteRect: + name: + originalName: + pivot: {x: 0, y: 0} + alignment: 0 + border: {x: 0, y: 0, z: 0, w: 0} + customData: + rect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + spriteID: d85d570b2429ec342bf83ecf3f35e740 + PhysicsOutlines: [] diff --git a/Client/Assets/Resources/UI/武器栏UI/非当前武器栏.svg b/Client/Assets/Resources/UI/武器栏UI/非当前武器栏.svg new file mode 100644 index 0000000..948ddfa --- /dev/null +++ b/Client/Assets/Resources/UI/武器栏UI/非当前武器栏.svg @@ -0,0 +1,338 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Client/Assets/Resources/UI/武器栏UI/非当前武器栏.svg.meta b/Client/Assets/Resources/UI/武器栏UI/非当前武器栏.svg.meta new file mode 100644 index 0000000..957c19d --- /dev/null +++ b/Client/Assets/Resources/UI/武器栏UI/非当前武器栏.svg.meta @@ -0,0 +1,55 @@ +fileFormatVersion: 2 +guid: 49574900b62cf8f4481e400bb87d8497 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: a57477913897c46af95d590f580878bd, type: 3} + svgType: 0 + texturedSpriteMeshType: 0 + svgPixelsPerUnit: 100 + gradientResolution: 64 + alignment: 0 + customPivot: {x: 0, y: 0} + generatePhysicsShape: 0 + viewportOptions: 0 + preserveViewport: 0 + advancedMode: 0 + predefinedResolutionIndex: 1 + targetResolution: 1080 + resolutionMultiplier: 1 + stepDistance: 10 + samplingStepDistance: 100 + maxCordDeviationEnabled: 0 + maxCordDeviation: 1 + maxTangentAngleEnabled: 0 + maxTangentAngle: 5 + keepTextureAspectRatio: 1 + textureSize: 256 + textureWidth: 256 + textureHeight: 256 + wrapMode: 0 + filterMode: 1 + sampleCount: 4 + preserveSVGImageAspect: 0 + useSVGPixelsPerUnit: 0 + spriteData: + TessellationDetail: 0 + SpriteRect: + name: + originalName: + pivot: {x: 0, y: 0} + alignment: 0 + border: {x: 0, y: 0, z: 0, w: 0} + customData: + rect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + spriteID: 8fa813b05d5a429458634b3e34e499e6 + PhysicsOutlines: [] diff --git a/Client/Assets/Resources/UI/血条相关UI.meta b/Client/Assets/Resources/UI/血条相关UI.meta new file mode 100644 index 0000000..eb59892 --- /dev/null +++ b/Client/Assets/Resources/UI/血条相关UI.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: aac80b09967838b46a4eba7a4bc7a37c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Resources/UI/血条相关UI/基地血条.svg b/Client/Assets/Resources/UI/血条相关UI/基地血条.svg new file mode 100644 index 0000000..832708c --- /dev/null +++ b/Client/Assets/Resources/UI/血条相关UI/基地血条.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/Client/Assets/Resources/UI/血条相关UI/基地血条.svg.meta b/Client/Assets/Resources/UI/血条相关UI/基地血条.svg.meta new file mode 100644 index 0000000..cc824d8 --- /dev/null +++ b/Client/Assets/Resources/UI/血条相关UI/基地血条.svg.meta @@ -0,0 +1,55 @@ +fileFormatVersion: 2 +guid: 5df876ecff4b36840bae2a82c52ddcda +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: a57477913897c46af95d590f580878bd, type: 3} + svgType: 0 + texturedSpriteMeshType: 0 + svgPixelsPerUnit: 100 + gradientResolution: 64 + alignment: 0 + customPivot: {x: 0, y: 0} + generatePhysicsShape: 0 + viewportOptions: 0 + preserveViewport: 0 + advancedMode: 0 + predefinedResolutionIndex: 1 + targetResolution: 1080 + resolutionMultiplier: 1 + stepDistance: 10 + samplingStepDistance: 100 + maxCordDeviationEnabled: 0 + maxCordDeviation: 1 + maxTangentAngleEnabled: 0 + maxTangentAngle: 5 + keepTextureAspectRatio: 1 + textureSize: 256 + textureWidth: 256 + textureHeight: 256 + wrapMode: 0 + filterMode: 1 + sampleCount: 4 + preserveSVGImageAspect: 0 + useSVGPixelsPerUnit: 0 + spriteData: + TessellationDetail: 0 + SpriteRect: + name: + originalName: + pivot: {x: 0, y: 0} + alignment: 0 + border: {x: 0, y: 0, z: 0, w: 0} + customData: + rect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + spriteID: b1519d90f236a9b4fb7ee6efb252e0d5 + PhysicsOutlines: [] diff --git a/Client/Assets/Resources/UI/血条相关UI/基地血条底.svg b/Client/Assets/Resources/UI/血条相关UI/基地血条底.svg new file mode 100644 index 0000000..0ae3f3f --- /dev/null +++ b/Client/Assets/Resources/UI/血条相关UI/基地血条底.svg @@ -0,0 +1,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/Client/Assets/Resources/UI/血条相关UI/基地血条底.svg.meta b/Client/Assets/Resources/UI/血条相关UI/基地血条底.svg.meta new file mode 100644 index 0000000..44672d4 --- /dev/null +++ b/Client/Assets/Resources/UI/血条相关UI/基地血条底.svg.meta @@ -0,0 +1,55 @@ +fileFormatVersion: 2 +guid: eb5a094463dad0b468605645310d036e +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: a57477913897c46af95d590f580878bd, type: 3} + svgType: 0 + texturedSpriteMeshType: 0 + svgPixelsPerUnit: 100 + gradientResolution: 64 + alignment: 0 + customPivot: {x: 0, y: 0} + generatePhysicsShape: 0 + viewportOptions: 0 + preserveViewport: 0 + advancedMode: 0 + predefinedResolutionIndex: 1 + targetResolution: 1080 + resolutionMultiplier: 1 + stepDistance: 10 + samplingStepDistance: 100 + maxCordDeviationEnabled: 0 + maxCordDeviation: 1 + maxTangentAngleEnabled: 0 + maxTangentAngle: 5 + keepTextureAspectRatio: 1 + textureSize: 256 + textureWidth: 256 + textureHeight: 256 + wrapMode: 0 + filterMode: 1 + sampleCount: 4 + preserveSVGImageAspect: 0 + useSVGPixelsPerUnit: 0 + spriteData: + TessellationDetail: 0 + SpriteRect: + name: + originalName: + pivot: {x: 0, y: 0} + alignment: 0 + border: {x: 0, y: 0, z: 0, w: 0} + customData: + rect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + spriteID: e98d52b7c0801b2489d9f5200a84737e + PhysicsOutlines: [] diff --git a/Client/Assets/Resources/UI/血条相关UI/当前层级血条.svg b/Client/Assets/Resources/UI/血条相关UI/当前层级血条.svg new file mode 100644 index 0000000..c9b6044 --- /dev/null +++ b/Client/Assets/Resources/UI/血条相关UI/当前层级血条.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Client/Assets/Resources/UI/血条相关UI/当前层级血条.svg.meta b/Client/Assets/Resources/UI/血条相关UI/当前层级血条.svg.meta new file mode 100644 index 0000000..e11d176 --- /dev/null +++ b/Client/Assets/Resources/UI/血条相关UI/当前层级血条.svg.meta @@ -0,0 +1,55 @@ +fileFormatVersion: 2 +guid: 2d75b7f02ff03f946b5e2dbe410ee8bf +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: a57477913897c46af95d590f580878bd, type: 3} + svgType: 1 + texturedSpriteMeshType: 0 + svgPixelsPerUnit: 100 + gradientResolution: 64 + alignment: 0 + customPivot: {x: 0, y: 0} + generatePhysicsShape: 0 + viewportOptions: 0 + preserveViewport: 0 + advancedMode: 0 + predefinedResolutionIndex: 1 + targetResolution: 1080 + resolutionMultiplier: 1 + stepDistance: 10 + samplingStepDistance: 100 + maxCordDeviationEnabled: 0 + maxCordDeviation: 1 + maxTangentAngleEnabled: 0 + maxTangentAngle: 5 + keepTextureAspectRatio: 1 + textureSize: 256 + textureWidth: 256 + textureHeight: 256 + wrapMode: 0 + filterMode: 1 + sampleCount: 4 + preserveSVGImageAspect: 0 + useSVGPixelsPerUnit: 0 + spriteData: + TessellationDetail: 0 + SpriteRect: + name: + originalName: + pivot: {x: 0, y: 0} + alignment: 0 + border: {x: 0, y: 0, z: 0, w: 0} + customData: + rect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + spriteID: 833eb6b335d0baa4c8f444f5b1ab7095 + PhysicsOutlines: [] diff --git a/Client/Assets/Resources/UI/血条相关UI/血条底.svg b/Client/Assets/Resources/UI/血条相关UI/血条底.svg new file mode 100644 index 0000000..59431a7 --- /dev/null +++ b/Client/Assets/Resources/UI/血条相关UI/血条底.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Client/Assets/Resources/UI/血条相关UI/血条底.svg.meta b/Client/Assets/Resources/UI/血条相关UI/血条底.svg.meta new file mode 100644 index 0000000..2deda84 --- /dev/null +++ b/Client/Assets/Resources/UI/血条相关UI/血条底.svg.meta @@ -0,0 +1,55 @@ +fileFormatVersion: 2 +guid: 9e8e5b8f16df1044bb4279fad7eec71d +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: a57477913897c46af95d590f580878bd, type: 3} + svgType: 1 + texturedSpriteMeshType: 0 + svgPixelsPerUnit: 100 + gradientResolution: 64 + alignment: 0 + customPivot: {x: 0, y: 0} + generatePhysicsShape: 0 + viewportOptions: 0 + preserveViewport: 0 + advancedMode: 0 + predefinedResolutionIndex: 1 + targetResolution: 1080 + resolutionMultiplier: 1 + stepDistance: 10 + samplingStepDistance: 100 + maxCordDeviationEnabled: 0 + maxCordDeviation: 1 + maxTangentAngleEnabled: 0 + maxTangentAngle: 5 + keepTextureAspectRatio: 1 + textureSize: 256 + textureWidth: 256 + textureHeight: 256 + wrapMode: 0 + filterMode: 1 + sampleCount: 4 + preserveSVGImageAspect: 0 + useSVGPixelsPerUnit: 0 + spriteData: + TessellationDetail: 0 + SpriteRect: + name: + originalName: + pivot: {x: 0, y: 0} + alignment: 0 + border: {x: 0, y: 0, z: 0, w: 0} + customData: + rect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + spriteID: 5afa0322bf417cd489688f861dd40469 + PhysicsOutlines: [] diff --git a/Client/Assets/Resources/UI/血条相关UI/非当前层级血条.svg b/Client/Assets/Resources/UI/血条相关UI/非当前层级血条.svg new file mode 100644 index 0000000..4ce7208 --- /dev/null +++ b/Client/Assets/Resources/UI/血条相关UI/非当前层级血条.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Client/Assets/Resources/UI/血条相关UI/非当前层级血条.svg.meta b/Client/Assets/Resources/UI/血条相关UI/非当前层级血条.svg.meta new file mode 100644 index 0000000..047091e --- /dev/null +++ b/Client/Assets/Resources/UI/血条相关UI/非当前层级血条.svg.meta @@ -0,0 +1,55 @@ +fileFormatVersion: 2 +guid: eba9d05bb9d9e4240ac43a4fbcb0eca5 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: a57477913897c46af95d590f580878bd, type: 3} + svgType: 0 + texturedSpriteMeshType: 0 + svgPixelsPerUnit: 100 + gradientResolution: 64 + alignment: 0 + customPivot: {x: 0, y: 0} + generatePhysicsShape: 0 + viewportOptions: 0 + preserveViewport: 0 + advancedMode: 0 + predefinedResolutionIndex: 1 + targetResolution: 1080 + resolutionMultiplier: 1 + stepDistance: 10 + samplingStepDistance: 100 + maxCordDeviationEnabled: 0 + maxCordDeviation: 1 + maxTangentAngleEnabled: 0 + maxTangentAngle: 5 + keepTextureAspectRatio: 1 + textureSize: 256 + textureWidth: 256 + textureHeight: 256 + wrapMode: 0 + filterMode: 1 + sampleCount: 4 + preserveSVGImageAspect: 0 + useSVGPixelsPerUnit: 0 + spriteData: + TessellationDetail: 0 + SpriteRect: + name: + originalName: + pivot: {x: 0, y: 0} + alignment: 0 + border: {x: 0, y: 0, z: 0, w: 0} + customData: + rect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + spriteID: b3fc6e378983d4e4fa657a926b6c853f + PhysicsOutlines: [] diff --git a/Client/Assets/Resources/UI/血条相关UI/非当前层级血条底.svg b/Client/Assets/Resources/UI/血条相关UI/非当前层级血条底.svg new file mode 100644 index 0000000..133c3be --- /dev/null +++ b/Client/Assets/Resources/UI/血条相关UI/非当前层级血条底.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Client/Assets/Resources/UI/血条相关UI/非当前层级血条底.svg.meta b/Client/Assets/Resources/UI/血条相关UI/非当前层级血条底.svg.meta new file mode 100644 index 0000000..381ef64 --- /dev/null +++ b/Client/Assets/Resources/UI/血条相关UI/非当前层级血条底.svg.meta @@ -0,0 +1,55 @@ +fileFormatVersion: 2 +guid: 720f4776d5fb7b64f8ed70520112d072 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: a57477913897c46af95d590f580878bd, type: 3} + svgType: 0 + texturedSpriteMeshType: 0 + svgPixelsPerUnit: 100 + gradientResolution: 64 + alignment: 0 + customPivot: {x: 0, y: 0} + generatePhysicsShape: 0 + viewportOptions: 0 + preserveViewport: 0 + advancedMode: 0 + predefinedResolutionIndex: 1 + targetResolution: 1080 + resolutionMultiplier: 1 + stepDistance: 10 + samplingStepDistance: 100 + maxCordDeviationEnabled: 0 + maxCordDeviation: 1 + maxTangentAngleEnabled: 0 + maxTangentAngle: 5 + keepTextureAspectRatio: 1 + textureSize: 256 + textureWidth: 256 + textureHeight: 256 + wrapMode: 0 + filterMode: 1 + sampleCount: 4 + preserveSVGImageAspect: 0 + useSVGPixelsPerUnit: 0 + spriteData: + TessellationDetail: 0 + SpriteRect: + name: + originalName: + pivot: {x: 0, y: 0} + alignment: 0 + border: {x: 0, y: 0, z: 0, w: 0} + customData: + rect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + spriteID: 4764d3e052abf3b45a46ab92044792c3 + PhysicsOutlines: [] diff --git a/Client/Assets/RunTimeResource/MiniMap.renderTexture b/Client/Assets/RunTimeResource/MiniMap.renderTexture index a1d56da..d675708 100644 --- a/Client/Assets/RunTimeResource/MiniMap.renderTexture +++ b/Client/Assets/RunTimeResource/MiniMap.renderTexture @@ -12,8 +12,8 @@ RenderTexture: Hash: 00000000000000000000000000000000 m_IsAlphaChannelOptional: 0 serializedVersion: 6 - m_Width: 150 - m_Height: 150 + m_Width: 120 + m_Height: 120 m_AntiAliasing: 1 m_MipCount: -1 m_DepthStencilFormat: 90 diff --git a/Client/Assets/Scenes/Game.unity b/Client/Assets/Scenes/Game.unity index 07591cc..18e3e4f 100644 --- a/Client/Assets/Scenes/Game.unity +++ b/Client/Assets/Scenes/Game.unity @@ -425,6 +425,7 @@ MonoBehaviour: m_EditorClassIdentifier: isGlobal: 1 characterPrefab: {fileID: 3420474218334607780, guid: 5218adfb8e855a9459df63de8b2f323c, type: 3} + monsterPrefab: {fileID: 0} buildingPrefab: {fileID: 5615006624229444611, guid: d7b9277d8e6ac4541800044bdb0da063, type: 3} bulletPrefab: {fileID: 8687677644466399534, guid: 29b2450a8636a104586e36333878f4d9, type: 3} pickupPrefab: {fileID: 1096543602564338806, guid: ec84100729cd1bd4699fc15b3a09134c, type: 3} @@ -616,7 +617,6 @@ GameObject: m_Component: - component: {fileID: 274529400} - component: {fileID: 274529403} - - component: {fileID: 274529402} - component: {fileID: 274529401} m_Layer: 5 m_Name: MainHPBar @@ -639,12 +639,12 @@ RectTransform: m_Children: - {fileID: 796630699} - {fileID: 1350296600} - m_Father: {fileID: 1890891271} + m_Father: {fileID: 2062509144} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 100, y: 100} + m_AnchoredPosition: {x: 35, y: 70} + m_SizeDelta: {x: 50, y: 120} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &274529401 MonoBehaviour: @@ -659,36 +659,37 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: image: {fileID: 1350296601} ---- !u!114 &274529402 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 274529399} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.745283, g: 0.42562896, b: 0.024608415, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 + progressGradient: + serializedVersion: 2 + key0: {r: 1, g: 0.23137255, b: 0.2901961, a: 1} + key1: {r: 1, g: 0.98039216, b: 0.2627451, a: 1} + key2: {r: 0, g: 1, b: 0.9019608, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 16384 + ctime1: 32768 + ctime2: 65535 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 1 + m_ColorSpace: -1 + m_NumColorKeys: 3 + m_NumAlphaKeys: 2 + _editorProgressPreview: 0.642 --- !u!222 &274529403 CanvasRenderer: m_ObjectHideFlags: 0 @@ -801,17 +802,17 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 476295824} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1866986816} + m_Father: {fileID: 1107928324} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: -10, y: -10} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &476295826 MonoBehaviour: @@ -826,7 +827,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Color: {r: 1, g: 1, b: 1, a: 0.7490196} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 @@ -893,123 +894,6 @@ Grid: m_CellGap: {x: 0, y: 0, z: 0} m_CellLayout: 0 m_CellSwizzle: 0 ---- !u!1 &629678389 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 629678390} - - component: {fileID: 629678394} - - component: {fileID: 629678393} - - component: {fileID: 629678392} - - component: {fileID: 629678391} - m_Layer: 5 - m_Name: EquipmentBar - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &629678390 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 629678389} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1890891271} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 0, y: -150} - m_SizeDelta: {x: 6, y: 50} - m_Pivot: {x: 0, y: 0} ---- !u!114 &629678391 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 629678389} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalFit: 2 - m_VerticalFit: 0 ---- !u!114 &629678392 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 629678389} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 3 - m_Right: 3 - m_Top: 0 - m_Bottom: 0 - m_ChildAlignment: 3 - m_Spacing: 5 - m_ChildForceExpandWidth: 0 - m_ChildForceExpandHeight: 0 - m_ChildControlWidth: 0 - m_ChildControlHeight: 0 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!114 &629678393 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 629678389} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.754717, g: 0.47987247, b: 0.26699895, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &629678394 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 629678389} - m_CullTransparentMesh: 1 --- !u!224 &689345800 stripped RectTransform: m_CorrespondingSourceObject: {fileID: 2322698135530781468, guid: afbed11ea0c7e944aa36a71951b00ad6, type: 3} @@ -1179,16 +1063,16 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 0, g: 0, b: 0, a: 1} + m_Color: {r: 1, g: 0.995283, b: 0.995283, a: 1} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Sprite: {fileID: 3286163911610860551, guid: 9e8e5b8f16df1044bb4279fad7eec71d, type: 3} m_Type: 0 - m_PreserveAspect: 0 + m_PreserveAspect: 1 m_FillCenter: 1 m_FillMethod: 1 m_FillAmount: 0.604 @@ -1417,6 +1301,96 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: textureLevel: {fileID: 828003924} +--- !u!1 &1107928323 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1107928324} + - component: {fileID: 1107928327} + - component: {fileID: 1107928326} + - component: {fileID: 1107928325} + m_Layer: 5 + m_Name: mask + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1107928324 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1107928323} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 476295825} + m_Father: {fileID: 1866986816} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -6, y: -6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1107928325 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1107928323} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.003921569} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 3286163911610860551, guid: 899963cf0e2bdb447a6ffc59bf5dadeb, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1107928326 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1107928323} + m_CullTransparentMesh: 1 +--- !u!114 &1107928327 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1107928323} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 1 --- !u!1 &1204850182 GameObject: m_ObjectHideFlags: 0 @@ -1977,19 +1951,19 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 1, g: 0.023584902, b: 0.023584902, a: 1} + m_Color: {r: 0, g: 1, b: 0.9019608, a: 1} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Sprite: {fileID: 3286163911610860551, guid: 2d75b7f02ff03f946b5e2dbe410ee8bf, type: 3} m_Type: 3 - m_PreserveAspect: 0 + m_PreserveAspect: 1 m_FillCenter: 1 m_FillMethod: 1 - m_FillAmount: 0.556 + m_FillAmount: 0.642 m_FillClockwise: 1 m_FillOrigin: 0 m_UseSpriteMesh: 0 @@ -2435,13 +2409,13 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 476295825} + - {fileID: 1107928324} m_Father: {fileID: 1236970686} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 1, y: 1} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -85, y: -85} - m_SizeDelta: {x: 160, y: 160} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 85, y: -85} + m_SizeDelta: {x: 120, y: 120} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1866986817 MonoBehaviour: @@ -2463,9 +2437,9 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 0} + m_Sprite: {fileID: 3286163911610860551, guid: 899963cf0e2bdb447a6ffc59bf5dadeb, type: 3} m_Type: 0 - m_PreserveAspect: 0 + m_PreserveAspect: 1 m_FillCenter: 1 m_FillMethod: 4 m_FillAmount: 1 @@ -2495,100 +2469,6 @@ MonoBehaviour: m_EditorClassIdentifier: background: {fileID: 1866986817} texture: {fileID: 476295826} ---- !u!1 &1890891270 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1890891271} - - component: {fileID: 1890891274} - - component: {fileID: 1890891273} - - component: {fileID: 1890891272} - m_Layer: 5 - m_Name: FocuseEntityInf - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1890891271 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1890891270} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 274529400} - - {fileID: 629678390} - m_Father: {fileID: 2062509144} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0, y: 0} ---- !u!114 &1890891272 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1890891270} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4432817f903945648bdc0b3a4ba19adc, type: 3} - m_Name: - m_EditorClassIdentifier: - uiParent: {fileID: 629678389} - itemUIPrefab: {fileID: 39290904923667451, guid: d989d0eda9043f146bb606ec0fd32905, type: 3} ---- !u!114 &1890891273 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1890891270} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalFit: 2 - m_VerticalFit: 2 ---- !u!114 &1890891274 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1890891270} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 0 - m_Right: 0 - m_Top: 0 - m_Bottom: 0 - m_ChildAlignment: 6 - m_Spacing: 0 - m_ChildForceExpandWidth: 0 - m_ChildForceExpandHeight: 0 - m_ChildControlWidth: 0 - m_ChildControlHeight: 0 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 --- !u!224 &1892335252 stripped RectTransform: m_CorrespondingSourceObject: {fileID: 4227482396833377269, guid: 72cde32427f7d914692a7b0d22fb791d, type: 3} @@ -3151,8 +3031,8 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: + - {fileID: 274529400} - {fileID: 1176865964342248741} - - {fileID: 1890891271} m_Father: {fileID: 1236970686} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -3404,6 +3284,10 @@ PrefabInstance: propertyPath: actionButton value: 282 objectReference: {fileID: 0} + - target: {fileID: 7904664609186573076, guid: 72cde32427f7d914692a7b0d22fb791d, type: 3} + propertyPath: isInputOccupied + value: 1 + objectReference: {fileID: 0} - target: {fileID: 7904664609186573076, guid: 72cde32427f7d914692a7b0d22fb791d, type: 3} propertyPath: entityPlacementUI value: diff --git a/Client/Assets/Scripts/Base/Clock.cs b/Client/Assets/Scripts/Base/Clock.cs index 6ba6772..6c640c4 100644 --- a/Client/Assets/Scripts/Base/Clock.cs +++ b/Client/Assets/Scripts/Base/Clock.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; -using Utils; +using Utils; // 假设此命名空间包含MonoSingleton namespace Base { @@ -25,120 +25,239 @@ namespace Base private bool _pause = false; public bool Pause { - get - { - return _pause; - } + get => _pause; set { - if (value) + if (value != _pause) // 逻辑修改说明:避免重复设置Time.timeScale { - Time.timeScale = 0; + Time.timeScale = value ? 0 : 1; + _pause = value; } - else - { - Time.timeScale = 1; - } - _pause = value; } } - public List tickPhysics = new(); - public List ticks = new(); - public List tickUIs = new(); + + // 修改点 1.1:主列表用于迭代 + private readonly List _ticks = new(); + private readonly List _tickPhysics = new(); + private readonly List _tickUIs = new(); + + // 修改点 1.1:缓冲列表用于添加 + private readonly HashSet _ticksToAdd = new(); // 逻辑修改说明:使用HashSet避免重复添加,提高查找效率 + private readonly HashSet _tickPhysicsToAdd = new(); + private readonly HashSet _tickUIsToAdd = new(); + + // 修改点 1.1:缓冲列表用于移除 + private readonly HashSet _ticksToRemove = new(); // 逻辑修改说明:使用HashSet避免重复移除,提高查找效率 + private readonly HashSet _tickPhysicsToRemove = new(); + private readonly HashSet _tickUIsToRemove = new(); private void Update() { + // 逻辑修改说明:UI部分的Tick不应受_pause影响 if (!_pause) - foreach (var tick in ticks) + { + // 逻辑修改说明:迭代时使用只读副本或确保不会被修改 + // 这里是直接迭代_ticks,确保_ticks在Update生命周期内不会被Add/Remove直接修改 + // 添加和移除操作通过缓冲区在LateUpdate处理 + foreach (var tick in _ticks) + { tick.Tick(); - - foreach (var uiTick in tickUIs) uiTick.TickUI(); - //if (timer > 1) - //{ - // timer -= 1; - // Debug.Log("滴答"); - //} - //timer += Time.deltaTime; + } + } + // UI更新通常不受游戏暂停影响(例如菜单动画、UI计时器等),除非UI本身也需要暂停逻辑。 + // 根据需求决定是否受_pause影响。此处假设UI不暂停。 + foreach (var uiTick in _tickUIs) + { + uiTick.TickUI(); + } } private void FixedUpdate() { if (!_pause) - foreach (var physicsTick in tickPhysics) + { + foreach (var physicsTick in _tickPhysics) + { physicsTick.TickPhysics(); + } + } } + // 修改点 1.4:在LateUpdate应用缓冲区的更改 + private void LateUpdate() + { + ApplyBufferedChanges(); + } + + // 修改点 3.1:OnDestroy保持不变,确保事件移除 private void OnDestroy() { - // 移除事件监听 SceneManager.sceneLoaded -= OnSceneLoaded; } - protected override void OnStart() + // 修改点 3.1:OnStart保持不变,负责事件注册和初始化 + protected override void OnStart() // MonoSingleton的Awake后调用 { - // 注册场景加载事件 SceneManager.sceneLoaded += OnSceneLoaded; - - // 初始化时调用一次 - Init(); + // 逻辑修改说明:Initial清理所有列表,而不是填充 + Init(); } private void OnSceneLoaded(Scene scene, LoadSceneMode mode) { - // 场景加载完成后调用 Init 方法 Init(); } /// - /// 初始化方法 + /// 初始化/重置方法。清空所有注册列表和缓冲列表。 /// + // 修改点 2.1:Init() 方法不再负责FindObjectsByType public void Init() { - ticks.Clear(); - tickPhysics.Clear(); - tickUIs.Clear(); + _ticks.Clear(); + _tickPhysics.Clear(); + _tickUIs.Clear(); + _ticksToAdd.Clear(); + _tickPhysicsToAdd.Clear(); + _tickUIsToAdd.Clear(); + + _ticksToRemove.Clear(); + _tickPhysicsToRemove.Clear(); + _tickUIsToRemove.Clear(); + + // 逻辑修改说明:移除 FindObjectsByType 逻辑 + // 对象应通过其各自的 OnEnable/OnDisable 生命周期来注册/反注册 foreach (var obj in FindObjectsByType(FindObjectsSortMode.None)) { - if (obj is ITick tickObj) ticks.Add(tickObj); - if (obj is ITickPhysics physicsObj) tickPhysics.Add(physicsObj); - if (obj is ITickUI uiObj) tickUIs.Add(uiObj); + if (obj is ITick tickObj) _ticks.Add(tickObj); + if (obj is ITickPhysics physicsObj) _tickPhysics.Add(physicsObj); + if (obj is ITickUI uiObj) _tickUIs.Add(uiObj); } } + + // 修改点 1.2 & 1.3:将更改放入缓冲,并在LateUpdate统一处理 public static void AddTick(ITick tick) { - if (Instance != null && !Instance.ticks.Contains(tick)) - Instance.ticks.Add(tick); + if (Instance != null && tick != null) // 逻辑修改说明:添加null检查 + { + Instance._ticksToAdd.Add(tick); + Instance._ticksToRemove.Remove(tick); // 逻辑修改说明:如果在待移除列表,则先移除 + } } public static void RemoveTick(ITick tick) { - if (Instance != null) - Instance.ticks.Remove(tick); + if (Instance != null && tick != null) // 逻辑修改说明:添加null检查 + { + Instance._ticksToRemove.Add(tick); + Instance._ticksToAdd.Remove(tick); // 逻辑修改说明:如果在待添加列表,则先移除 + } } public static void AddTickPhysics(ITickPhysics physics) { - if (Instance != null && !Instance.tickPhysics.Contains(physics)) - Instance.tickPhysics.Add(physics); + if (Instance != null && physics != null) + { + Instance._tickPhysicsToAdd.Add(physics); + Instance._tickPhysicsToRemove.Remove(physics); + } } public static void RemoveTickPhysics(ITickPhysics physics) { - if (Instance != null) - Instance.tickPhysics.Remove(physics); + if (Instance != null && physics != null) + { + Instance._tickPhysicsToRemove.Add(physics); + Instance._tickPhysicsToAdd.Remove(physics); + } } public static void AddTickUI(ITickUI ui) { - if (Instance != null && !Instance.tickUIs.Contains(ui)) - Instance.tickUIs.Add(ui); + if (Instance != null && ui != null) + { + Instance._tickUIsToAdd.Add(ui); + Instance._tickUIsToRemove.Remove(ui); + } } public static void RemoveTickUI(ITickUI ui) { - if (Instance != null) - Instance.tickUIs.Remove(ui); + if (Instance != null && ui != null) + { + Instance._tickUIsToRemove.Add(ui); + Instance._tickUIsToAdd.Remove(ui); + } + } + + // 修改点 1.3:应用缓冲区的更改 + private void ApplyBufferedChanges() + { + // 先处理移除 + if (_ticksToRemove.Count > 0) + { + foreach (var tick in _ticksToRemove) + { + _ticks.Remove(tick); + } + _ticksToRemove.Clear(); + } + + if (_tickPhysicsToRemove.Count > 0) + { + foreach (var physicsTick in _tickPhysicsToRemove) + { + _tickPhysics.Remove(physicsTick); + } + _tickPhysicsToRemove.Clear(); + } + + if (_tickUIsToRemove.Count > 0) + { + foreach (var uiTick in _tickUIsToRemove) + { + _tickUIs.Remove(uiTick); + } + _tickUIsToRemove.Clear(); + } + + // 后处理添加 + if (_ticksToAdd.Count > 0) + { + foreach (var tick in _ticksToAdd) + { + if (!_ticks.Contains(tick)) // 逻辑修改说明:避免重复添加到主列表 + { + _ticks.Add(tick); + } + } + _ticksToAdd.Clear(); + } + + if (_tickPhysicsToAdd.Count > 0) + { + foreach (var physicsTick in _tickPhysicsToAdd) + { + if (!_tickPhysics.Contains(physicsTick)) + { + _tickPhysics.Add(physicsTick); + } + } + _tickPhysicsToAdd.Clear(); + } + + if (_tickUIsToAdd.Count > 0) + { + foreach (var uiTick in _tickUIsToAdd) + { + if (!_tickUIs.Contains(uiTick)) + { + _tickUIs.Add(uiTick); + } + } + _tickUIsToAdd.Clear(); + } } } -} \ No newline at end of file +} diff --git a/Client/Assets/Scripts/Base/UIInputControl.cs b/Client/Assets/Scripts/Base/UIInputControl.cs index 4eea0e6..62c8961 100644 --- a/Client/Assets/Scripts/Base/UIInputControl.cs +++ b/Client/Assets/Scripts/Base/UIInputControl.cs @@ -202,8 +202,6 @@ namespace Base protected override void OnStart() { SceneManager.sceneLoaded += OnSceneLoaded; - - RegisterAllWindows(); } private void OnSceneLoaded(Scene scene, LoadSceneMode mode) diff --git a/Client/Assets/Scripts/CameraControl/CameraControl.cs b/Client/Assets/Scripts/CameraControl/CameraControl.cs index 5bfbc0d..6a53f4b 100644 --- a/Client/Assets/Scripts/CameraControl/CameraControl.cs +++ b/Client/Assets/Scripts/CameraControl/CameraControl.cs @@ -19,41 +19,61 @@ namespace CameraControl private Vector3 _dragOrigin; // 拖拽操作的起始世界坐标 private bool _isDragging; // 标记摄像机是否正在被拖拽 - private Camera _camera; // 当前场景中的主摄像机引用 + private Camera _cachedCamera; // 缓存的场景摄像机引用 + + /// + /// 获取当前生效的场景摄像机。懒加载并缓存。 + /// + public Camera CurrentCamera + { + get + { + if (!_cachedCamera) + { + Debug.Log("[CameraControl] Attempting to get main camera..."); + _cachedCamera = Camera.main; // 尝试获取主摄像机 + if (!_cachedCamera) // 如果主摄像机不存在或未标记,则尝试查找场景中的第一个摄像机 + { + Debug.LogWarning("[CameraControl] Main camera not found, attempting to find first object of type Camera."); + _cachedCamera = FindFirstObjectByType(); + } + + if (!_cachedCamera) + { + Debug.LogError("[CameraControl] No available camera found in scene! CameraControl functionality will be limited."); + } + else + { + Debug.Log($"[CameraControl] Camera cached: {_cachedCamera.name}"); + } + } + return _cachedCamera; + } + } private int dimensionId; // 当前摄像机控制器关注的维度索引 private string[] dimensionList; // 维度名称列表 + /// + /// MonoSingleton 的 OnStart 方法,在单例首次创建并激活时调用,早于普通的 Start 方法。 + /// 用于初始化摄像机缓存。 + /// + protected override void OnStart() + { + Debug.Log("[CameraControl] OnStart called. Subscribing to OnFocusedDimensionChanged event."); + Program.Instance.OnFocusedDimensionChanged += Init; + } + /// /// 当脚本实例被销毁时调用。 /// 用于取消订阅 Program.Instance 的事件,防止内存泄漏。 /// private void OnDestroy() { - // 在OnDestroy时进行Program.Instance检查是合理的,因为Program实例可能已被销毁。 - if (Program.Instance != null) - { - Program.Instance.OnFocusedDimensionChanged -= Init; - } + Debug.Log("[CameraControl] OnDestroy called. Unsubscribing from OnFocusedDimensionChanged event."); + Program.Instance.OnFocusedDimensionChanged -= Init; } - /// - /// 脚本实例在第一次帧更新之前被启用时调用。 - /// 用于订阅 Program.Instance 的事件,并进行初始设置。 - /// - private void Start() - { - // 在Start时进行Program.Instance检查是合理的,防止CameraControl比Program实例更早启动。 - if (Program.Instance != null) - { - Program.Instance.OnFocusedDimensionChanged += Init; // 订阅聚焦维度改变事件 - Init(); // 首次调用初始化,根据当前聚焦维度设置摄像机状态 - } - else - { - Debug.LogError("CameraControl 的 Start 方法中 Program.Instance 为空。请检查 Program 单例的初始化顺序。摄像机控制功能将无法初始化。"); - } - } /// /// 根据指定的维度对象初始化摄像机控制器。 @@ -62,36 +82,21 @@ namespace CameraControl /// 当前聚焦的维度对象。 private void Init(Dimension obj) { - // 修改点 1: 统一 Unity 对象 `null` 检查,移除冗余 `_camera == null` - // 确保相机引用有效,如果为空则尝试获取主相机 - if (!_camera) - { - _camera = Camera.main; - if (!_camera) // 再次检查获取是否成功 - { - _camera = FindFirstObjectByType(); - } - } + Debug.Log($"[CameraControl] Init(Dimension obj) called. Focused Dimension: {(obj != null ? obj.name : "null")}"); - if (!_camera) // 如果到此为止仍未获取到相机,记录错误并返回 + dimensionList = Program.Instance.Dimensions; + Debug.Log($"[CameraControl] Dimension list updated. Count: {(dimensionList != null ? dimensionList.Length.ToString() : "null")}"); + + if (!CurrentCamera) // 如果摄像机仍未找到,记录错误并返回 { - Debug.LogError("场景中未找到摄像机!CameraControl 功能将无法完全初始化。"); - // 如果没有相机,后续依赖相机的逻辑都无法执行,直接返回。 - // dimensionList 的获取如果逻辑上不依赖相机,可以放在此处之外。 - // 但当前上下文中,Init的主要目的是初始化相机视角等,无相机则无意义。 + Debug.LogError("[CameraControl] No camera found! CameraControl functionality will not be fully initialized."); return; } - // 修改点 2: 移除对 `Program.Instance` 的冗余 `null` 检查 - // 修改点 3: `Init` 方法中 `dimensionList` 的获取位置 - // 总是获取最新的维度列表,因为外部维度状态可能会变化 - dimensionList = Program.Instance.Dimensions; - - // 处理 obj 为 null 的情况 + // 处理 obj 为 null 的情况 - 此时 dimensionList 已更新 if (!obj) { - Debug.LogWarning("Init 方法在聚焦维度为空的情况下被调用。维度列表已更新,但摄像机状态未根据特定维度设置。"); - // 此时 dimensionId 仍然是默认值或上次设置的值,不进行 cameraPosition 的设置。 + Debug.LogWarning("[CameraControl] Init method called with a null focused dimension. Dimension list updated, but camera state not set based on a specific dimension."); return; } @@ -100,15 +105,24 @@ namespace CameraControl if (focusedIndex != -1) { dimensionId = focusedIndex; + Debug.Log($"[CameraControl] Focused dimension '{obj.name}' found at index {dimensionId}."); } else { - Debug.LogWarning($"聚焦维度 '{obj.name}' 未在维度列表中找到。回退到 ID 0。"); + Debug.LogWarning($"[CameraControl] Focused dimension '{obj.name}' not found in the dimension list. Falling back to ID 0."); dimensionId = 0; // 找不到时,回退到第一个维度,避免数组越界 } - // 设置摄像机位置到当前聚焦维度的位置 (移除 Program.Instance 的 null 检查) - _camera.transform.position = Program.Instance.FocusedDimension.cameraPosition; + // 设置摄像机位置到当前聚焦维度的位置 + if (Program.Instance.FocusedDimension != null) + { + CurrentCamera.transform.position = Program.Instance.FocusedDimension.cameraPosition; + Debug.Log($"[CameraControl] Camera position set to focused dimension's camera position: {CurrentCamera.transform.position}"); + } + else + { + Debug.LogWarning("[CameraControl] Focused dimension is null when trying to set camera position. Camera position not explicitly updated based on a dimension."); + } } /// @@ -116,7 +130,7 @@ namespace CameraControl /// private void Init() { - // 移除 Program.Instance 的 null 检查 + Debug.Log("[CameraControl] Init() called (no parameters). Calling Init(Program.Instance.FocusedDimension)."); Init(Program.Instance.FocusedDimension); } @@ -126,41 +140,44 @@ namespace CameraControl /// public void NextDimension() { - // 修改点 1: 统一 Unity 对象 `null` 检查 - if (!_camera) + Debug.Log("[CameraControl] NextDimension called."); + + if (!CurrentCamera) { - Debug.LogWarning("摄像机引用为空,无法切换维度。"); + Debug.LogWarning("[CameraControl] Camera reference is null, cannot switch dimensions."); return; } if (dimensionList == null || dimensionList.Length == 0) { - Debug.LogWarning("维度列表为空。"); + Debug.LogWarning("[CameraControl] Dimension list is empty or uninitialized, cannot switch dimensions."); return; } - // 1. 保存当前摄像机的实际位置到当前维度 (移除 Program.Instance 的 null 检查) + // 1. 保存当前摄像机的实际位置到当前维度 if (dimensionId >= 0 && dimensionId < dimensionList.Length) { var currentDimension = Program.Instance.GetDimension(dimensionList[dimensionId]); - if (currentDimension != null) // currentDimension 可能是普通 C# 对象,所以此处 null 检查是必要的 + if (currentDimension != null) { - currentDimension.cameraPosition = _camera.transform.position; + currentDimension.cameraPosition = CurrentCamera.transform.position; + Debug.Log($"[CameraControl] Saved current camera position {CurrentCamera.transform.position} to dimension '{dimensionList[dimensionId]}'."); } else { - Debug.LogWarning($"无法找到 ID 为 {dimensionId} ({dimensionList[dimensionId]}) 的维度对象,无法保存摄像机位置。"); + Debug.LogWarning($"[CameraControl] Could not find Dimension object for ID {dimensionId} ({dimensionList[dimensionId]}), cannot save camera position."); } } else { - Debug.LogWarning($"当前维度ID ({dimensionId}) 超出范围,无法保存摄像机位置 (维度列表长度: {dimensionList.Length})。"); + Debug.LogWarning($"[CameraControl] Current dimension ID ({dimensionId}) is out of range, cannot save camera position (Dimension list length: {dimensionList.Length})."); } - // 2. 更新 dimensionId,形成循环切换 + // 2. 更新 dimensionId, 形成循环切换 dimensionId = (dimensionId + 1) % dimensionList.Length; + Debug.Log($"[CameraControl] Updated dimensionId to {dimensionId}."); // 3. 更新聚焦维度,摄像机位置的更新将由事件触发的 Init 方法处理 - SetCameraPositionForDimension(dimensionId); + SetFocusedDimensionById(dimensionId); } /// @@ -168,21 +185,22 @@ namespace CameraControl /// 摄像机位置的实际更新将通过 Program.Instance.OnFocusedDimensionChanged 事件在 Init(Dimension obj) 方法中处理。 /// /// 要设置的维度ID。 - private void SetCameraPositionForDimension(int id) + private void SetFocusedDimensionById(int id) { - // 修改点 1: 统一 Unity 对象 `null` 检查 - if (!_camera) + Debug.Log($"[CameraControl] SetFocusedDimensionById called with ID: {id}."); + + if (!CurrentCamera) { - Debug.LogWarning("摄像机引用为空,无法设置摄像机位置。"); + Debug.LogWarning("[CameraControl] Camera reference is null, cannot set camera position."); return; } if (dimensionList == null || id < 0 || id >= dimensionList.Length) { - Debug.LogWarning($"维度ID {id} 超出范围或维度列表为空。"); + Debug.LogWarning($"[CameraControl] Dimension ID {id} is out of range or dimension list is empty, cannot set focused dimension."); return; } - // 移除 Program.Instance 的 null 检查 Program.Instance.SetFocusedDimension(dimensionList[id]); + Debug.Log($"[CameraControl] Program.Instance.SetFocusedDimension called for '{dimensionList[id]}'."); } /// @@ -190,20 +208,19 @@ namespace CameraControl /// public void Tick() { - // 修改点 1: 统一 Unity 对象 `null` 检查 - if (!_camera) return; // 确保相机存在 + if (!CurrentCamera) return; // 确保相机存在 - // 当没有拖拽且存在聚焦实体时,摄像机跟随聚焦实体 (移除 Program.Instance 的 null 检查) + // 当没有拖拽且存在聚焦实体时,摄像机跟随聚焦实体 if (!_isDragging && Program.Instance.FocusedEntity) { var targetPosition = new Vector3( Program.Instance.FocusedEntity.Position.x, Program.Instance.FocusedEntity.Position.y, - _camera.transform.position.z); + CurrentCamera.transform.position.z); // 使用 deltaTime 进行平滑的摄像机跟随 - _camera.transform.position = Vector3.Lerp( - _camera.transform.position, + CurrentCamera.transform.position = Vector3.Lerp( + CurrentCamera.transform.position, targetPosition, Time.deltaTime * _focusLerpSpeed); } @@ -211,6 +228,7 @@ namespace CameraControl // 按下 Tab 键时切换到下一个维度 if (Input.GetKeyDown(KeyCode.Tab)) { + Debug.Log("[CameraControl] Tab key pressed. Calling NextDimension()."); NextDimension(); } } @@ -220,8 +238,7 @@ namespace CameraControl /// public void TickUI() { - // 修改点 1: 统一 Unity 对象 `null` 检查 - if (!_camera) // 确保相机存在 + if (!CurrentCamera) // 确保相机存在 return; HandleMiddleMouseDrag(); // 处理鼠标中键拖拽 @@ -234,11 +251,15 @@ namespace CameraControl /// 要设置的摄像机位置。 public void SetPosition(Vector3 position) { - // 修改点 1: 统一 Unity 对象 `null` 检查 - if (_camera) // if (!_camera) 比 if (_camera == null) 更优雅 - _camera.transform.position = position; + if (CurrentCamera) + { + CurrentCamera.transform.position = position; + Debug.Log($"[CameraControl] Camera position explicitly set to: {position}."); + } else - Debug.LogWarning("摄像机引用为空,无法设置位置。"); + { + Debug.LogWarning("[CameraControl] Camera reference is null, cannot set position."); + } } /// @@ -246,17 +267,18 @@ namespace CameraControl /// private void HandleMiddleMouseDrag() { - // 修改点 1: 统一 Unity 对象 `null` 检查 - if (!_camera) return; // 确保相机存在 + if (!CurrentCamera) return; // 确保相机存在 // 开始拖拽:检测鼠标中键按下 if (Input.GetMouseButtonDown(2)) // 鼠标中键 { - _dragOrigin = _camera.ScreenToWorldPoint(Input.mousePosition); + _dragOrigin = CurrentCamera.ScreenToWorldPoint(Input.mousePosition); _isDragging = true; - // 如果有聚焦实体,则在开始拖拽时取消聚焦,暂停跟随 (移除 Program.Instance 的 null 检查) + Debug.Log($"[CameraControl] Mouse middle button down. Starting drag from world point: {_dragOrigin}."); + // 如果有聚焦实体,则在开始拖拽时取消聚焦,暂停跟随 if (Program.Instance.FocusedEntity) { + Debug.Log("[CameraControl] Focused entity detected. Setting FocusedEntity to null to pause follow."); Program.Instance.SetFocusedEntity(null); } } @@ -264,15 +286,15 @@ namespace CameraControl // 拖拽中:根据鼠标移动更新摄像机位置 if (Input.GetMouseButton(2) && _isDragging) { - var difference = _dragOrigin - _camera.ScreenToWorldPoint(Input.mousePosition); - _camera.transform.position += difference; + var difference = _dragOrigin - CurrentCamera.ScreenToWorldPoint(Input.mousePosition); + CurrentCamera.transform.position += difference; } // 结束拖拽:检测鼠标中键抬起 if (Input.GetMouseButtonUp(2)) { _isDragging = false; - // 拖拽结束后,当前代码不会自动重新聚焦实体。如果需要此行为,应在此处添加逻辑。 + Debug.Log("[CameraControl] Mouse middle button up. Dragging ended."); } } @@ -281,23 +303,15 @@ namespace CameraControl /// private void HandleMouseZoom() { - // 修改点 1: 统一 Unity 对象 `null` 检查 - if (!_camera) return; // 确保相机存在 + if (!CurrentCamera) return; // 确保相机存在 var scroll = Input.GetAxis("Mouse ScrollWheel"); if (scroll == 0) return; // 没有滚轮滚动,则返回 // 根据滚轮输入调整正交摄像机的尺寸,并限制在最小和最大缩放之间 - var newSize = _camera.orthographicSize - scroll * _zoomSpeed; - _camera.orthographicSize = Mathf.Clamp(newSize, _minZoom, _maxZoom); - } - - /// - /// MonoSingleton 的 OnStart 方法,可在单例首次创建时添加额外初始化逻辑。 - /// - protected override void OnStart() - { - // 当前为空,是合理的。 + var newSize = CurrentCamera.orthographicSize - scroll * _zoomSpeed; + CurrentCamera.orthographicSize = Mathf.Clamp(newSize, _minZoom, _maxZoom); + // Debug.Log($"[CameraControl] Mouse scroll wheel. New orthographicSize: {CurrentCamera.orthographicSize}"); // Too frequent for general logging } } } diff --git a/Client/Assets/Scripts/Entity/Entity.cs b/Client/Assets/Scripts/Entity/Entity.cs index 9adee06..547a9e6 100644 --- a/Client/Assets/Scripts/Entity/Entity.cs +++ b/Client/Assets/Scripts/Entity/Entity.cs @@ -195,6 +195,8 @@ namespace Entity protected virtual void InitWeaponAnimator() { + if (!weaponAnimator) + return; for (var i = 0; i < weaponAnimator.transform.childCount; i++) { Destroy(weaponAnimator.transform.GetChild(i).gameObject); @@ -527,8 +529,6 @@ namespace Entity // 暂时设定为:如果没有武器,则不进行攻击 if (currentWeapon == null) { - // 可以在这里添加一个默认的徒手攻击逻辑,或者播放一个“不能攻击”的提示 - Debug.Log($"{name} 没有装备武器,无法攻击。"); return; } diff --git a/Client/Assets/Scripts/Item/ItemResource.cs b/Client/Assets/Scripts/Item/ItemResource.cs index f2fbe07..706b2ad 100644 --- a/Client/Assets/Scripts/Item/ItemResource.cs +++ b/Client/Assets/Scripts/Item/ItemResource.cs @@ -49,13 +49,6 @@ namespace Item $"ItemResource: Failed to load sprite for texture '{texture}' for item '{def.defName}'."); } } - else - { - // 仅当 textures 为 null 时警告,因为它可能是预期的数据状态(无图标) - Debug.LogWarning( - $"ItemResource: ItemDef '{def.defName}' has a null textures array. No icons will be loaded."); - } - // 逻辑修改:Icon 属性现在是 IReadOnlyList 类型,确保外部只读访问 Icon = sprites.AsReadOnly(); // 使用 AsReadOnly() 获得一个只读包装器 } diff --git a/Client/Assets/Scripts/Logging/LogCapturer.cs b/Client/Assets/Scripts/Logging/LogCapturer.cs index 29f19f4..a64cd3d 100644 --- a/Client/Assets/Scripts/Logging/LogCapturer.cs +++ b/Client/Assets/Scripts/Logging/LogCapturer.cs @@ -14,14 +14,21 @@ namespace Logging public string Message; public string StackTrace; - public override string ToString() => - $"[{Timestamp:HH:mm:ss}] [{Type}] {Message}" + - (Type == LogType.Exception ? $"\n{StackTrace}" : ""); + public override string ToString() + { + // 逻辑修改:扩展条件,使LogType.Error和LogType.Assert也能显示堆栈信息 + if (Type == LogType.Exception || Type == LogType.Error || Type == LogType.Assert) + { + return $"[{Timestamp:HH:mm:ss}] [{Type}] {Message}\n{StackTrace}"; + } + return $"[{Timestamp:HH:mm:ss}] [{Type}] {Message}"; + } } private static readonly Queue _logs = new Queue(); private static readonly object _lock = new object(); // 线程锁 private static int _maxLogs = 1000; // 默认容量 + private static bool _isInitialized = false; // 逻辑修改:添加一个私有标志来跟踪是否已初始化 // 最大日志容量属性 public static int MaxLogs @@ -35,10 +42,40 @@ namespace Logging } } + // 逻辑修改:添加 [RuntimeInitializeOnLoadMethod] 特性,确保 Init() 方法在 Unity 启动时自动执行 + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterAssembliesLoaded)] public static void Init() { - Application.logMessageReceivedThreaded += HandleLog; - + // 确保线程安全地检查和设置初始化状态 + lock (_lock) + { + if (_isInitialized) + { + Debug.LogWarning("[LogCapturer] Init() called multiple times. LogCapturer is already initialized."); + return; + } + + Application.logMessageReceivedThreaded += HandleLog; + _isInitialized = true; + } + } + + // 逻辑修改:添加一个 Shutdown 方法来解除事件注册和清理 + public static void Shutdown() + { + // 确保线程安全地检查和解除注册 + lock (_lock) + { + if (!_isInitialized) + { + Debug.LogWarning("[LogCapturer] Shutdown() called but LogCapturer was not initialized."); + return; + } + + Application.logMessageReceivedThreaded -= HandleLog; + _isInitialized = false; + _logs.Clear(); // 逻辑修改:在关闭时清空所有捕获的日志,确保下次启用时是全新状态。 + } } // 日志处理回调 @@ -88,4 +125,4 @@ namespace Logging } } } -} \ No newline at end of file +} diff --git a/Client/Assets/Scripts/Logging/LoggerManagerWrapper.cs b/Client/Assets/Scripts/Logging/LoggerManagerWrapper.cs index bad65f3..f1267c9 100644 --- a/Client/Assets/Scripts/Logging/LoggerManagerWrapper.cs +++ b/Client/Assets/Scripts/Logging/LoggerManagerWrapper.cs @@ -9,7 +9,7 @@ namespace Logging public void Init() { Logging.UnityLogger.Init(); - LogCapturer.Init(); + // LogCapturer.Init(); } public void Clear() { diff --git a/Client/Assets/Scripts/Managers/DefineManager.cs b/Client/Assets/Scripts/Managers/DefineManager.cs index f72dfa7..50d7bb5 100644 --- a/Client/Assets/Scripts/Managers/DefineManager.cs +++ b/Client/Assets/Scripts/Managers/DefineManager.cs @@ -352,7 +352,6 @@ namespace Managers // 如果结果为空,则返回 null。 if (result.Count == 0) { - Debug.LogWarning($"查询失败:未找到定义类型 '{defineType}'"); return null; } diff --git a/Client/Assets/Scripts/Map/Dimension.cs b/Client/Assets/Scripts/Map/Dimension.cs index eafa466..95f0bf8 100644 --- a/Client/Assets/Scripts/Map/Dimension.cs +++ b/Client/Assets/Scripts/Map/Dimension.cs @@ -50,21 +50,10 @@ namespace Map var rootObj = new GameObject($"_Entities_{id}"); rootObj.transform.SetParent(this.transform); // 将其作为Dimension对象的子对象 DimensionRoot = rootObj.transform; - // 3. 注册此维度到 Program - if (Program.Instance != null) // 检查单例是否仍然存在 - { - Program.Instance.RegisterDimension(this); - } - else - { - Debug.LogError( - "[Dimension] Program.Instance is null during Dimension Awake. Cannot register dimension.", this); - } - - + Program.Instance.RegisterDimension(this); // 5. 处理 defaultOpen 逻辑,设置Program的焦点维度 // 确保在自身注册到 Program 之后再设置焦点,这样 Program 内部才能找到它 - if (defaultOpen && Program.Instance != null) + if (defaultOpen) { Program.Instance.SetFocusedDimension(_dimensionId); } diff --git a/Client/Assets/Scripts/UI/BarUI.cs b/Client/Assets/Scripts/UI/BarUI.cs index ac219a9..83ac949 100644 --- a/Client/Assets/Scripts/UI/BarUI.cs +++ b/Client/Assets/Scripts/UI/BarUI.cs @@ -3,14 +3,67 @@ using UnityEngine.UI; namespace UI { - public class BarUI:MonoBehaviour + public class BarUI : MonoBehaviour { [SerializeField] private Image image; + [Header("Progress Gradient")] [SerializeField] + private Gradient progressGradient; // 用于定义多色进度渐变 + + [Header("Editor Preview")] [SerializeField] [Range(0, 1)] + private float _editorProgressPreview = 0f; // 用于在编辑器中预览的进度值 + + /// + /// 获取或设置进度条的当前进度 (0-1)。 + /// 设置时会同时更新进度条的填充量和根据渐变更新颜色。 + /// public float Progress { get => image.fillAmount; - set => image.fillAmount = value; + set + { + // 在运行时检查image是否已赋值 + if (image == null) + { + Debug.LogWarning("BarUI: Image reference is not set! Cannot update progress or color.", this); + return; + } + + // 确保进度值在0到1之间,防止出现异常情况 + float clampedValue = Mathf.Clamp01(value); + image.fillAmount = clampedValue; + + // 使用Gradient的Evaluate方法根据进度值获取对应的渐变颜色 + // Unity编辑器会自动为Gradient字段初始化一个默认实例,但在某些特殊运行时情况下, + // 还是可以加一个null检查以增加健壮性。 + if (progressGradient != null) + { + image.color = progressGradient.Evaluate(clampedValue); + } + else + { + // 如果梯度未定义(极少发生),则使用默认颜色并发出警告 + Debug.LogWarning("BarUI: Progress Gradient is not set! Using default white color.", this); + image.color = Color.white; + } + } + } + + // OnValidate是Unity编辑器特有的方法,当脚本实例在编辑器中被加载或Inspector中的数据被修改时调用 + private void OnValidate() + { + // 只有当存在Image引用时才进行更新,避免在编辑器中因未赋值而引发NullReferenceException + if (image != null) + { + // 在编辑器中修改_editorProgressPreview时,同步更新实际的Progress + // 这会触发Progress属性的setter,进而更新fillAmount和color + Progress = _editorProgressPreview; + } + else + { + // 在编辑器中未分配Image时给出提示,防止用户迷惑 + Debug.LogWarning("BarUI: Image reference is not assigned. Editor preview disabled.", this); + } } } } \ No newline at end of file diff --git a/Client/Assets/Scripts/UI/Button3D.cs b/Client/Assets/Scripts/UI/Button3D.cs index ef455e0..343aa2e 100644 --- a/Client/Assets/Scripts/UI/Button3D.cs +++ b/Client/Assets/Scripts/UI/Button3D.cs @@ -2,7 +2,8 @@ using System.Linq; // 用于可能的LINQ操作,但在此版本中可能不直接使用 using TMPro; // 用于 TextMeshPro 组件 using UnityEngine; -using UnityEngine.Events; // 用于 UnityEvent +using UnityEngine.Events; +using UnityEngine.Serialization; // 用于 UnityEvent namespace UI { @@ -11,7 +12,7 @@ namespace UI [Tooltip("当按钮被点击时触发的UnityEvent。可以在Inspector中配置.")] public UnityEvent OnClick; - public MeshRenderer renderer; // 请确保在Inspector中拖拽赋值 + [FormerlySerializedAs("renderer")] public MeshRenderer meshRenderer; // 请确保在Inspector中拖拽赋值 public Material outlineMaterial; // 请确保在Inspector中拖拽赋值 public TMP_Text text; // 文本组件 @@ -20,7 +21,7 @@ namespace UI private void Awake() { - if (renderer == null) + if (meshRenderer == null) { Debug.LogError("Button3D: MeshRenderer is not assigned. Please assign it in the Inspector.", this); return; @@ -42,7 +43,7 @@ namespace UI // 存储原始材质数组,以便在添加和移除描边时正确操作 // .ToArray() 是为了确保我们拿到的是拷贝,而不是引用,防止外部意外修改 - _originalMaterials = renderer.materials.ToArray(); + _originalMaterials = meshRenderer.materials.ToArray(); // 确保初始化时没有边框材质 // Important: 调用RemoveOutlineMaterialInternal()可能会清除_originalMaterials,所以要确保先保存 @@ -67,7 +68,7 @@ namespace UI private void OnMouseEnter() { - if (renderer == null) return; + if (meshRenderer == null) return; // 鼠标进入时显示文本 if (text != null) @@ -78,30 +79,30 @@ namespace UI // 如果没有描边材质,或者渲染器已经有描边材质,就没必要再添加了 // 检查当前材质数组长度是否已经大于等于_originalMaterials的长度+1 // 这样可以避免重复添加 - if (outlineMaterial == null || renderer.materials.Length > _originalMaterials.Length) + if (outlineMaterial == null || meshRenderer.materials.Length > _originalMaterials.Length) { return; } // 如果当前材质数组和_originalMaterials不一致,说明可能被其他逻辑修改了, // 稳妥起见,最好先恢复到_originalMaterials - if (!renderer.materials.SequenceEqual(_originalMaterials)) + if (!meshRenderer.materials.SequenceEqual(_originalMaterials)) { //Debug.LogWarning("Button3D: Renderer materials were unexpectedly modified before OnMouseEnter. Restoring original materials."); // 通常不应该发生,除非有其他脚本在修改 - renderer.materials = _originalMaterials; + meshRenderer.materials = _originalMaterials; } // 创建一个新数组,包含原始材质和描边材质 - Material[] newMaterials = new Material[_originalMaterials.Length + 1]; + var newMaterials = new Material[_originalMaterials.Length + 1]; System.Array.Copy(_originalMaterials, newMaterials, _originalMaterials.Length); newMaterials[_originalMaterials.Length] = outlineMaterial; - renderer.materials = newMaterials; + meshRenderer.materials = newMaterials; } private void OnMouseExit() { - if (renderer == null) return; + if (meshRenderer == null) return; // 鼠标离开时隐藏文本 if (text != null) @@ -124,7 +125,7 @@ namespace UI /// private void RemoveOutlineMaterialInternal() { - if (renderer == null) return; + if (meshRenderer == null) return; // 即使_originalMaterials == null(因为Awake中的LogError),也可以安全赋值空数组 // 但如果_originalMaterials确实是null,说明Awake有问题,后续操作也可能继续出错 if (_originalMaterials == null) @@ -134,7 +135,7 @@ namespace UI } // 直接将渲染器材质恢复为_originalMaterials的副本 - renderer.materials = _originalMaterials.ToArray(); // 使用ToArray()确保赋值一个副本,避免_originalMaterials被意外修改 + meshRenderer.materials = _originalMaterials.ToArray(); // 使用ToArray()确保赋值一个副本,避免_originalMaterials被意外修改 } } } diff --git a/Client/Assets/Scripts/UI/DevMenuUI.cs b/Client/Assets/Scripts/UI/DevMenuUI.cs index 1067495..2022ec8 100644 --- a/Client/Assets/Scripts/UI/DevMenuUI.cs +++ b/Client/Assets/Scripts/UI/DevMenuUI.cs @@ -5,7 +5,7 @@ using UnityEngine.SceneManagement; namespace UI { - public class DevMenuUI : UIBase + public class DevMenuUI : FullScreenUI { public GameObject menuContent; diff --git a/Client/Assets/Scripts/UI/EquipmentUI.cs b/Client/Assets/Scripts/UI/EquipmentUI.cs index dc38725..bd45fcf 100644 --- a/Client/Assets/Scripts/UI/EquipmentUI.cs +++ b/Client/Assets/Scripts/UI/EquipmentUI.cs @@ -84,7 +84,7 @@ namespace UI } // 尝试将新的实体转换为角色类型。 - Character newCharacter = entity as Character; + var newCharacter = entity as Character; if (newCharacter != null) { focusedEntity = newCharacter; @@ -151,11 +151,11 @@ namespace UI return; } - int requiredUIs = focusedEntity.Inventory.Capacity; - int currentUIPoolSize = itemUIPool.Count; // 当前对象池中 ItemUI 实例的总数。 + var requiredUIs = focusedEntity.Inventory.Capacity; + var currentUIPoolSize = itemUIPool.Count; // 当前对象池中 ItemUI 实例的总数。 // 遍历所有必要的物品槽位,复用对象池中的 ItemUI,或在不足时创建新的 ItemUI。 - for (int i = 0; i < requiredUIs; i++) + for (var i = 0; i < requiredUIs; i++) { ItemUI itemUI; if (i < currentUIPoolSize) @@ -178,7 +178,7 @@ namespace UI } // 如果库存槽位数量减少,禁用对象池中多余的 ItemUI 实例。 - for (int i = requiredUIs; i < currentUIPoolSize; i++) + for (var i = requiredUIs; i < currentUIPoolSize; i++) { if (itemUIPool[i] != null && itemUIPool[i].gameObject != null) { @@ -213,9 +213,9 @@ namespace UI return; } - for (int i = 0; i < itemUIPool.Count; i++) + for (var i = 0; i < itemUIPool.Count; i++) { - ItemUI itemUI = itemUIPool[i]; + var itemUI = itemUIPool[i]; if (itemUI != null && itemUI.gameObject != null) { // 只有在 ItemUI 激活状态下才设置其选中状态,避免对禁用UI的操作 @@ -239,12 +239,12 @@ namespace UI return; } - float scrollInput = Input.GetAxis("Mouse ScrollWheel"); + var scrollInput = Input.GetAxis("Mouse ScrollWheel"); if (scrollInput != 0) // 检测到滚轮输入 { - int currentSelection = focusedEntity.CurrentSelected; - int inventoryCapacity = focusedEntity.Inventory.Capacity; + var currentSelection = focusedEntity.CurrentSelected; + var inventoryCapacity = focusedEntity.Inventory.Capacity; if (scrollInput > 0) // 滚轮向上,选择前一个 { diff --git a/Client/Assets/Scripts/UI/FullScreenUI.cs b/Client/Assets/Scripts/UI/FullScreenUI.cs new file mode 100644 index 0000000..28bd3f5 --- /dev/null +++ b/Client/Assets/Scripts/UI/FullScreenUI.cs @@ -0,0 +1,21 @@ +using Base; +using UnityEngine; + +namespace UI +{ + public class FullScreenUI:UIBase,ITickUI + { + public FullScreenUI() + { + isInputOccupied = true; + exclusive=true; + } + public virtual void TickUI() + { + if(!IsVisible) + return; + if(Input.GetKeyDown(KeyCode.Escape)) + UIInputControl.Instance.Hide(this); + } + } +} \ No newline at end of file diff --git a/Client/Assets/Scripts/UI/FullScreenUI.cs.meta b/Client/Assets/Scripts/UI/FullScreenUI.cs.meta new file mode 100644 index 0000000..0643fbc --- /dev/null +++ b/Client/Assets/Scripts/UI/FullScreenUI.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 92b2dc3c0fc0475596413b883c51e9b2 \ No newline at end of file diff --git a/Client/Assets/Scripts/UI/LogUI.cs b/Client/Assets/Scripts/UI/LogUI.cs index d89f999..cfb0618 100644 --- a/Client/Assets/Scripts/UI/LogUI.cs +++ b/Client/Assets/Scripts/UI/LogUI.cs @@ -1,7 +1,7 @@ -using System; using System.Collections.Generic; -using Prefab; -using TMPro; +using Prefab; // 假设 TextPrefab 在 Prefab 命名空间下 +using TMPro; // 假设 TextPrefab 内部使用了 TextMeshPro + using UnityEngine; namespace UI @@ -21,66 +21,80 @@ namespace UI { LogType.Assert, new Color(0.8f, 0.4f, 1f) } }; - private List _logItems = new List(); // 已创建的日志条目 + // 逻辑修改:将_logItems改为存储TextPrefab实例,避免频繁GetComponent + private List _logItems = new List(); // 已创建的日志条目 private int _lastLogCount = 0; // 上次显示的日志数量 + - private void Start() + // 逻辑修改:在Update中周期性检查日志数量变化并刷新UI + private void Update() { - Logging.LogCapturer.Clear(); + // 获取当前LogCapturer中的日志数量(最旧在前) + var currentCapturerLogCount = Logging.LogCapturer.GetLogs(reverseOrder: false).Count; + if (_lastLogCount != currentCapturerLogCount) + { + RefreshLogDisplay(); + } } public override void Show() { base.Show(); - RefreshLogDisplay(); + RefreshLogDisplay(); // 首次显示时刷新 } private void RefreshLogDisplay() { - var logs = Logging.LogCapturer.GetLogs(); + // 逻辑修改:获取"最旧在前,最新在后"的日志列表,与UI显示顺序匹配 + var currentLogsInCapturer = Logging.LogCapturer.GetLogs(reverseOrder: false); + var newLogCount = currentLogsInCapturer.Count; + var existingUiItemCount = _logItems.Count; - // 如果日志数量减少,清理多余的条目 - if (logs.Count < _lastLogCount) + // 逻辑修改:处理日志数量减少的情况(日志被从LogCapturer的队列前端移除,即最旧的日志) + if (newLogCount < existingUiItemCount) { - for (var i = logs.Count; i < _lastLogCount; i++) + // 计算需要移除的UI条目数量 + var itemsToRemove = existingUiItemCount - newLogCount; + // 从_logItems的开头移除(销毁最旧的UI元素) + for (var i = 0; i < itemsToRemove; i++) { + // 确保销毁对应的GameObject,避免内存泄露 Destroy(_logItems[i].gameObject); } - - _logItems.RemoveRange(logs.Count, _logItems.Count - logs.Count); + _logItems.RemoveRange(0, itemsToRemove); // 从列表中移除引用 } - - // 更新现有条目 - for (var i = 0; i < Math.Min(logs.Count, _logItems.Count); i++) + // 逻辑修改:处理日志数量增加的情况(LogCapturer中新增日志) + else if (newLogCount > existingUiItemCount) { - UpdateLogEntry(_logItems[i], logs[logs.Count - 1 - i]); - } - - // 添加新的条目 - if (logs.Count > _lastLogCount) - { - for (var i = _lastLogCount; i < logs.Count; i++) + // 从现有UI条目数量开始,创建新的UI条目,并添加到_logItems末尾 + for (var i = existingUiItemCount; i < newLogCount; i++) { - CreateLogEntry(logs[logs.Count - 1 - i]); + CreateLogEntry(currentLogsInCapturer[i]); // 创建并添加新的UI元素,会自动追加到_logItems } } - _lastLogCount = logs.Count; + // 逻辑修改:更新所有现有/剩余的UI条目内容,确保与LogCapturer中的数据一致 + // 这一步确保了UI元素能准确反映其对应的日志数据,处理了任何可能的日志内容更新或初始设置。 + for (var i = 0; i < newLogCount; i++) + { + UpdateLogEntry(_logItems[i], currentLogsInCapturer[i]); + } + + _lastLogCount = newLogCount; // 更新上次显示的日志数量 } private void CreateLogEntry(Logging.LogCapturer.LogEntry entry) { - // 实例化文本预制体 + // 实例化文本预制体,并将其添加到内容面板 var logItem = Instantiate(textPrefab, contentPanel); - _logItems.Add(logItem.transform); + _logItems.Add(logItem); // 逻辑修改:直接添加TextPrefab实例 - UpdateLogEntry(logItem.transform, entry); + UpdateLogEntry(logItem, entry); // 逻辑修改:直接传入TextPrefab实例进行更新 } - private void UpdateLogEntry(Transform logItemTransform, Logging.LogCapturer.LogEntry entry) + // 逻辑修改:UpdateLogEntry现在直接接收TextPrefab实例,更高效 + private void UpdateLogEntry(TextPrefab logItem, Logging.LogCapturer.LogEntry entry) { - var logItem = logItemTransform.GetComponent(); - // 设置文本内容 logItem.Label = entry.ToString(); @@ -96,5 +110,22 @@ namespace UI logItem.text.alignment = TextAlignmentOptions.TopLeft; } + + // 逻辑修改:添加OnDestroy方法来清理动态创建的UI元素 + private void OnDestroy() + { + if (_logItems != null) + { + foreach (var item in _logItems) + { + // 检查item及其gameObject是否仍有效,以防在其他地方已经被销毁或为空 + if (item != null && item.gameObject != null) + { + Destroy(item.gameObject); + } + } + _logItems.Clear(); // 清空列表引用 + } + } } -} \ No newline at end of file +} diff --git a/Client/Assets/Scripts/UI/SettingUI.cs b/Client/Assets/Scripts/UI/SettingUI.cs index 0486c89..b04756c 100644 --- a/Client/Assets/Scripts/UI/SettingUI.cs +++ b/Client/Assets/Scripts/UI/SettingUI.cs @@ -47,6 +47,7 @@ namespace UI { windowResolution.value = 0; } + windowMode.value = (int)currentSettings.currentWindowMode; } public void CancelSettings() { diff --git a/Client/Assets/Shader/OutlineShader.shadergraph b/Client/Assets/Shader/OutlineShader.shadergraph index cbd2cad..117b9f3 100644 --- a/Client/Assets/Shader/OutlineShader.shadergraph +++ b/Client/Assets/Shader/OutlineShader.shadergraph @@ -770,7 +770,7 @@ "a": 1.0 }, "isMainColor": false, - "m_ColorMode": 1 + "m_ColorMode": 0 } { diff --git a/Client/Packages/manifest.json b/Client/Packages/manifest.json index 4183d75..084e6e3 100644 --- a/Client/Packages/manifest.json +++ b/Client/Packages/manifest.json @@ -13,6 +13,7 @@ "com.unity.test-framework": "1.5.1", "com.unity.timeline": "1.8.9", "com.unity.ugui": "2.0.0", + "com.unity.vectorgraphics": "2.0.0-preview.25", "com.unity.visualscripting": "1.9.8", "com.unity.modules.accessibility": "1.0.0", "com.unity.modules.ai": "1.0.0", diff --git a/Client/Packages/packages-lock.json b/Client/Packages/packages-lock.json index 9fb16e3..4c5998d 100644 --- a/Client/Packages/packages-lock.json +++ b/Client/Packages/packages-lock.json @@ -219,6 +219,25 @@ "com.unity.modules.imgui": "1.0.0" } }, + "com.unity.vectorgraphics": { + "version": "2.0.0-preview.25", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.ugui": "1.0.0", + "com.unity.2d.sprite": "1.0.0", + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.animation": "1.0.0", + "com.unity.modules.physics2d": "1.0.0", + "com.unity.modules.uielements": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.unitywebrequestwww": "1.0.0", + "com.unity.modules.unitywebrequesttexture": "1.0.0" + }, + "url": "https://packages.unity.com" + }, "com.unity.visualscripting": { "version": "1.9.8", "depth": 0, diff --git a/Client/ProjectSettings/ProjectSettings.asset b/Client/ProjectSettings/ProjectSettings.asset index 17e7443..22f9dc7 100644 --- a/Client/ProjectSettings/ProjectSettings.asset +++ b/Client/ProjectSettings/ProjectSettings.asset @@ -140,7 +140,7 @@ PlayerSettings: loadStoreDebugModeEnabled: 0 visionOSBundleVersion: 1.0 tvOSBundleVersion: 1.0 - bundleVersion: 0.1.0 + bundleVersion: 0.2 preloadedAssets: - {fileID: -944628639613478452, guid: 052faaac586de48259a63d0c4782560b, type: 3} metroInputSource: 0