From dd9d90439dbdfbb83c742f5a8a4577abc6c7bdf0 Mon Sep 17 00:00:00 2001 From: zzdxxz <2079238449@qq.com> Date: Fri, 3 Oct 2025 00:31:34 +0800 Subject: [PATCH] =?UTF-8?q?(client)=20feat:=E6=B7=BB=E5=8A=A0=E5=9F=BA?= =?UTF-8?q?=E5=9C=B0=E7=95=8C=E9=9D=A2=E5=88=B0=E6=B8=B8=E7=8E=A9=E7=95=8C?= =?UTF-8?q?=E9=9D=A2=E7=9A=84=E8=BF=87=E7=A8=8B=EF=BC=8C=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=AD=98=E6=A1=A3=E7=AE=A1=E7=90=86=EF=BC=8C=E6=8A=80=E8=83=BD?= =?UTF-8?q?=E6=A0=91=E5=8F=98=E5=BE=97=E5=8F=AF=E7=94=A8=20(#58)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: m0_75251201 Reviewed-on: http://47.107.252.169:3000/Roguelite-Game-Developing-Team/Gen_Hack-and-Slash-Roguelite/pulls/58 --- .../Resources/Manager/RightMenuManager.prefab | 49 + .../RightMenuManager.prefab.meta} | 2 +- .../Prefab/Dimension/Dimension.prefab | 2 +- .../PlayControllor.prefab} | 37 +- .../Dimension/PlayControllor.prefab.meta | 7 + .../Entity/BuildingPrefab Variant.prefab | 13 +- .../Entity/CharacterPrefab Variant.prefab | 18 +- .../Prefab/Entity/EntityPrefab.prefab | 4 +- .../Entity/MonsterPrefab Variant.prefab | 22 +- .../Prefab/Entity/PickupPrefab Variant.prefab | 9 +- .../TemporaryAnimationSprite.prefab | 8 + .../Resources/Prefab/UI/MapViewUI.prefab | 229 ++ .../Resources/Prefab/UI/MapViewUI.prefab.meta | 7 + .../Resources/Prefab/UI/PlayerUI.prefab | 2605 ++++++++++++++++ .../Resources/Prefab/UI/PlayerUI.prefab.meta | 7 + .../Prefab/UI/SelectCharacterUI.prefab | 6 +- .../Prefab/UI/SkillTreeNodeInformation.prefab | 1115 +++++++ .../UI/SkillTreeNodeInformation.prefab.meta | 7 + .../Resources/Prefab/UI/SkillTreeUI.prefab | 410 +++ .../Prefab/UI/SkillTreeUI.prefab.meta | 7 + .../Resources/Prefab/UI/StartPlayUI.prefab | 1080 +++++++ .../Prefab/UI/StartPlayUI.prefab.meta | 7 + .../Resources/Texture/Image/Logo_zh.svg | 30 + .../Resources/Texture/Image/Logo_zh.svg.meta | 55 + .../技能弹窗.png.meta | 16 +- Client/Assets/Resources/Tile/AirWall.asset | 18 + .../Assets/Resources/Tile/AirWall.asset.meta | 8 + .../Resources/Tile/New Tile Palette.prefab | 10 +- Client/Assets/Scenes/Base.unity | 713 ++++- Client/Assets/Scenes/Game.unity | 2713 +---------------- Client/Assets/Scenes/Initiate.unity | 314 +- Client/Assets/Scenes/Play.unity | 551 +++- Client/Assets/Scenes/Test.unity | 4 +- Client/Assets/Scripts/AI/AIBase.cs | 77 - Client/Assets/Scripts/AI/BehaviorTreeBase.cs | 37 + ...IBase.cs.meta => BehaviorTreeBase.cs.meta} | 0 Client/Assets/Scripts/AI/CompositeNodeBase.cs | 398 +++ .../Scripts/AI/CompositeNodeBase.cs.meta | 3 + Client/Assets/Scripts/AI/ConstantNode.cs | 45 + Client/Assets/Scripts/AI/ConstantNode.cs.meta | 3 + Client/Assets/Scripts/AI/JobBase.cs | 477 --- Client/Assets/Scripts/AI/JobBase.cs.meta | 2 - Client/Assets/Scripts/AI/JobGiver.cs | 49 - Client/Assets/Scripts/AI/JobGiver.cs.meta | 3 - .../Assets/Scripts/AI/JobNode_AttackTarget.cs | 63 + .../Scripts/AI/JobNode_AttackTarget.cs.meta | 3 + Client/Assets/Scripts/AI/JobNode_Idle.cs | 23 + Client/Assets/Scripts/AI/JobNode_Idle.cs.meta | 3 + .../Scripts/AI/JobNode_MoveToAttackRange.cs | 109 + .../AI/JobNode_MoveToAttackRange.cs.meta | 3 + Client/Assets/Scripts/AI/JobNode_Wander.cs | 120 + .../Assets/Scripts/AI/JobNode_Wander.cs.meta | 3 + Client/Assets/Scripts/AI/LeafNodeBase.cs | 76 + Client/Assets/Scripts/AI/LeafNodeBase.cs.meta | 3 + Client/Assets/Scripts/Base/Clock.cs | 206 +- Client/Assets/Scripts/Base/Launcher.cs | 3 + Client/Assets/Scripts/Base/MainMenuSet.cs | 13 + .../Assets/Scripts/Base/MainMenuSet.cs.meta | 3 + .../Scripts/Base/PlayGameSceneControl.cs | 126 + .../Scripts/Base/PlayGameSceneControl.cs.meta | 3 + Client/Assets/Scripts/Base/UIInputControl.cs | 18 +- .../Scripts/CameraControl/CameraControl.cs | 17 +- .../Assets/Scripts/Configs/ConfigManager.cs | 9 +- Client/Assets/Scripts/Data/BehaviorTreeDef.cs | 5 +- Client/Assets/Scripts/Data/CharacterDef.cs | 1 + Client/Assets/Scripts/Data/DimensionDef.cs | 4 +- Client/Assets/Scripts/Entity/Building.cs | 6 +- .../Assets/Scripts/Entity/BuildingOutline.cs | 2 +- Client/Assets/Scripts/Entity/Bullet.cs | 19 +- Client/Assets/Scripts/Entity/Character.cs | 34 +- Client/Assets/Scripts/Entity/Entity.cs | 227 +- .../Scripts/Entity/EntityPathManager.cs | 441 +++ .../Scripts/Entity/EntityPathManager.cs.meta | 3 + Client/Assets/Scripts/Entity/LivingEntity.cs | 35 +- Client/Assets/Scripts/Entity/Monster.cs | 15 +- Client/Assets/Scripts/Entity/Outline.cs | 191 +- .../EventWorkClass/Event_EntityGenerater.cs | 94 +- .../Assets/Scripts/Managers/DefineManager.cs | 8 +- .../Assets/Scripts/Managers/EntityManager.cs | 116 +- .../Assets/Scripts/Managers/EventManager.cs | 10 + .../Scripts/Managers/ItemResourceManager.cs | 8 +- .../Managers/KeyValueArchiveManager.cs | 128 + .../Managers/KeyValueArchiveManager.cs.meta | 3 + .../Assets/Scripts/Managers/MessageManager.cs | 8 +- Client/Assets/Scripts/Managers/SaveManager.cs | 39 +- .../Scripts/Managers/SkillTreeManager.cs | 6 +- Client/Assets/Scripts/Map/Dimension.cs | 84 +- Client/Assets/Scripts/Map/Landform.cs | 356 ++- .../Scripts/Parsing/ConditionFunctions.cs | 2 +- Client/Assets/Scripts/Prefab/BaseAnimator.cs | 1 + Client/Assets/Scripts/Prefab/EntityPrefab.cs | 2 +- .../Assets/Scripts/Prefab/RightMenuPrefab.cs | 18 +- .../Assets/Scripts/Prefab/SpriteAnimator.cs | 12 +- .../Assets/Scripts/Prefab/UIImageAnimator.cs | 11 +- Client/Assets/Scripts/Program.cs | 42 +- Client/Assets/Scripts/UI/CoinCountUI.cs | 14 +- Client/Assets/Scripts/UI/DevMenuUI.cs | 10 +- Client/Assets/Scripts/UI/EntityPlacementUI.cs | 6 +- Client/Assets/Scripts/UI/EquipmentUI.cs | 10 +- Client/Assets/Scripts/UI/FullScreenUI.cs | 3 - Client/Assets/Scripts/UI/MapViewUI.cs | 24 + Client/Assets/Scripts/UI/MapViewUI.cs.meta | 3 + Client/Assets/Scripts/UI/PlayerStateUI.cs | 11 +- Client/Assets/Scripts/UI/SelectCharacterUI.cs | 2 +- .../Scripts/UI/SkillTreeNodeInformationUI.cs | 62 + .../UI/SkillTreeNodeInformationUI.cs.meta | 3 + Client/Assets/Scripts/UI/SkillTreeNodeUI.cs | 17 +- Client/Assets/Scripts/UI/SkillTreePageUI.cs | 1 - Client/Assets/Scripts/UI/SkillTreeUI.cs | 203 +- Client/Assets/Scripts/UI/StartPlayUI.cs | 83 + Client/Assets/Scripts/UI/StartPlayUI.cs.meta | 3 + Client/Assets/Scripts/UI/WaitStartUI.cs | 55 + Client/Assets/Scripts/UI/WaitStartUI.cs.meta | 3 + .../BehaviorTreeUtils.cs} | 30 +- .../BehaviorTreeUtils.cs.meta} | 0 Client/Assets/Scripts/Utils/RotateTool.cs | 5 +- Client/Assets/Scripts/Utils/StringUtils.cs | 36 +- ...niversalRenderPipelineGlobalSettings.asset | 15 +- .../TextMesh Pro/Fonts/SIMHEI SDF.asset | 4 +- .../Define/Building/FunctionalBuilding.xml | 42 +- .../Define/Entity/Character/Character.xml | 15 +- Client/Data/Core/Define/Entity/Monster.xml | 45 +- .../Core/Define/Entity/MonsterTextures.xml | 152 - .../Data/Core/Define/Event/GenerateEvent.xml | 4 + .../Data/Core/Define/Event/MessageEvent.xml | 10 + Client/Data/Core/Define/Item/Coin.xml | 15 + Client/Data/Core/Define/Item/Weapon.xml | 328 -- .../{Dimension.xml => DefaultDimension.xml} | 9 +- .../Data/Core/Define/Map/GrassDimension.xml | 27 + Client/Data/Core/Define/Map/MapGenerator.xml | 17 +- Client/Data/Core/Resources/Item/粒子.png | Bin 0 -> 424 bytes Client/ProjectSettings/ProjectSettings.asset | 4 +- Client/Save/game_save.json | 8 + Client/app_config.json | 3 +- 134 files changed, 10322 insertions(+), 4872 deletions(-) create mode 100644 Client/Assets/Resources/Manager/RightMenuManager.prefab rename Client/Assets/Resources/{Prefab/UI/SkillTree.prefab.meta => Manager/RightMenuManager.prefab.meta} (74%) rename Client/Assets/Resources/Prefab/{UI/SkillTree.prefab => Dimension/PlayControllor.prefab} (52%) create mode 100644 Client/Assets/Resources/Prefab/Dimension/PlayControllor.prefab.meta create mode 100644 Client/Assets/Resources/Prefab/UI/MapViewUI.prefab create mode 100644 Client/Assets/Resources/Prefab/UI/MapViewUI.prefab.meta create mode 100644 Client/Assets/Resources/Prefab/UI/PlayerUI.prefab create mode 100644 Client/Assets/Resources/Prefab/UI/PlayerUI.prefab.meta create mode 100644 Client/Assets/Resources/Prefab/UI/SkillTreeNodeInformation.prefab create mode 100644 Client/Assets/Resources/Prefab/UI/SkillTreeNodeInformation.prefab.meta create mode 100644 Client/Assets/Resources/Prefab/UI/SkillTreeUI.prefab create mode 100644 Client/Assets/Resources/Prefab/UI/SkillTreeUI.prefab.meta create mode 100644 Client/Assets/Resources/Prefab/UI/StartPlayUI.prefab create mode 100644 Client/Assets/Resources/Prefab/UI/StartPlayUI.prefab.meta create mode 100644 Client/Assets/Resources/Texture/Image/Logo_zh.svg create mode 100644 Client/Assets/Resources/Texture/Image/Logo_zh.svg.meta create mode 100644 Client/Assets/Resources/Tile/AirWall.asset create mode 100644 Client/Assets/Resources/Tile/AirWall.asset.meta delete mode 100644 Client/Assets/Scripts/AI/AIBase.cs create mode 100644 Client/Assets/Scripts/AI/BehaviorTreeBase.cs rename Client/Assets/Scripts/AI/{AIBase.cs.meta => BehaviorTreeBase.cs.meta} (100%) create mode 100644 Client/Assets/Scripts/AI/CompositeNodeBase.cs create mode 100644 Client/Assets/Scripts/AI/CompositeNodeBase.cs.meta create mode 100644 Client/Assets/Scripts/AI/ConstantNode.cs create mode 100644 Client/Assets/Scripts/AI/ConstantNode.cs.meta delete mode 100644 Client/Assets/Scripts/AI/JobBase.cs delete mode 100644 Client/Assets/Scripts/AI/JobBase.cs.meta delete mode 100644 Client/Assets/Scripts/AI/JobGiver.cs delete mode 100644 Client/Assets/Scripts/AI/JobGiver.cs.meta create mode 100644 Client/Assets/Scripts/AI/JobNode_AttackTarget.cs create mode 100644 Client/Assets/Scripts/AI/JobNode_AttackTarget.cs.meta create mode 100644 Client/Assets/Scripts/AI/JobNode_Idle.cs create mode 100644 Client/Assets/Scripts/AI/JobNode_Idle.cs.meta create mode 100644 Client/Assets/Scripts/AI/JobNode_MoveToAttackRange.cs create mode 100644 Client/Assets/Scripts/AI/JobNode_MoveToAttackRange.cs.meta create mode 100644 Client/Assets/Scripts/AI/JobNode_Wander.cs create mode 100644 Client/Assets/Scripts/AI/JobNode_Wander.cs.meta create mode 100644 Client/Assets/Scripts/AI/LeafNodeBase.cs create mode 100644 Client/Assets/Scripts/AI/LeafNodeBase.cs.meta create mode 100644 Client/Assets/Scripts/Base/MainMenuSet.cs create mode 100644 Client/Assets/Scripts/Base/MainMenuSet.cs.meta create mode 100644 Client/Assets/Scripts/Base/PlayGameSceneControl.cs create mode 100644 Client/Assets/Scripts/Base/PlayGameSceneControl.cs.meta create mode 100644 Client/Assets/Scripts/Entity/EntityPathManager.cs create mode 100644 Client/Assets/Scripts/Entity/EntityPathManager.cs.meta create mode 100644 Client/Assets/Scripts/Managers/KeyValueArchiveManager.cs create mode 100644 Client/Assets/Scripts/Managers/KeyValueArchiveManager.cs.meta create mode 100644 Client/Assets/Scripts/UI/MapViewUI.cs create mode 100644 Client/Assets/Scripts/UI/MapViewUI.cs.meta create mode 100644 Client/Assets/Scripts/UI/SkillTreeNodeInformationUI.cs create mode 100644 Client/Assets/Scripts/UI/SkillTreeNodeInformationUI.cs.meta create mode 100644 Client/Assets/Scripts/UI/StartPlayUI.cs create mode 100644 Client/Assets/Scripts/UI/StartPlayUI.cs.meta create mode 100644 Client/Assets/Scripts/UI/WaitStartUI.cs create mode 100644 Client/Assets/Scripts/UI/WaitStartUI.cs.meta rename Client/Assets/Scripts/{AI/BehaviorTree.cs => Utils/BehaviorTreeUtils.cs} (68%) rename Client/Assets/Scripts/{AI/BehaviorTree.cs.meta => Utils/BehaviorTreeUtils.cs.meta} (100%) delete mode 100644 Client/Data/Core/Define/Entity/MonsterTextures.xml create mode 100644 Client/Data/Core/Define/Event/GenerateEvent.xml create mode 100644 Client/Data/Core/Define/Event/MessageEvent.xml create mode 100644 Client/Data/Core/Define/Item/Coin.xml rename Client/Data/Core/Define/Map/{Dimension.xml => DefaultDimension.xml} (79%) create mode 100644 Client/Data/Core/Define/Map/GrassDimension.xml create mode 100644 Client/Data/Core/Resources/Item/粒子.png create mode 100644 Client/Save/game_save.json diff --git a/Client/Assets/Resources/Manager/RightMenuManager.prefab b/Client/Assets/Resources/Manager/RightMenuManager.prefab new file mode 100644 index 0000000..602d157 --- /dev/null +++ b/Client/Assets/Resources/Manager/RightMenuManager.prefab @@ -0,0 +1,49 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &6780331639118600844 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6739652400120250140} + - component: {fileID: 5249292796304100753} + m_Layer: 0 + m_Name: RightMenuManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6739652400120250140 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6780331639118600844} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 82.63557, y: 36.06109, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &5249292796304100753 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6780331639118600844} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 409b8017bbd6443eb2dde17ea6fd5e29, type: 3} + m_Name: + m_EditorClassIdentifier: + isGlobal: 1 + _canvas: {fileID: 0} + _rightMenuPrefab: {fileID: 1536012154932022711, guid: 6a6b87c10209f534b926ee730079390c, type: 3} diff --git a/Client/Assets/Resources/Prefab/UI/SkillTree.prefab.meta b/Client/Assets/Resources/Manager/RightMenuManager.prefab.meta similarity index 74% rename from Client/Assets/Resources/Prefab/UI/SkillTree.prefab.meta rename to Client/Assets/Resources/Manager/RightMenuManager.prefab.meta index 6a8552c..dbec04e 100644 --- a/Client/Assets/Resources/Prefab/UI/SkillTree.prefab.meta +++ b/Client/Assets/Resources/Manager/RightMenuManager.prefab.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: c9b08d521dc64f94dad2fe46b5ef1daf +guid: 6356b177ffad416499427f272c81c8c0 PrefabImporter: externalObjects: {} userData: diff --git a/Client/Assets/Resources/Prefab/Dimension/Dimension.prefab b/Client/Assets/Resources/Prefab/Dimension/Dimension.prefab index 96b3267..7815325 100644 --- a/Client/Assets/Resources/Prefab/Dimension/Dimension.prefab +++ b/Client/Assets/Resources/Prefab/Dimension/Dimension.prefab @@ -352,7 +352,7 @@ MonoBehaviour: landform: {fileID: 6628939405031473293} cameraPosition: {x: 0, y: 0, z: 0} focusEntity: {fileID: 0} - mapGeneratorId: + airWall: {fileID: 11400000, guid: 65059a118463f144d8a6066609d07f28, type: 2} --- !u!1 &5274070282519119908 GameObject: m_ObjectHideFlags: 0 diff --git a/Client/Assets/Resources/Prefab/UI/SkillTree.prefab b/Client/Assets/Resources/Prefab/Dimension/PlayControllor.prefab similarity index 52% rename from Client/Assets/Resources/Prefab/UI/SkillTree.prefab rename to Client/Assets/Resources/Prefab/Dimension/PlayControllor.prefab index 88f1df7..1c576bc 100644 --- a/Client/Assets/Resources/Prefab/UI/SkillTree.prefab +++ b/Client/Assets/Resources/Prefab/Dimension/PlayControllor.prefab @@ -1,6 +1,6 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!1 &6079752034257435785 +--- !u!1 &1453842367159182486 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -8,22 +8,23 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 6946156752503637673} - - component: {fileID: 3723419201051338689} - m_Layer: 5 - m_Name: SkillTree + - component: {fileID: 4784716766365171644} + - component: {fileID: 1653900192943441962} + m_Layer: 0 + m_Name: PlayControllor m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &6946156752503637673 -RectTransform: +--- !u!4 &4784716766365171644 +Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6079752034257435785} + m_GameObject: {fileID: 1453842367159182486} + serializedVersion: 2 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} @@ -31,27 +32,17 @@ RectTransform: m_Children: [] m_Father: {fileID: 0} 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: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &3723419201051338689 +--- !u!114 &1653900192943441962 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6079752034257435785} + m_GameObject: {fileID: 1453842367159182486} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 7ad8ef90e9e043f09c09d806ff37a4f6, type: 3} + m_Script: {fileID: 11500000, guid: c8957653de16448fad7c6dc5b273ffe3, type: 3} m_Name: m_EditorClassIdentifier: - exclusive: 1 - needPause: 1 - isInputOccupied: 1 - actionButton: 0 - skillTreePageUIPrefab: {fileID: 4750874098510840964, guid: 432727857990a14468ef084134b64047, type: 3} - skillTreePageUIParent: {fileID: 6946156752503637673} - _animationDuration: 0.3 + dimensionPrefab: {fileID: 7309265216316706961, guid: 236c0c9e335f46743bf67841f64a9429, type: 3} + waitStartUI: {fileID: 0} diff --git a/Client/Assets/Resources/Prefab/Dimension/PlayControllor.prefab.meta b/Client/Assets/Resources/Prefab/Dimension/PlayControllor.prefab.meta new file mode 100644 index 0000000..b202dec --- /dev/null +++ b/Client/Assets/Resources/Prefab/Dimension/PlayControllor.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b4708b6f1c6cc31499da4cd19a98b177 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Resources/Prefab/Entity/BuildingPrefab Variant.prefab b/Client/Assets/Resources/Prefab/Entity/BuildingPrefab Variant.prefab index 13dbaa8..7beb1b9 100644 --- a/Client/Assets/Resources/Prefab/Entity/BuildingPrefab Variant.prefab +++ b/Client/Assets/Resources/Prefab/Entity/BuildingPrefab Variant.prefab @@ -256,6 +256,10 @@ PrefabInstance: propertyPath: m_BodyType value: 2 objectReference: {fileID: 0} + - target: {fileID: 4717642781780051128, guid: 6cd8b01a0f57372438dc30c864ae1530, type: 3} + propertyPath: m_Simulated + value: 1 + objectReference: {fileID: 0} m_RemovedComponents: - {fileID: 7300440714681954677, guid: 6cd8b01a0f57372438dc30c864ae1530, type: 3} - {fileID: 1724818962207668775, guid: 6cd8b01a0f57372438dc30c864ae1530, type: 3} @@ -291,6 +295,11 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 605f185650fe46d89a6e0d60fb8fb11c, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!50 &2498135660213383127 stripped +Rigidbody2D: + m_CorrespondingSourceObject: {fileID: 4717642781780051128, guid: 6cd8b01a0f57372438dc30c864ae1530, type: 3} + m_PrefabInstance: {fileID: 7193170239846001519} + m_PrefabAsset: {fileID: 0} --- !u!82 &4591738837857814851 stripped AudioSource: m_CorrespondingSourceObject: {fileID: 6659245077976572460, guid: 6cd8b01a0f57372438dc30c864ae1530, type: 3} @@ -349,13 +358,14 @@ MonoBehaviour: weaponAnimator: {fileID: 7937974808207013715} weaponItem: {fileID: 0} weaponAttackAnimation: {fileID: 0} - direction: {x: 0, y: 0, z: 0} + rb: {fileID: 2498135660213383127} attackDirection: {x: 0, y: 0, z: 0} body: {fileID: 4949477718940635697} affiliation: canSelect: 1 currentDimensionId: Audio: {fileID: 4591738837857814851} + moveTarget: {x: 0, y: 0, z: 0} _hitBarUIShowTime: 5 --- !u!114 &6487788869574860317 MonoBehaviour: @@ -369,7 +379,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: ba93dffd1aec4bd5b1ef57df2597ba56, type: 3} m_Name: m_EditorClassIdentifier: - rightMenuPrefab: {fileID: 1536012154932022711, guid: 6a6b87c10209f534b926ee730079390c, type: 3} body: {fileID: 4949477718940635697} outlineRenderer: {fileID: 6103973223718413091} outlineCollider: {fileID: 0} diff --git a/Client/Assets/Resources/Prefab/Entity/CharacterPrefab Variant.prefab b/Client/Assets/Resources/Prefab/Entity/CharacterPrefab Variant.prefab index 0fb3a50..493f6ac 100644 --- a/Client/Assets/Resources/Prefab/Entity/CharacterPrefab Variant.prefab +++ b/Client/Assets/Resources/Prefab/Entity/CharacterPrefab Variant.prefab @@ -60,6 +60,14 @@ PrefabInstance: propertyPath: entity value: objectReference: {fileID: 1108911649520063592} + - target: {fileID: 4717642781780051128, guid: 6cd8b01a0f57372438dc30c864ae1530, type: 3} + propertyPath: m_Mass + value: 0.79029816 + objectReference: {fileID: 0} + - target: {fileID: 4717642781780051128, guid: 6cd8b01a0f57372438dc30c864ae1530, type: 3} + propertyPath: m_UseAutoMass + value: 1 + objectReference: {fileID: 0} m_RemovedComponents: - {fileID: 5281521133329697568, guid: 6cd8b01a0f57372438dc30c864ae1530, type: 3} m_RemovedGameObjects: [] @@ -91,20 +99,19 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 757576bb4354ac54da09868e1be02eec, type: 3} m_Name: m_EditorClassIdentifier: - animatorPrefab: {fileID: 2113064398104960506, guid: ea9af70ce0f4c8b4a9de58ac63074156, type: 3} - imagePrefab: {fileID: 1922746734790246249, guid: a6657f26d735fab4690c8185980fda29, type: 3} healthBarPrefab: {fileID: 8215007830330368681} entityPrefab: {fileID: 3420474218334607780} weaponAnimator: {fileID: 914846366255260404} weaponItem: {fileID: 0} weaponAttackAnimation: {fileID: 0} - direction: {x: 0, y: 0, z: 0} + rb: {fileID: 4625298857551411824} attackDirection: {x: 0, y: 0, z: 0} body: {fileID: 2750404322221410198} affiliation: canSelect: 1 currentDimensionId: Audio: {fileID: 6711022939971476708} + moveTarget: {x: 0, y: 0, z: 0} _hitBarUIShowTime: 5 --- !u!1 &2750404322221410198 stripped GameObject: @@ -122,6 +129,11 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: b20b1846b9ef47db83c2ac8c4c4e82cb, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!50 &4625298857551411824 stripped +Rigidbody2D: + m_CorrespondingSourceObject: {fileID: 4717642781780051128, guid: 6cd8b01a0f57372438dc30c864ae1530, type: 3} + m_PrefabInstance: {fileID: 92380775595425480} + m_PrefabAsset: {fileID: 0} --- !u!82 &6711022939971476708 stripped AudioSource: m_CorrespondingSourceObject: {fileID: 6659245077976572460, guid: 6cd8b01a0f57372438dc30c864ae1530, type: 3} diff --git a/Client/Assets/Resources/Prefab/Entity/EntityPrefab.prefab b/Client/Assets/Resources/Prefab/Entity/EntityPrefab.prefab index 8bb044c..96ea0f2 100644 --- a/Client/Assets/Resources/Prefab/Entity/EntityPrefab.prefab +++ b/Client/Assets/Resources/Prefab/Entity/EntityPrefab.prefab @@ -154,7 +154,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: acf99b9aa18d4ab9b4ce796d513d476b, type: 3} m_Name: m_EditorClassIdentifier: - rightMenuPrefab: {fileID: 1536012154932022711, guid: 6a6b87c10209f534b926ee730079390c, type: 3} body: {fileID: 2838206730318674270} outlineRenderer: {fileID: 3992139212329961548} outlineCollider: {fileID: 1724818962207668775} @@ -177,13 +176,14 @@ MonoBehaviour: weaponAnimator: {fileID: 1007148524615441468} weaponItem: {fileID: 0} weaponAttackAnimation: {fileID: 0} - direction: {x: 0, y: 0, z: 0} + rb: {fileID: 4717642781780051128} attackDirection: {x: 0, y: 0, z: 0} body: {fileID: 2838206730318674270} affiliation: canSelect: 1 currentDimensionId: Audio: {fileID: 6659245077976572460} + moveTarget: {x: 0, y: 0, z: 0} _hitBarUIShowTime: 5 --- !u!70 &1724818962207668775 CapsuleCollider2D: diff --git a/Client/Assets/Resources/Prefab/Entity/MonsterPrefab Variant.prefab b/Client/Assets/Resources/Prefab/Entity/MonsterPrefab Variant.prefab index f936858..af085ff 100644 --- a/Client/Assets/Resources/Prefab/Entity/MonsterPrefab Variant.prefab +++ b/Client/Assets/Resources/Prefab/Entity/MonsterPrefab Variant.prefab @@ -60,6 +60,18 @@ PrefabInstance: propertyPath: entity value: objectReference: {fileID: 1684624059175526519} + - target: {fileID: 4717642781780051128, guid: 6cd8b01a0f57372438dc30c864ae1530, type: 3} + propertyPath: m_Mass + value: 0.79029816 + objectReference: {fileID: 0} + - target: {fileID: 4717642781780051128, guid: 6cd8b01a0f57372438dc30c864ae1530, type: 3} + propertyPath: m_Simulated + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4717642781780051128, guid: 6cd8b01a0f57372438dc30c864ae1530, type: 3} + propertyPath: m_UseAutoMass + value: 1 + objectReference: {fileID: 0} m_RemovedComponents: - {fileID: 5281521133329697568, guid: 6cd8b01a0f57372438dc30c864ae1530, type: 3} m_RemovedGameObjects: [] @@ -91,20 +103,19 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 32995e4c8e0d40dfa39990f0671a3733, type: 3} m_Name: m_EditorClassIdentifier: - animatorPrefab: {fileID: 2113064398104960506, guid: ea9af70ce0f4c8b4a9de58ac63074156, type: 3} - imagePrefab: {fileID: 1922746734790246249, guid: a6657f26d735fab4690c8185980fda29, type: 3} healthBarPrefab: {fileID: 8409907229673894003} entityPrefab: {fileID: 3009419556014787454} weaponAnimator: {fileID: 722339444688220206} weaponItem: {fileID: 0} weaponAttackAnimation: {fileID: 0} - direction: {x: 0, y: 0, z: 0} + rb: {fileID: 5081239913035753642} attackDirection: {x: 0, y: 0, z: 0} body: {fileID: 2350608668399211852} affiliation: canSelect: 1 currentDimensionId: Audio: {fileID: 6599528030566616638} + moveTarget: {x: 0, y: 0, z: 0} _hitBarUIShowTime: 5 --- !u!1 &2350608668399211852 stripped GameObject: @@ -122,6 +133,11 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: b20b1846b9ef47db83c2ac8c4c4e82cb, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!50 &5081239913035753642 stripped +Rigidbody2D: + m_CorrespondingSourceObject: {fileID: 4717642781780051128, guid: 6cd8b01a0f57372438dc30c864ae1530, type: 3} + m_PrefabInstance: {fileID: 575440246232574994} + m_PrefabAsset: {fileID: 0} --- !u!82 &6599528030566616638 stripped AudioSource: m_CorrespondingSourceObject: {fileID: 6659245077976572460, guid: 6cd8b01a0f57372438dc30c864ae1530, type: 3} diff --git a/Client/Assets/Resources/Prefab/Entity/PickupPrefab Variant.prefab b/Client/Assets/Resources/Prefab/Entity/PickupPrefab Variant.prefab index 01b1749..df77487 100644 --- a/Client/Assets/Resources/Prefab/Entity/PickupPrefab Variant.prefab +++ b/Client/Assets/Resources/Prefab/Entity/PickupPrefab Variant.prefab @@ -68,6 +68,10 @@ PrefabInstance: propertyPath: entity value: objectReference: {fileID: 3102709554251180267} + - target: {fileID: 4717642781780051128, guid: 6cd8b01a0f57372438dc30c864ae1530, type: 3} + propertyPath: m_BodyType + value: 2 + objectReference: {fileID: 0} m_RemovedComponents: - {fileID: 5281521133329697568, guid: 6cd8b01a0f57372438dc30c864ae1530, type: 3} m_RemovedGameObjects: @@ -112,20 +116,19 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 4e65cb3d0f8440c599399cefd9a3a5d7, type: 3} m_Name: m_EditorClassIdentifier: - animatorPrefab: {fileID: 2113064398104960506, guid: ea9af70ce0f4c8b4a9de58ac63074156, type: 3} - imagePrefab: {fileID: 1922746734790246249, guid: a6657f26d735fab4690c8185980fda29, type: 3} healthBarPrefab: {fileID: 0} entityPrefab: {fileID: 1096543602564338806} weaponAnimator: {fileID: 0} weaponItem: {fileID: 0} weaponAttackAnimation: {fileID: 0} - direction: {x: 0, y: 0, z: 0} + rb: {fileID: 0} attackDirection: {x: 0, y: 0, z: 0} body: {fileID: 462504746097347140} affiliation: canSelect: 0 currentDimensionId: Audio: {fileID: 9034806323872207158} + moveTarget: {x: 0, y: 0, z: 0} _hitBarUIShowTime: 5 --- !u!82 &9034806323872207158 stripped AudioSource: diff --git a/Client/Assets/Resources/Prefab/TemporaryAnimation/TemporaryAnimationSprite.prefab b/Client/Assets/Resources/Prefab/TemporaryAnimation/TemporaryAnimationSprite.prefab index ed1c112..d6bed66 100644 --- a/Client/Assets/Resources/Prefab/TemporaryAnimation/TemporaryAnimationSprite.prefab +++ b/Client/Assets/Resources/Prefab/TemporaryAnimation/TemporaryAnimationSprite.prefab @@ -55,6 +55,14 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 3935656049723907217} m_Modifications: + - target: {fileID: 2521950769040898791, guid: ea9af70ce0f4c8b4a9de58ac63074156, type: 3} + propertyPath: m_FlipX + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2521950769040898791, guid: ea9af70ce0f4c8b4a9de58ac63074156, type: 3} + propertyPath: m_FlipY + value: 0 + objectReference: {fileID: 0} - target: {fileID: 5021031438404678310, guid: ea9af70ce0f4c8b4a9de58ac63074156, type: 3} propertyPath: m_Name value: Animation diff --git a/Client/Assets/Resources/Prefab/UI/MapViewUI.prefab b/Client/Assets/Resources/Prefab/UI/MapViewUI.prefab new file mode 100644 index 0000000..22eb219 --- /dev/null +++ b/Client/Assets/Resources/Prefab/UI/MapViewUI.prefab @@ -0,0 +1,229 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2326254235482068202 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4246272796452276298} + - component: {fileID: 1623813060875751827} + - component: {fileID: 6198168324803217758} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4246272796452276298 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2326254235482068202} + 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: 5531975968237504607} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 60} + m_SizeDelta: {x: 0, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1623813060875751827 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2326254235482068202} + m_CullTransparentMesh: 1 +--- !u!114 &6198168324803217758 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2326254235482068202} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, 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_text: "\u8349\u5730\n\u4E00\u671B\u65E0\u9645\u7684\u8349\u539F\uFF0C\u5F88\u4E0D\u9519\u4F46\u8D44\u6E90\u5C31\u5C11\u4E86" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 317edb274e9c5144a9916937bdbf7716, type: 2} + m_sharedMaterial: {fileID: -1361428157011412921, guid: 317edb274e9c5144a9916937bdbf7716, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 1024 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &2725967534035387510 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5531975968237504607} + - component: {fileID: 4926376494424495276} + - component: {fileID: 3900237611967875538} + - component: {fileID: 9097842885905143618} + m_Layer: 5 + m_Name: MapViewUI + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5531975968237504607 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2725967534035387510} + 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: 4246272796452276298} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 400, y: 400} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4926376494424495276 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2725967534035387510} + m_CullTransparentMesh: 1 +--- !u!114 &3900237611967875538 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2725967534035387510} + 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: 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: 21300000, guid: 620e16cb0aec3684db9ef80bdcc85695, 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!114 &9097842885905143618 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2725967534035387510} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a17823520b234a3297fea4642b69a4d7, type: 3} + m_Name: + m_EditorClassIdentifier: + text: {fileID: 6198168324803217758} + icon: {fileID: 3900237611967875538} diff --git a/Client/Assets/Resources/Prefab/UI/MapViewUI.prefab.meta b/Client/Assets/Resources/Prefab/UI/MapViewUI.prefab.meta new file mode 100644 index 0000000..7cc1ee5 --- /dev/null +++ b/Client/Assets/Resources/Prefab/UI/MapViewUI.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c0bdf3b0701d89c4f88640cfb9156adb +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Resources/Prefab/UI/PlayerUI.prefab b/Client/Assets/Resources/Prefab/UI/PlayerUI.prefab new file mode 100644 index 0000000..35350f9 --- /dev/null +++ b/Client/Assets/Resources/Prefab/UI/PlayerUI.prefab @@ -0,0 +1,2605 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1327711911100125431 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3510767560788507364} + - component: {fileID: 1192811531542345482} + - component: {fileID: 6007706203217853475} + m_Layer: 5 + m_Name: MainHPBar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3510767560788507364 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1327711911100125431} + 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: 5391678221907767131} + - {fileID: 5007082192216466820} + m_Father: {fileID: 6854597925211758154} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 90.0318, y: 177.83636} + m_SizeDelta: {x: 123.0923, y: 301.846} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1192811531542345482 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1327711911100125431} + m_CullTransparentMesh: 1 +--- !u!114 &6007706203217853475 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1327711911100125431} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a5026699f3a94f029628af90ccd8fa8d, type: 3} + m_Name: + m_EditorClassIdentifier: + image: {fileID: 4997185275250053026} + 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.63 +--- !u!1 &1548453136192755774 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2309820620463357207} + - component: {fileID: 3871305248163452733} + - component: {fileID: 7219422850447277249} + m_Layer: 5 + m_Name: BaseBuildingHPBar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2309820620463357207 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1548453136192755774} + 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: 2526849323030255045} + - {fileID: 2120082199252473244} + m_Father: {fileID: 6854597925211758154} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -230.19214, y: -53.597412} + m_SizeDelta: {x: 402.5165, y: 46.5413} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3871305248163452733 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1548453136192755774} + m_CullTransparentMesh: 1 +--- !u!114 &7219422850447277249 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1548453136192755774} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a5026699f3a94f029628af90ccd8fa8d, type: 3} + m_Name: + m_EditorClassIdentifier: + image: {fileID: 236924741681570380} + 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.547 +--- !u!1 &1706697377910421657 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6530474159423164621} + - component: {fileID: 849846334373353325} + - component: {fileID: 6070153253035522314} + m_Layer: 5 + m_Name: text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6530474159423164621 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1706697377910421657} + 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: 3107823987010588249} + 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: -29.999996, y: -10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &849846334373353325 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1706697377910421657} + m_CullTransparentMesh: 1 +--- !u!114 &6070153253035522314 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1706697377910421657} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, 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_text: 414444444425666666666666 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 317edb274e9c5144a9916937bdbf7716, type: 2} + m_sharedMaterial: {fileID: -1361428157011412921, guid: 317edb274e9c5144a9916937bdbf7716, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 4 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 1 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &3049590567898164974 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8455489799410687461} + - component: {fileID: 6893096279656461134} + m_Layer: 5 + m_Name: Equipment + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8455489799410687461 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3049590567898164974} + 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: 3813003831376699416} + - {fileID: 3373533873061510645} + - {fileID: 5559022008408632629} + m_Father: {fileID: 6854597925211758154} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 192.80688, y: 177.84} + m_SizeDelta: {x: 205.5941, y: 301.85} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &6893096279656461134 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3049590567898164974} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4432817f903945648bdc0b3a4ba19adc, type: 3} + m_Name: + m_EditorClassIdentifier: + currentUse: {fileID: 5624125055153986449} + two: {fileID: 6052540224479397190} + three: {fileID: 5962487215880435777} +--- !u!1 &3278445338315830746 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6428909794403180010} + - component: {fileID: 4197947479724199690} + - component: {fileID: 2562407460099852436} + m_Layer: 5 + m_Name: bk + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6428909794403180010 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3278445338315830746} + 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: 3107823987010588249} + 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4197947479724199690 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3278445338315830746} + m_CullTransparentMesh: 1 +--- !u!114 &2562407460099852436 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3278445338315830746} + 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: 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: 3286163911610860551, guid: d102f013c83999e4081e0c014bf2430a, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &3292898445560187791 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5007082192216466820} + - component: {fileID: 2051521066564601593} + - component: {fileID: 4997185275250053026} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5007082192216466820 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3292898445560187791} + 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: 3510767560788507364} + 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2051521066564601593 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3292898445560187791} + m_CullTransparentMesh: 1 +--- !u!114 &4997185275250053026 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3292898445560187791} + 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, 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: 3286163911610860551, guid: 2d75b7f02ff03f946b5e2dbe410ee8bf, type: 3} + m_Type: 3 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 1 + m_FillAmount: 0.63 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &4015798214046607508 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8345698442372626977} + - component: {fileID: 8405318876654126900} + - component: {fileID: 6229559291274434678} + m_Layer: 5 + m_Name: RawImage + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8345698442372626977 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4015798214046607508} + 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: 5822942110769015762} + 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8405318876654126900 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4015798214046607508} + m_CullTransparentMesh: 1 +--- !u!114 &6229559291274434678 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4015798214046607508} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + 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 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Texture: {fileID: 8400000, guid: 994b6fcab4b4f724c9576af3964c870f, type: 2} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!1 &4158904509023760063 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5559022008408632629} + - component: {fileID: 5755444869472283023} + - component: {fileID: 1734368155171606359} + - component: {fileID: 5962487215880435777} + m_Layer: 5 + m_Name: 3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5559022008408632629 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4158904509023760063} + 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: 673291665605467500} + m_Father: {fileID: 8455489799410687461} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 122.79912, y: 245.30267} + m_SizeDelta: {x: 97.8637, y: 97.2345} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5755444869472283023 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4158904509023760063} + m_CullTransparentMesh: 1 +--- !u!114 &1734368155171606359 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4158904509023760063} + 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: 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: 3286163911610860551, guid: 49574900b62cf8f4481e400bb87d8497, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5962487215880435777 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4158904509023760063} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7d651a3517184abcb4aff78629eb7946, type: 3} + m_Name: + m_EditorClassIdentifier: + icon: {fileID: 6464240636047932061} +--- !u!1 &4475096256853080011 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3107823987010588249} + - component: {fileID: 3001554999782626958} + m_Layer: 5 + m_Name: CoinUI + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3107823987010588249 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4475096256853080011} + 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: 6428909794403180010} + - {fileID: 6530474159423164621} + m_Father: {fileID: 6854597925211758154} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -110.76074, y: -99.95935} + m_SizeDelta: {x: 147.5416, y: 44.6209} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &3001554999782626958 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4475096256853080011} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 85cfb4a924a04c6e9f6f7801207dbee3, type: 3} + m_Name: + m_EditorClassIdentifier: + text: {fileID: 6070153253035522314} +--- !u!1 &5015254076133327201 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3813003831376699416} + - component: {fileID: 6585169496615788544} + - component: {fileID: 1664520940914695073} + - component: {fileID: 5624125055153986449} + m_Layer: 5 + m_Name: use + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3813003831376699416 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5015254076133327201} + 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: 4566214359143532155} + m_Father: {fileID: 8455489799410687461} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 74.80589, y: 71.574394} + m_SizeDelta: {x: 144.0769, y: 143.1488} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6585169496615788544 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5015254076133327201} + m_CullTransparentMesh: 1 +--- !u!114 &1664520940914695073 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5015254076133327201} + 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: 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: 3286163911610860551, guid: 89c428aa91735ee48a38fff2a726dbd5, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5624125055153986449 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5015254076133327201} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7d651a3517184abcb4aff78629eb7946, type: 3} + m_Name: + m_EditorClassIdentifier: + icon: {fileID: 8049032507815158154} +--- !u!1 &5155617777751166603 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3012941975945932484} + - component: {fileID: 3012358864826185609} + - component: {fileID: 4645914308153910391} + m_Layer: 5 + m_Name: OtherHPBar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3012941975945932484 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5155617777751166603} + 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: 3688435653647021601} + - {fileID: 13045194620452657} + m_Father: {fileID: 6854597925211758154} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: -86.66797, y: 177.8364} + m_SizeDelta: {x: 112.5331, y: 302.7567} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3012358864826185609 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5155617777751166603} + m_CullTransparentMesh: 1 +--- !u!114 &4645914308153910391 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5155617777751166603} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a5026699f3a94f029628af90ccd8fa8d, type: 3} + m_Name: + m_EditorClassIdentifier: + image: {fileID: 8674163204012859507} + 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.576 +--- !u!1 &5213494278434393612 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7307723032965507088} + - component: {fileID: 8102038447184520294} + - component: {fileID: 2654889776664175948} + - component: {fileID: 8515080748960116964} + m_Layer: 5 + m_Name: MiniMap + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7307723032965507088 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5213494278434393612} + 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: 5822942110769015762} + m_Father: {fileID: 6854597925211758154} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 195.6211, y: -195.7778} + m_SizeDelta: {x: 294.493, y: 294.7475} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8102038447184520294 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5213494278434393612} + m_CullTransparentMesh: 1 +--- !u!114 &2654889776664175948 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5213494278434393612} + 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.6509434, g: 0.6509434, b: 0.6509434, 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: 3286163911610860551, guid: 899963cf0e2bdb447a6ffc59bf5dadeb, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8515080748960116964 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5213494278434393612} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: feb227be5c204aaea27e09f754dc05b8, type: 3} + m_Name: + m_EditorClassIdentifier: + background: {fileID: 2654889776664175948} + texture: {fileID: 6229559291274434678} +--- !u!1 &5539475195012584623 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8344396971405683991} + - component: {fileID: 904129494461256878} + - component: {fileID: 4396413846479741499} + m_Layer: 5 + m_Name: MainBuff + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8344396971405683991 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5539475195012584623} + 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: 7976316768756033267} + - {fileID: 28559091654160869} + m_Father: {fileID: 6854597925211758154} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 261.91064, y: 48.86328} + m_SizeDelta: {x: 62.4213, y: 43.8996} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &904129494461256878 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5539475195012584623} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 7 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &4396413846479741499 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5539475195012584623} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8f6f033d6fe84e769e101fb355ef3ffa, type: 3} + m_Name: + m_EditorClassIdentifier: + prefab: {fileID: 8174970956233947585, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + container: {fileID: 8344396971405683991} +--- !u!1 &5540892828455555690 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3666128768720539488} + - component: {fileID: 1533684214941721707} + - component: {fileID: 6542543098575149822} + - component: {fileID: 1599915248977899040} + m_Layer: 5 + m_Name: otherMode + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3666128768720539488 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5540892828455555690} + 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: 3257700422168178841} + m_Father: {fileID: 6854597925211758154} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: -161.8, y: 98.48938} + m_SizeDelta: {x: 144, y: 144} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1533684214941721707 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5540892828455555690} + m_CullTransparentMesh: 1 +--- !u!114 &6542543098575149822 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5540892828455555690} + 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: 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: 3286163911610860551, guid: 54c0e08acbe0ac9468618f599293ce2c, 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!114 &1599915248977899040 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5540892828455555690} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2d81179f82c542edb275daabff5bfe12, type: 3} + m_Name: + m_EditorClassIdentifier: + icon: {fileID: 9068058227405772648} +--- !u!1 &5835360848866253492 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5391678221907767131} + - component: {fileID: 4799375883354131629} + - component: {fileID: 6652114141505592631} + m_Layer: 5 + m_Name: bk + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5391678221907767131 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5835360848866253492} + 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: 3510767560788507364} + 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4799375883354131629 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5835360848866253492} + m_CullTransparentMesh: 1 +--- !u!114 &6652114141505592631 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5835360848866253492} + 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: 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: 3286163911610860551, guid: 9e8e5b8f16df1044bb4279fad7eec71d, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 1 + m_FillAmount: 0.604 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &6238494282169321395 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6854597925211758154} + - component: {fileID: 2310933836468036154} + - component: {fileID: 5369538820221893135} + m_Layer: 5 + m_Name: PlayerUI + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6854597925211758154 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6238494282169321395} + 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: 3510767560788507364} + - {fileID: 3012941975945932484} + - {fileID: 2309820620463357207} + - {fileID: 3107823987010588249} + - {fileID: 8455489799410687461} + - {fileID: 8344396971405683991} + - {fileID: 812988716243962043} + - {fileID: 3666128768720539488} + - {fileID: 7307723032965507088} + m_Father: {fileID: 0} + 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2310933836468036154 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6238494282169321395} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2fcb0352f5bd43a49b164e24a38447e3, type: 3} + m_Name: + m_EditorClassIdentifier: + focusedEntityHP: {fileID: 6007706203217853475} + lastEntityHP: {fileID: 4645914308153910391} + BaseBuildingHP: {fileID: 7219422850447277249} + miniMap: {fileID: 8515080748960116964} + equipmentUI: {fileID: 6893096279656461134} + coinCountUI: {fileID: 3001554999782626958} + focuseEntityBuffIconList: {fileID: 4396413846479741499} + lastEntityBuffIconList: {fileID: 5398216269669110382} + attackMode: {fileID: 1599915248977899040} +--- !u!222 &5369538820221893135 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6238494282169321395} + m_CullTransparentMesh: 1 +--- !u!1 &7142702634196615974 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3688435653647021601} + - component: {fileID: 5536771534857923247} + - component: {fileID: 8499818320565992987} + m_Layer: 5 + m_Name: bk + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3688435653647021601 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7142702634196615974} + 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: 3012941975945932484} + 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5536771534857923247 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7142702634196615974} + m_CullTransparentMesh: 1 +--- !u!114 &8499818320565992987 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7142702634196615974} + 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: 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: 3286163911610860551, guid: 720f4776d5fb7b64f8ed70520112d072, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 1 + m_FillAmount: 0.604 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &7629887912633900194 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2120082199252473244} + - component: {fileID: 8285151452666836392} + - component: {fileID: 236924741681570380} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2120082199252473244 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7629887912633900194} + 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: 2309820620463357207} + 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8285151452666836392 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7629887912633900194} + m_CullTransparentMesh: 1 +--- !u!114 &236924741681570380 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7629887912633900194} + 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, 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: 3286163911610860551, guid: 5df876ecff4b36840bae2a82c52ddcda, type: 3} + m_Type: 3 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 0 + m_FillAmount: 0.547 + m_FillClockwise: 1 + m_FillOrigin: 1 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &7809972487845273751 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2526849323030255045} + - component: {fileID: 3781170495778600776} + - component: {fileID: 7370689876371491797} + m_Layer: 5 + m_Name: bk + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2526849323030255045 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7809972487845273751} + 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: 2309820620463357207} + 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3781170495778600776 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7809972487845273751} + m_CullTransparentMesh: 1 +--- !u!114 &7370689876371491797 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7809972487845273751} + 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: 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: 3286163911610860551, guid: eb5a094463dad0b468605645310d036e, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 1 + m_FillAmount: 0.604 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &8013540716555341949 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5822942110769015762} + - component: {fileID: 6736835020144972523} + - component: {fileID: 5131553903243935833} + - component: {fileID: 1230296372435225739} + m_Layer: 5 + m_Name: mask + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5822942110769015762 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8013540716555341949} + 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: 8345698442372626977} + m_Father: {fileID: 7307723032965507088} + 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: -14, y: -13.999996} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &6736835020144972523 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8013540716555341949} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 1 +--- !u!222 &5131553903243935833 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8013540716555341949} + m_CullTransparentMesh: 1 +--- !u!114 &1230296372435225739 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8013540716555341949} + 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!1 &8439095751617227612 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 812988716243962043} + - component: {fileID: 1052885666887413419} + - component: {fileID: 5398216269669110382} + m_Layer: 5 + m_Name: otherBuff + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &812988716243962043 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8439095751617227612} + 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: 6854597925211758154} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: -958.37, y: 48.86328} + m_SizeDelta: {x: 1461.9, y: 43.8996} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1052885666887413419 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8439095751617227612} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 2 + m_Spacing: 7 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 1 +--- !u!114 &5398216269669110382 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8439095751617227612} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8f6f033d6fe84e769e101fb355ef3ffa, type: 3} + m_Name: + m_EditorClassIdentifier: + prefab: {fileID: 8174970956233947585, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + container: {fileID: 812988716243962043} +--- !u!1 &8818003810400384420 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3373533873061510645} + - component: {fileID: 716910025920226513} + - component: {fileID: 6992752570080746792} + - component: {fileID: 6052540224479397190} + m_Layer: 5 + m_Name: 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3373533873061510645 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8818003810400384420} + 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: 811683333010805889} + m_Father: {fileID: 8455489799410687461} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 146.97313, y: 157.07912} + m_SizeDelta: {x: 98.2785, y: 97.6994} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &716910025920226513 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8818003810400384420} + m_CullTransparentMesh: 1 +--- !u!114 &6992752570080746792 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8818003810400384420} + 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: 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: 3286163911610860551, guid: 49574900b62cf8f4481e400bb87d8497, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &6052540224479397190 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8818003810400384420} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7d651a3517184abcb4aff78629eb7946, type: 3} + m_Name: + m_EditorClassIdentifier: + icon: {fileID: 6606277210286060400} +--- !u!1 &8979240312020418643 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 13045194620452657} + - component: {fileID: 1638812063372950207} + - component: {fileID: 8674163204012859507} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &13045194620452657 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8979240312020418643} + 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: 3012941975945932484} + 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1638812063372950207 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8979240312020418643} + m_CullTransparentMesh: 1 +--- !u!114 &8674163204012859507 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8979240312020418643} + 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, 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: 3286163911610860551, guid: eba9d05bb9d9e4240ac43a4fbcb0eca5, type: 3} + m_Type: 3 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 1 + m_FillAmount: 0.576 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1001 &1754315717843201697 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 5559022008408632629} + m_Modifications: + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_SizeDelta.x + value: -30 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_SizeDelta.y + value: -30 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1665787281938857491, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_Name + value: UIAnimator + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} +--- !u!224 &673291665605467500 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + m_PrefabInstance: {fileID: 1754315717843201697} + m_PrefabAsset: {fileID: 0} +--- !u!114 &6464240636047932061 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 4750466675787535420, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + m_PrefabInstance: {fileID: 1754315717843201697} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c6f899d1c5ef450bb6f3e670fa55cffd, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &1892420429893494604 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 3373533873061510645} + m_Modifications: + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_SizeDelta.x + value: -30 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_SizeDelta.y + value: -30 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1665787281938857491, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_Name + value: UIAnimator + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} +--- !u!224 &811683333010805889 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + m_PrefabInstance: {fileID: 1892420429893494604} + m_PrefabAsset: {fileID: 0} +--- !u!114 &6606277210286060400 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 4750466675787535420, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + m_PrefabInstance: {fileID: 1892420429893494604} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c6f899d1c5ef450bb6f3e670fa55cffd, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &3182684482039648558 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 8344396971405683991} + m_Modifications: + - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_SizeDelta.x + value: 62.421 + objectReference: {fileID: 0} + - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_SizeDelta.y + value: 43.9 + objectReference: {fileID: 0} + - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6060365352283784422, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_Name + value: Image (1) + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 6060365352283784422, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + insertIndex: -1 + addedObject: {fileID: 1259251515951870331} + m_SourcePrefab: {fileID: 100100000, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} +--- !u!224 &28559091654160869 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + m_PrefabInstance: {fileID: 3182684482039648558} + m_PrefabAsset: {fileID: 0} +--- !u!114 &6292652751545812065 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8897095238084646223, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + m_PrefabInstance: {fileID: 3182684482039648558} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c6f899d1c5ef450bb6f3e670fa55cffd, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &8660866841254221256 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 6060365352283784422, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + m_PrefabInstance: {fileID: 3182684482039648558} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1259251515951870331 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8660866841254221256} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 17587b13f9d4467dbff77cf9762dc8fe, type: 3} + m_Name: + m_EditorClassIdentifier: + icon: {fileID: 6292652751545812065} +--- !u!1001 &3341358861155136950 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 3813003831376699416} + m_Modifications: + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_SizeDelta.x + value: -40 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_SizeDelta.y + value: -40 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1665787281938857491, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_Name + value: icon + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} +--- !u!224 &4566214359143532155 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + m_PrefabInstance: {fileID: 3341358861155136950} + m_PrefabAsset: {fileID: 0} +--- !u!114 &8049032507815158154 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 4750466675787535420, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + m_PrefabInstance: {fileID: 3341358861155136950} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c6f899d1c5ef450bb6f3e670fa55cffd, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &4338438326461776724 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 3666128768720539488} + m_Modifications: + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_SizeDelta.x + value: -40.00006 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_SizeDelta.y + value: -40 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_AnchoredPosition.x + value: -0.000030517578 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1665787281938857491, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + propertyPath: m_Name + value: UIAnimator + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} +--- !u!224 &3257700422168178841 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + m_PrefabInstance: {fileID: 4338438326461776724} + m_PrefabAsset: {fileID: 0} +--- !u!114 &9068058227405772648 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 4750466675787535420, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} + m_PrefabInstance: {fileID: 4338438326461776724} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c6f899d1c5ef450bb6f3e670fa55cffd, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &4827802916314777144 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 8344396971405683991} + m_Modifications: + - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_SizeDelta.x + value: 62.421 + objectReference: {fileID: 0} + - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_SizeDelta.y + value: 43.9 + objectReference: {fileID: 0} + - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6060365352283784422, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + propertyPath: m_Name + value: Image + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 6060365352283784422, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + insertIndex: -1 + addedObject: {fileID: 1465267262265823436} + m_SourcePrefab: {fileID: 100100000, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} +--- !u!1 &1649851290114343646 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 6060365352283784422, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + m_PrefabInstance: {fileID: 4827802916314777144} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1465267262265823436 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1649851290114343646} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 17587b13f9d4467dbff77cf9762dc8fe, type: 3} + m_Name: + m_EditorClassIdentifier: + icon: {fileID: 4145310391587787639} +--- !u!114 &4145310391587787639 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8897095238084646223, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + m_PrefabInstance: {fileID: 4827802916314777144} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c6f899d1c5ef450bb6f3e670fa55cffd, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &7976316768756033267 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} + m_PrefabInstance: {fileID: 4827802916314777144} + m_PrefabAsset: {fileID: 0} diff --git a/Client/Assets/Resources/Prefab/UI/PlayerUI.prefab.meta b/Client/Assets/Resources/Prefab/UI/PlayerUI.prefab.meta new file mode 100644 index 0000000..df20389 --- /dev/null +++ b/Client/Assets/Resources/Prefab/UI/PlayerUI.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7171041e903b69b45a30fa2cfffd4c63 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Resources/Prefab/UI/SelectCharacterUI.prefab b/Client/Assets/Resources/Prefab/UI/SelectCharacterUI.prefab index b2a7a37..ccdf393 100644 --- a/Client/Assets/Resources/Prefab/UI/SelectCharacterUI.prefab +++ b/Client/Assets/Resources/Prefab/UI/SelectCharacterUI.prefab @@ -189,6 +189,8 @@ MonoBehaviour: m_EditorClassIdentifier: characterDisplay: {fileID: 5867077105420553003} characterInformation: {fileID: 6194194370918234350} + enterButton: {fileID: 0} + buttonText: {fileID: 0} targetCharacterAnimationDisplaySize: 600 currentCharacter: 0 --- !u!1 &3095674811042944334 @@ -225,8 +227,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 0} - m_AnchoredPosition: {x: 0, y: 100} - m_SizeDelta: {x: 0, y: 200} + m_AnchoredPosition: {x: 0, y: 75} + m_SizeDelta: {x: 0, y: 150} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &8025278570561130583 CanvasRenderer: diff --git a/Client/Assets/Resources/Prefab/UI/SkillTreeNodeInformation.prefab b/Client/Assets/Resources/Prefab/UI/SkillTreeNodeInformation.prefab new file mode 100644 index 0000000..d15bf94 --- /dev/null +++ b/Client/Assets/Resources/Prefab/UI/SkillTreeNodeInformation.prefab @@ -0,0 +1,1115 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &38880274309663874 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8367256027419906967} + - component: {fileID: 3083985575681148429} + - component: {fileID: 2145600255563766932} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8367256027419906967 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 38880274309663874} + 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: 2812804690967820289} + m_Father: {fileID: 3792519619586712230} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 500, y: 800} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3083985575681148429 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 38880274309663874} + m_CullTransparentMesh: 1 +--- !u!114 &2145600255563766932 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 38880274309663874} + 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: 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: 21300000, guid: 39d48e9d22c35f5449005596df36b837, 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!1 &480849905314898354 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 97547006795826649} + - component: {fileID: 336684090124078067} + - component: {fileID: 4369408400973660810} + m_Layer: 5 + m_Name: UpdateText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &97547006795826649 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 480849905314898354} + 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: 3792519619586712230} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -53.5, y: 169.2} + m_SizeDelta: {x: 338.1218, y: 96.6161} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &336684090124078067 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 480849905314898354} + m_CullTransparentMesh: 1 +--- !u!114 &4369408400973660810 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 480849905314898354} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, 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_text: "\u7CFB\u7EDF\u5347\u7EA7" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 317edb274e9c5144a9916937bdbf7716, type: 2} + m_sharedMaterial: {fileID: -1361428157011412921, guid: 317edb274e9c5144a9916937bdbf7716, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 80 + m_fontSizeBase: 80 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &526373288610340414 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3518490253711266940} + - component: {fileID: 105496742324243652} + - component: {fileID: 8860291704919637706} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3518490253711266940 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 526373288610340414} + 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: 3792519619586712230} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 7.277298, y: 296.8} + m_SizeDelta: {x: 459.68, y: 82.4759} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &105496742324243652 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 526373288610340414} + m_CullTransparentMesh: 1 +--- !u!114 &8860291704919637706 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 526373288610340414} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, 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_text: "\u6280\u80FD\u540D\u79F0" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 317edb274e9c5144a9916937bdbf7716, type: 2} + m_sharedMaterial: {fileID: -1361428157011412921, guid: 317edb274e9c5144a9916937bdbf7716, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 80 + m_fontSizeBase: 80 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 4 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &1738869943115738675 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3792519619586712230} + - component: {fileID: 879993266818699125} + m_Layer: 5 + m_Name: SkillTreeNodeInformation + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3792519619586712230 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1738869943115738675} + 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: 8367256027419906967} + - {fileID: 4630279963349680824} + - {fileID: 97547006795826649} + - {fileID: 3518490253711266940} + - {fileID: 2018287302024953279} + - {fileID: 2644393995468984770} + m_Father: {fileID: 0} + 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &879993266818699125 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1738869943115738675} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9440a85a9d4d43aab42d798468760e13, type: 3} + m_Name: + m_EditorClassIdentifier: + exclusive: 0 + needPause: 1 + isInputOccupied: 0 + actionButton: 0 + label: {fileID: 8860291704919637706} + description: {fileID: 7282889945968332553} + coin: {fileID: 3792092098794170754} + purchaseButton: {fileID: 5279596676285855892} + currentLink: {fileID: 0} +--- !u!1 &3005909410604965872 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2018287302024953279} + - component: {fileID: 851776536448181226} + - component: {fileID: 3792092098794170754} + m_Layer: 5 + m_Name: Coin + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2018287302024953279 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3005909410604965872} + 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: 3792519619586712230} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -241.7} + m_SizeDelta: {x: 200, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &851776536448181226 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3005909410604965872} + m_CullTransparentMesh: 1 +--- !u!114 &3792092098794170754 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3005909410604965872} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, 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_text: 99/66 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 317edb274e9c5144a9916937bdbf7716, type: 2} + m_sharedMaterial: {fileID: -1361428157011412921, guid: 317edb274e9c5144a9916937bdbf7716, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &5222961781672792125 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4630279963349680824} + - component: {fileID: 4611620954864940713} + - component: {fileID: 7282889945968332553} + m_Layer: 5 + m_Name: Description + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4630279963349680824 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5222961781672792125} + 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: 3792519619586712230} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0.7666, y: -12.934} + m_SizeDelta: {x: 390.0521, y: 154.6315} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4611620954864940713 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5222961781672792125} + m_CullTransparentMesh: 1 +--- !u!114 &7282889945968332553 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5222961781672792125} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, 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_text: "\u4ECB\u7ECD\u4ECB\u7ECD\u4ECB\u7ECD\u4ECB\u7ECD\u4ECB\u7ECD\u4ECB\u7ECD\u4ECB\u7ECD\u4ECB\u7ECD\u4ECB\u7ECD\u4ECB\u7ECD\u4ECB\u7ECD\u4ECB\u7ECD\u4ECB\u7ECD\u4ECB\u7ECD\u4ECB\u7ECD\u4ECB\u7ECD\u4ECB\u7ECD\u4ECB\u7ECD\u4ECB\u7ECD\u4ECB\u7ECD\u4ECB\u7ECD\u4ECB\u7ECD\u4ECB\u7ECD\u4ECB\u7ECD\u4ECB\u7ECD\u4ECB\u7ECD\u4ECB\u7ECD\u4ECB\u7ECD\u4ECB\u7ECD\u4ECB\u7ECD\u4ECB\u7ECD\u4ECB\u7ECD\u4ECB\u7ECD\u4ECB\u7ECD\u4ECB\u7ECD\u4ECB\u7ECD\u4ECB\u7ECD\u4ECB\u7ECD\u4ECB\u7ECD\u4ECB\u7ECD\u4ECB\u7ECD\u4ECB\u7ECD" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 317edb274e9c5144a9916937bdbf7716, type: 2} + m_sharedMaterial: {fileID: -1361428157011412921, guid: 317edb274e9c5144a9916937bdbf7716, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &5533149954132886467 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7674082471111993909} + - component: {fileID: 3671220856603313965} + - component: {fileID: 2141860019065357526} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7674082471111993909 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5533149954132886467} + 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: 2812804690967820289} + 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3671220856603313965 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5533149954132886467} + m_CullTransparentMesh: 1 +--- !u!114 &2141860019065357526 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5533149954132886467} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, 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_text: X + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &5931144009474353275 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2812804690967820289} + - component: {fileID: 328941696536405539} + - component: {fileID: 147743338787042296} + - component: {fileID: 3157042557309818589} + m_Layer: 5 + m_Name: Close + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2812804690967820289 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5931144009474353275} + 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: 7674082471111993909} + m_Father: {fileID: 8367256027419906967} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 11, y: 11} + m_SizeDelta: {x: 30, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &328941696536405539 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5931144009474353275} + m_CullTransparentMesh: 1 +--- !u!114 &147743338787042296 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5931144009474353275} + 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: 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: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + 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!114 &3157042557309818589 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5931144009474353275} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 147743338787042296} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 879993266818699125} + m_TargetAssemblyTypeName: UI.SkillTreeNodeInformationUI, Assembly-CSharp + m_MethodName: OnHide + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1001 &3730213247200502765 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 3792519619586712230} + m_Modifications: + - target: {fileID: 190104900697248908, guid: f0afd08be12de0d43af753af4f618da4, type: 3} + propertyPath: m_Name + value: EnterButton + objectReference: {fileID: 0} + - target: {fileID: 1690722858018107951, guid: f0afd08be12de0d43af753af4f618da4, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1690722858018107951, guid: f0afd08be12de0d43af753af4f618da4, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1690722858018107951, guid: f0afd08be12de0d43af753af4f618da4, type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1690722858018107951, guid: f0afd08be12de0d43af753af4f618da4, type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1690722858018107951, guid: f0afd08be12de0d43af753af4f618da4, type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1690722858018107951, guid: f0afd08be12de0d43af753af4f618da4, type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1690722858018107951, guid: f0afd08be12de0d43af753af4f618da4, type: 3} + propertyPath: m_SizeDelta.x + value: 250 + objectReference: {fileID: 0} + - target: {fileID: 1690722858018107951, guid: f0afd08be12de0d43af753af4f618da4, type: 3} + propertyPath: m_SizeDelta.y + value: 55 + objectReference: {fileID: 0} + - target: {fileID: 1690722858018107951, guid: f0afd08be12de0d43af753af4f618da4, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1690722858018107951, guid: f0afd08be12de0d43af753af4f618da4, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1690722858018107951, guid: f0afd08be12de0d43af753af4f618da4, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1690722858018107951, guid: f0afd08be12de0d43af753af4f618da4, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1690722858018107951, guid: f0afd08be12de0d43af753af4f618da4, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 1690722858018107951, guid: f0afd08be12de0d43af753af4f618da4, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 1690722858018107951, guid: f0afd08be12de0d43af753af4f618da4, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 1690722858018107951, guid: f0afd08be12de0d43af753af4f618da4, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1690722858018107951, guid: f0afd08be12de0d43af753af4f618da4, type: 3} + propertyPath: m_AnchoredPosition.y + value: -300 + objectReference: {fileID: 0} + - target: {fileID: 1690722858018107951, guid: f0afd08be12de0d43af753af4f618da4, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1690722858018107951, guid: f0afd08be12de0d43af753af4f618da4, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1690722858018107951, guid: f0afd08be12de0d43af753af4f618da4, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5723833987058492246, guid: f0afd08be12de0d43af753af4f618da4, type: 3} + propertyPath: m_text + value: "\u7CFB\u7EDF\u5347\u7EA7" + objectReference: {fileID: 0} + - target: {fileID: 5723833987058492246, guid: f0afd08be12de0d43af753af4f618da4, type: 3} + propertyPath: m_fontSize + value: 25 + objectReference: {fileID: 0} + - target: {fileID: 5723833987058492246, guid: f0afd08be12de0d43af753af4f618da4, type: 3} + propertyPath: m_fontSizeBase + value: 25 + objectReference: {fileID: 0} + - target: {fileID: 7794534526379226234, guid: f0afd08be12de0d43af753af4f618da4, type: 3} + propertyPath: m_Type + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7794534526379226234, guid: f0afd08be12de0d43af753af4f618da4, type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: a702997c0e888204fbdc2778256994fb, type: 3} + - target: {fileID: 8827200521422920569, guid: f0afd08be12de0d43af753af4f618da4, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8827200521422920569, guid: f0afd08be12de0d43af753af4f618da4, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8827200521422920569, guid: f0afd08be12de0d43af753af4f618da4, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 879993266818699125} + - target: {fileID: 8827200521422920569, guid: f0afd08be12de0d43af753af4f618da4, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8827200521422920569, guid: f0afd08be12de0d43af753af4f618da4, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: Purchase + objectReference: {fileID: 0} + - target: {fileID: 8827200521422920569, guid: f0afd08be12de0d43af753af4f618da4, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: UI.SkillTreeNodeInformationUI, Assembly-CSharp + objectReference: {fileID: 0} + - target: {fileID: 8827200521422920569, guid: f0afd08be12de0d43af753af4f618da4, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: f0afd08be12de0d43af753af4f618da4, type: 3} +--- !u!224 &2644393995468984770 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 1690722858018107951, guid: f0afd08be12de0d43af753af4f618da4, type: 3} + m_PrefabInstance: {fileID: 3730213247200502765} + m_PrefabAsset: {fileID: 0} +--- !u!114 &5279596676285855892 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8827200521422920569, guid: f0afd08be12de0d43af753af4f618da4, type: 3} + m_PrefabInstance: {fileID: 3730213247200502765} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Client/Assets/Resources/Prefab/UI/SkillTreeNodeInformation.prefab.meta b/Client/Assets/Resources/Prefab/UI/SkillTreeNodeInformation.prefab.meta new file mode 100644 index 0000000..4e0f85b --- /dev/null +++ b/Client/Assets/Resources/Prefab/UI/SkillTreeNodeInformation.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4e3d3b00a1db1b6478ca21497acb3cd0 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Resources/Prefab/UI/SkillTreeUI.prefab b/Client/Assets/Resources/Prefab/UI/SkillTreeUI.prefab new file mode 100644 index 0000000..cb9c565 --- /dev/null +++ b/Client/Assets/Resources/Prefab/UI/SkillTreeUI.prefab @@ -0,0 +1,410 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1754248699606707494 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6811976160091817845} + - component: {fileID: 3642922786147405587} + - component: {fileID: 171221920490895931} + - component: {fileID: 3767181765897433303} + m_Layer: 5 + m_Name: Right + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6811976160091817845 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1754248699606707494} + 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: 5714645889473767786} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -80, y: 0} + m_SizeDelta: {x: 60, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3642922786147405587 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1754248699606707494} + m_CullTransparentMesh: 1 +--- !u!114 &171221920490895931 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1754248699606707494} + 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: 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: 3286163911610860551, guid: f88afd19677c2f74698700043d623e0f, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 1 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3767181765897433303 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1754248699606707494} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 171221920490895931} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &1968976304911492552 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5714645889473767786} + - component: {fileID: 3586859390426161417} + m_Layer: 5 + m_Name: SkillTreeUI + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5714645889473767786 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1968976304911492552} + 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: 5162223504948150137} + - {fileID: 2296846822302302442} + - {fileID: 9047146998928122889} + - {fileID: 6811976160091817845} + m_Father: {fileID: 0} + 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &3586859390426161417 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1968976304911492552} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7ad8ef90e9e043f09c09d806ff37a4f6, type: 3} + m_Name: + m_EditorClassIdentifier: + exclusive: 1 + needPause: 1 + isInputOccupied: 1 + actionButton: 0 + skillTreePageUIPrefab: {fileID: 4750874098510840964, guid: 432727857990a14468ef084134b64047, type: 3} + skillTreePageUIParent: {fileID: 2296846822302302442} +--- !u!1 &2835625197820564668 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2296846822302302442} + m_Layer: 5 + m_Name: SkillTreePage + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2296846822302302442 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2835625197820564668} + 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: 5714645889473767786} + 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &3050270471963636044 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5162223504948150137} + - component: {fileID: 6387955074440122882} + - component: {fileID: 5000222387074680038} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5162223504948150137 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3050270471963636044} + 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: 5714645889473767786} + 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6387955074440122882 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3050270471963636044} + m_CullTransparentMesh: 1 +--- !u!114 &5000222387074680038 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3050270471963636044} + 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.5566038, g: 0.5566038, b: 0.5566038, a: 0.56078434} + 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!1 &8371303533322070584 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9047146998928122889} + - component: {fileID: 8045019891816198801} + - component: {fileID: 890291038903366933} + - component: {fileID: 7087801516874971213} + m_Layer: 5 + m_Name: Left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9047146998928122889 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8371303533322070584} + 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: 5714645889473767786} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 80, y: 0} + m_SizeDelta: {x: 60, y: 150} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8045019891816198801 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8371303533322070584} + m_CullTransparentMesh: 1 +--- !u!114 &890291038903366933 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8371303533322070584} + 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: 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: 3286163911610860551, guid: 1074bd6e06e279a4c85a2ba70d8c6340, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 1 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &7087801516874971213 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8371303533322070584} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 890291038903366933} + m_OnClick: + m_PersistentCalls: + m_Calls: [] diff --git a/Client/Assets/Resources/Prefab/UI/SkillTreeUI.prefab.meta b/Client/Assets/Resources/Prefab/UI/SkillTreeUI.prefab.meta new file mode 100644 index 0000000..57565de --- /dev/null +++ b/Client/Assets/Resources/Prefab/UI/SkillTreeUI.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 130107da2317f0f419dde5d8432b5a2e +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Resources/Prefab/UI/StartPlayUI.prefab b/Client/Assets/Resources/Prefab/UI/StartPlayUI.prefab new file mode 100644 index 0000000..b0e55c9 --- /dev/null +++ b/Client/Assets/Resources/Prefab/UI/StartPlayUI.prefab @@ -0,0 +1,1080 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &213369424428095864 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6488610418330387047} + - component: {fileID: 3201231533709442930} + - component: {fileID: 4744144882249665669} + - component: {fileID: 4732006447843388835} + m_Layer: 5 + m_Name: StartButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6488610418330387047 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 213369424428095864} + 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: 4057263569013871655} + m_Father: {fileID: 1368523874796872442} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 200} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3201231533709442930 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 213369424428095864} + m_CullTransparentMesh: 1 +--- !u!114 &4744144882249665669 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 213369424428095864} + 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: 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: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + 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!114 &4732006447843388835 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 213369424428095864} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 4744144882249665669} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 825249785857306304} + m_TargetAssemblyTypeName: UI.StartPlayUI, Assembly-CSharp + m_MethodName: OnStartGame + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &4243463763020346489 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8141267108803889005} + - component: {fileID: 4425611473604274119} + - component: {fileID: 6520868900833434426} + - component: {fileID: 3990221298933459285} + m_Layer: 5 + m_Name: Left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8141267108803889005 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4243463763020346489} + 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: 1218324578487231030} + m_Father: {fileID: 1368523874796872442} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -400, y: 0} + m_SizeDelta: {x: 50, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4425611473604274119 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4243463763020346489} + m_CullTransparentMesh: 1 +--- !u!114 &6520868900833434426 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4243463763020346489} + 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: 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: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + 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!114 &3990221298933459285 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4243463763020346489} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 6520868900833434426} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 825249785857306304} + m_TargetAssemblyTypeName: UI.StartPlayUI, Assembly-CSharp + m_MethodName: OnLeft + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &5393806505871662413 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1368523874796872442} + - component: {fileID: 44611936419089082} + - component: {fileID: 2506794315442578932} + - component: {fileID: 825249785857306304} + m_Layer: 5 + m_Name: StartPlayUI + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1368523874796872442 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5393806505871662413} + 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: 620210636139135747} + - {fileID: 6488610418330387047} + - {fileID: 6568729546168822083} + - {fileID: 8141267108803889005} + - {fileID: 221604406401773589} + m_Father: {fileID: 0} + 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &44611936419089082 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5393806505871662413} + m_CullTransparentMesh: 1 +--- !u!114 &2506794315442578932 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5393806505871662413} + 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.392} + 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: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + 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!114 &825249785857306304 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5393806505871662413} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 39c9e270bf6946c0a9fc963ce048ee32, type: 3} + m_Name: + m_EditorClassIdentifier: + exclusive: 1 + needPause: 1 + isInputOccupied: 1 + actionButton: 0 + iconList: {fileID: 6568729546168822083} + mapViewUIPrefab: {fileID: 9097842885905143618, guid: c0bdf3b0701d89c4f88640cfb9156adb, type: 3} + mapViewUIList: [] +--- !u!1 &7048767550837404800 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6568729546168822083} + m_Layer: 5 + m_Name: SelectMap + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6568729546168822083 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7048767550837404800} + 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: 1368523874796872442} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &8120744549249346012 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 620210636139135747} + - component: {fileID: 8743841163912296264} + - component: {fileID: 6977481316692266824} + m_Layer: 5 + m_Name: MidText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &620210636139135747 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8120744549249346012} + 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: 1368523874796872442} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: -100} + m_SizeDelta: {x: 200, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8743841163912296264 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8120744549249346012} + m_CullTransparentMesh: 1 +--- !u!114 &6977481316692266824 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8120744549249346012} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, 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_text: "\u786E\u8BA4\u5F00\u59CB\u5417" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 317edb274e9c5144a9916937bdbf7716, type: 2} + m_sharedMaterial: {fileID: -1361428157011412921, guid: 317edb274e9c5144a9916937bdbf7716, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &8191214608768684302 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 221604406401773589} + - component: {fileID: 998567222029976205} + - component: {fileID: 1195842761750235961} + - component: {fileID: 4336445668417682750} + m_Layer: 5 + m_Name: Right + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &221604406401773589 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8191214608768684302} + 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: 1441254832073915089} + m_Father: {fileID: 1368523874796872442} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 400, y: 0} + m_SizeDelta: {x: 50, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &998567222029976205 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8191214608768684302} + m_CullTransparentMesh: 1 +--- !u!114 &1195842761750235961 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8191214608768684302} + 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: 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: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + 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!114 &4336445668417682750 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8191214608768684302} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1195842761750235961} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 825249785857306304} + m_TargetAssemblyTypeName: UI.StartPlayUI, Assembly-CSharp + m_MethodName: OnRight + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &8288532434342472724 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4057263569013871655} + - component: {fileID: 8842175702338194810} + - component: {fileID: 6461776128991491481} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4057263569013871655 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8288532434342472724} + 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: 6488610418330387047} + 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8842175702338194810 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8288532434342472724} + m_CullTransparentMesh: 1 +--- !u!114 &6461776128991491481 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8288532434342472724} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, 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_text: "\u8FDB\u5165\u5730\u56FE" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 317edb274e9c5144a9916937bdbf7716, type: 2} + m_sharedMaterial: {fileID: -1361428157011412921, guid: 317edb274e9c5144a9916937bdbf7716, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &8525136908544037729 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1218324578487231030} + - component: {fileID: 5003169619556620885} + - component: {fileID: 456366453303135857} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1218324578487231030 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8525136908544037729} + 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: 8141267108803889005} + 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5003169619556620885 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8525136908544037729} + m_CullTransparentMesh: 1 +--- !u!114 &456366453303135857 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8525136908544037729} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, 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_text: < + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 44.75 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &8574572659425250306 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1441254832073915089} + - component: {fileID: 3955983035282899678} + - component: {fileID: 8501087736326160413} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1441254832073915089 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8574572659425250306} + 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: 221604406401773589} + 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3955983035282899678 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8574572659425250306} + m_CullTransparentMesh: 1 +--- !u!114 &8501087736326160413 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8574572659425250306} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, 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_text: '>' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 44.75 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} diff --git a/Client/Assets/Resources/Prefab/UI/StartPlayUI.prefab.meta b/Client/Assets/Resources/Prefab/UI/StartPlayUI.prefab.meta new file mode 100644 index 0000000..165f324 --- /dev/null +++ b/Client/Assets/Resources/Prefab/UI/StartPlayUI.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 78f43d1b1e583e0478049e4a464537c1 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Resources/Texture/Image/Logo_zh.svg b/Client/Assets/Resources/Texture/Image/Logo_zh.svg new file mode 100644 index 0000000..5dc5d38 --- /dev/null +++ b/Client/Assets/Resources/Texture/Image/Logo_zh.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Client/Assets/Resources/Texture/Image/Logo_zh.svg.meta b/Client/Assets/Resources/Texture/Image/Logo_zh.svg.meta new file mode 100644 index 0000000..f06203a --- /dev/null +++ b/Client/Assets/Resources/Texture/Image/Logo_zh.svg.meta @@ -0,0 +1,55 @@ +fileFormatVersion: 2 +guid: 0533345fd458aa2408357ca30b97646f +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: 71cfdc7d46fe67244b323e52da0ec8f0 + PhysicsOutlines: [] diff --git a/Client/Assets/Resources/Texture/UI/技能树页UI-ver.2/技能弹窗.png.meta b/Client/Assets/Resources/Texture/UI/技能树页UI-ver.2/技能弹窗.png.meta index 00207ba..6954da6 100644 --- a/Client/Assets/Resources/Texture/UI/技能树页UI-ver.2/技能弹窗.png.meta +++ b/Client/Assets/Resources/Texture/UI/技能树页UI-ver.2/技能弹窗.png.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 13 mipmaps: mipMapMode: 0 - enableMipMap: 1 + enableMipMap: 0 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -37,13 +37,13 @@ TextureImporter: filterMode: 1 aniso: 1 mipBias: 0 - wrapU: 0 - wrapV: 0 + wrapU: 1 + wrapV: 1 wrapW: 0 - nPOTScale: 1 + nPOTScale: 0 lightmap: 0 compressionQuality: 50 - spriteMode: 0 + spriteMode: 1 spriteExtrude: 1 spriteMeshType: 1 alignment: 0 @@ -52,9 +52,9 @@ TextureImporter: spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 - alphaIsTransparency: 0 + alphaIsTransparency: 1 spriteTessellationDetail: -1 - textureType: 0 + textureType: 8 textureShape: 1 singleChannelComponent: 0 flipbookRows: 1 @@ -100,7 +100,7 @@ TextureImporter: customData: physicsShape: [] bones: [] - spriteID: + spriteID: 5e97eb03825dee720800000000000000 internalID: 0 vertices: [] indices: diff --git a/Client/Assets/Resources/Tile/AirWall.asset b/Client/Assets/Resources/Tile/AirWall.asset new file mode 100644 index 0000000..f12ee21 --- /dev/null +++ b/Client/Assets/Resources/Tile/AirWall.asset @@ -0,0 +1,18 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9d1514134bc4fbd41bb739b1b9a49231, type: 3} + m_Name: AirWall + m_EditorClassIdentifier: + m_DefaultSprite: {fileID: 0} + m_DefaultGameObject: {fileID: 0} + m_DefaultColliderType: 2 + m_TilingRules: [] diff --git a/Client/Assets/Resources/Tile/AirWall.asset.meta b/Client/Assets/Resources/Tile/AirWall.asset.meta new file mode 100644 index 0000000..1698074 --- /dev/null +++ b/Client/Assets/Resources/Tile/AirWall.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 65059a118463f144d8a6066609d07f28 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Resources/Tile/New Tile Palette.prefab b/Client/Assets/Resources/Tile/New Tile Palette.prefab index 6491c8d..9ca181b 100644 --- a/Client/Assets/Resources/Tile/New Tile Palette.prefab +++ b/Client/Assets/Resources/Tile/New Tile Palette.prefab @@ -49,16 +49,16 @@ Tilemap: m_TileSpriteIndex: 0 m_TileMatrixIndex: 0 m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 + m_TileObjectToInstantiateIndex: 0 dummyAlignment: 0 - m_AllTileFlags: 1073741826 + m_AllTileFlags: 2 m_AnimatedTiles: {} m_TileAssetArray: - m_RefCount: 1 m_Data: {fileID: 11400000, guid: 1fdd962337e34294a9a7c3bab542f12e, type: 2} m_TileSpriteArray: - m_RefCount: 1 - m_Data: {fileID: 249299976, guid: 7e16ec2f8e663b44ba7363cd9f10d30d, type: 3} + m_Data: {fileID: 1204137521, guid: 7e16ec2f8e663b44ba7363cd9f10d30d, type: 3} m_TileMatrixArray: - m_RefCount: 1 m_Data: @@ -81,7 +81,9 @@ Tilemap: m_TileColorArray: - m_RefCount: 1 m_Data: {r: 1, g: 1, b: 1, a: 1} - m_TileObjectToInstantiateArray: [] + m_TileObjectToInstantiateArray: + - m_RefCount: 1 + m_Data: {fileID: 5021031438404678310, guid: ea9af70ce0f4c8b4a9de58ac63074156, type: 3} m_AnimationFrameRate: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} m_Origin: {x: -15, y: 0, z: 0} diff --git a/Client/Assets/Scenes/Base.unity b/Client/Assets/Scenes/Base.unity index 1ed6c59..4a4141f 100644 --- a/Client/Assets/Scenes/Base.unity +++ b/Client/Assets/Scenes/Base.unity @@ -180,6 +180,11 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 691d3cd64575e3143b733a03afdca493, type: 3} +--- !u!224 &254765060 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 1368523874796872442, guid: 78f43d1b1e583e0478049e4a464537c1, type: 3} + m_PrefabInstance: {fileID: 6019071618445365586} + m_PrefabAsset: {fileID: 0} --- !u!1 &281873516 GameObject: m_ObjectHideFlags: 0 @@ -225,6 +230,81 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &450381679 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 450381680} + - component: {fileID: 450381682} + - component: {fileID: 450381681} + m_Layer: 5 + m_Name: bk + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &450381680 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 450381679} + 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: 1675549278} + 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &450381681 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 450381679} + 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: 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: 3286163911610860551, guid: d102f013c83999e4081e0c014bf2430a, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &450381682 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 450381679} + m_CullTransparentMesh: 1 --- !u!1001 &522998678 PrefabInstance: m_ObjectHideFlags: 0 @@ -472,10 +552,13 @@ RectTransform: m_LocalScale: {x: 0, y: 0, z: 0} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 1960581201} + - {fileID: 1675549278} - {fileID: 752917700} - {fileID: 2322698135784810634} - {fileID: 1859092201} + - {fileID: 254765060} + - {fileID: 6254947807506915540} + - {fileID: 829790812} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -488,6 +571,248 @@ RectTransform: m_CorrespondingSourceObject: {fileID: 3918422913167779582, guid: 68f02639b5cc7434d935bbdb9133343c, type: 3} m_PrefabInstance: {fileID: 5534351827257852299} m_PrefabAsset: {fileID: 0} +--- !u!1001 &829790811 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 564255135} + m_Modifications: + - target: {fileID: 1738869943115738675, guid: 4e3d3b00a1db1b6478ca21497acb3cd0, type: 3} + propertyPath: m_Name + value: SkillTreeNodeInformation + objectReference: {fileID: 0} + - target: {fileID: 1738869943115738675, guid: 4e3d3b00a1db1b6478ca21497acb3cd0, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3792519619586712230, guid: 4e3d3b00a1db1b6478ca21497acb3cd0, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3792519619586712230, guid: 4e3d3b00a1db1b6478ca21497acb3cd0, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3792519619586712230, guid: 4e3d3b00a1db1b6478ca21497acb3cd0, type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3792519619586712230, guid: 4e3d3b00a1db1b6478ca21497acb3cd0, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3792519619586712230, guid: 4e3d3b00a1db1b6478ca21497acb3cd0, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3792519619586712230, guid: 4e3d3b00a1db1b6478ca21497acb3cd0, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3792519619586712230, guid: 4e3d3b00a1db1b6478ca21497acb3cd0, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3792519619586712230, guid: 4e3d3b00a1db1b6478ca21497acb3cd0, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3792519619586712230, guid: 4e3d3b00a1db1b6478ca21497acb3cd0, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3792519619586712230, guid: 4e3d3b00a1db1b6478ca21497acb3cd0, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3792519619586712230, guid: 4e3d3b00a1db1b6478ca21497acb3cd0, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3792519619586712230, guid: 4e3d3b00a1db1b6478ca21497acb3cd0, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3792519619586712230, guid: 4e3d3b00a1db1b6478ca21497acb3cd0, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3792519619586712230, guid: 4e3d3b00a1db1b6478ca21497acb3cd0, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3792519619586712230, guid: 4e3d3b00a1db1b6478ca21497acb3cd0, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3792519619586712230, guid: 4e3d3b00a1db1b6478ca21497acb3cd0, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3792519619586712230, guid: 4e3d3b00a1db1b6478ca21497acb3cd0, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3792519619586712230, guid: 4e3d3b00a1db1b6478ca21497acb3cd0, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3792519619586712230, guid: 4e3d3b00a1db1b6478ca21497acb3cd0, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3792519619586712230, guid: 4e3d3b00a1db1b6478ca21497acb3cd0, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 4e3d3b00a1db1b6478ca21497acb3cd0, type: 3} +--- !u!224 &829790812 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 3792519619586712230, guid: 4e3d3b00a1db1b6478ca21497acb3cd0, type: 3} + m_PrefabInstance: {fileID: 829790811} + m_PrefabAsset: {fileID: 0} +--- !u!1 &860503466 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 860503467} + - component: {fileID: 860503469} + - component: {fileID: 860503468} + m_Layer: 5 + m_Name: text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &860503467 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 860503466} + 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: 1675549278} + 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: -29.999996, y: -10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &860503468 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 860503466} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, 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_text: 414444444425666666666666 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 317edb274e9c5144a9916937bdbf7716, type: 2} + m_sharedMaterial: {fileID: -1361428157011412921, guid: 317edb274e9c5144a9916937bdbf7716, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 4 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 1 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &860503469 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 860503466} + m_CullTransparentMesh: 1 --- !u!1 &1225578458 GameObject: m_ObjectHideFlags: 0 @@ -704,6 +1029,58 @@ MonoBehaviour: m_MipBias: 0 m_VarianceClampScale: 0.9 m_ContrastAdaptiveSharpening: 0 +--- !u!1 &1675549277 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1675549278} + - component: {fileID: 1675549279} + m_Layer: 5 + m_Name: CoinUI + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1675549278 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1675549277} + 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: 450381680} + - {fileID: 860503467} + m_Father: {fileID: 564255135} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -110.76074, y: -99.95923} + m_SizeDelta: {x: 147.5416, y: 44.6209} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1675549279 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1675549277} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 85cfb4a924a04c6e9f6f7801207dbee3, type: 3} + m_Name: + m_EditorClassIdentifier: + text: {fileID: 860503468} + coinCount: 0 --- !u!1001 &1693806871 PrefabInstance: m_ObjectHideFlags: 0 @@ -756,6 +1133,10 @@ PrefabInstance: propertyPath: m_Name value: BaseDimension objectReference: {fileID: 0} + - target: {fileID: 7309265216316706961, guid: 236c0c9e335f46743bf67841f64a9429, type: 3} + propertyPath: _dimensionId + value: BaseDimension + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -962,112 +1343,6 @@ RectTransform: m_CorrespondingSourceObject: {fileID: 1633840166558733415, guid: 97884168f61531647ba02870b2e2160f, type: 3} m_PrefabInstance: {fileID: 1859092200} m_PrefabAsset: {fileID: 0} ---- !u!1001 &1960581200 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 564255135} - m_Modifications: - - target: {fileID: 6079752034257435785, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_Name - value: SkillTree - objectReference: {fileID: 0} - - target: {fileID: 6079752034257435785, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_IsActive - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_AnchorMax.x - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_AnchorMax.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_SizeDelta.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} ---- !u!224 &1960581201 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - m_PrefabInstance: {fileID: 1960581200} - m_PrefabAsset: {fileID: 0} --- !u!224 &2322698135784810634 stripped RectTransform: m_CorrespondingSourceObject: {fileID: 2322698135530781468, guid: afbed11ea0c7e944aa36a71951b00ad6, type: 3} @@ -1085,6 +1360,10 @@ PrefabInstance: propertyPath: m_Name value: SelectCharacterUI objectReference: {fileID: 0} + - target: {fileID: 1766148491579678027, guid: 68f02639b5cc7434d935bbdb9133343c, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} - target: {fileID: 3918422913167779582, guid: 68f02639b5cc7434d935bbdb9133343c, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -1204,6 +1483,226 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1001 &6019071618445365586 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 564255135} + m_Modifications: + - target: {fileID: 1368523874796872442, guid: 78f43d1b1e583e0478049e4a464537c1, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1368523874796872442, guid: 78f43d1b1e583e0478049e4a464537c1, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1368523874796872442, guid: 78f43d1b1e583e0478049e4a464537c1, type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1368523874796872442, guid: 78f43d1b1e583e0478049e4a464537c1, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1368523874796872442, guid: 78f43d1b1e583e0478049e4a464537c1, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1368523874796872442, guid: 78f43d1b1e583e0478049e4a464537c1, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1368523874796872442, guid: 78f43d1b1e583e0478049e4a464537c1, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1368523874796872442, guid: 78f43d1b1e583e0478049e4a464537c1, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1368523874796872442, guid: 78f43d1b1e583e0478049e4a464537c1, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1368523874796872442, guid: 78f43d1b1e583e0478049e4a464537c1, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1368523874796872442, guid: 78f43d1b1e583e0478049e4a464537c1, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1368523874796872442, guid: 78f43d1b1e583e0478049e4a464537c1, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1368523874796872442, guid: 78f43d1b1e583e0478049e4a464537c1, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1368523874796872442, guid: 78f43d1b1e583e0478049e4a464537c1, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1368523874796872442, guid: 78f43d1b1e583e0478049e4a464537c1, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1368523874796872442, guid: 78f43d1b1e583e0478049e4a464537c1, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1368523874796872442, guid: 78f43d1b1e583e0478049e4a464537c1, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1368523874796872442, guid: 78f43d1b1e583e0478049e4a464537c1, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1368523874796872442, guid: 78f43d1b1e583e0478049e4a464537c1, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1368523874796872442, guid: 78f43d1b1e583e0478049e4a464537c1, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5393806505871662413, guid: 78f43d1b1e583e0478049e4a464537c1, type: 3} + propertyPath: m_Name + value: StartPlayUI + objectReference: {fileID: 0} + - target: {fileID: 5393806505871662413, guid: 78f43d1b1e583e0478049e4a464537c1, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 78f43d1b1e583e0478049e4a464537c1, type: 3} +--- !u!1001 &6254947807506915539 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 564255135} + m_Modifications: + - target: {fileID: 1968976304911492552, guid: 130107da2317f0f419dde5d8432b5a2e, type: 3} + propertyPath: m_Name + value: SkillTreeUI + objectReference: {fileID: 0} + - target: {fileID: 1968976304911492552, guid: 130107da2317f0f419dde5d8432b5a2e, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3586859390426161417, guid: 130107da2317f0f419dde5d8432b5a2e, type: 3} + propertyPath: skillTreePageUIParent + value: + objectReference: {fileID: 6254947807506915541} + - target: {fileID: 3586859390426161417, guid: 130107da2317f0f419dde5d8432b5a2e, type: 3} + propertyPath: skillTreePageUIPrefab + value: + objectReference: {fileID: 4750874098510840964, guid: 432727857990a14468ef084134b64047, type: 3} + - target: {fileID: 5714645889473767786, guid: 130107da2317f0f419dde5d8432b5a2e, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5714645889473767786, guid: 130107da2317f0f419dde5d8432b5a2e, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5714645889473767786, guid: 130107da2317f0f419dde5d8432b5a2e, type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5714645889473767786, guid: 130107da2317f0f419dde5d8432b5a2e, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5714645889473767786, guid: 130107da2317f0f419dde5d8432b5a2e, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5714645889473767786, guid: 130107da2317f0f419dde5d8432b5a2e, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5714645889473767786, guid: 130107da2317f0f419dde5d8432b5a2e, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5714645889473767786, guid: 130107da2317f0f419dde5d8432b5a2e, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5714645889473767786, guid: 130107da2317f0f419dde5d8432b5a2e, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5714645889473767786, guid: 130107da2317f0f419dde5d8432b5a2e, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5714645889473767786, guid: 130107da2317f0f419dde5d8432b5a2e, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5714645889473767786, guid: 130107da2317f0f419dde5d8432b5a2e, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5714645889473767786, guid: 130107da2317f0f419dde5d8432b5a2e, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5714645889473767786, guid: 130107da2317f0f419dde5d8432b5a2e, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5714645889473767786, guid: 130107da2317f0f419dde5d8432b5a2e, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5714645889473767786, guid: 130107da2317f0f419dde5d8432b5a2e, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5714645889473767786, guid: 130107da2317f0f419dde5d8432b5a2e, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5714645889473767786, guid: 130107da2317f0f419dde5d8432b5a2e, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5714645889473767786, guid: 130107da2317f0f419dde5d8432b5a2e, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5714645889473767786, guid: 130107da2317f0f419dde5d8432b5a2e, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 130107da2317f0f419dde5d8432b5a2e, type: 3} +--- !u!224 &6254947807506915540 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 5714645889473767786, guid: 130107da2317f0f419dde5d8432b5a2e, type: 3} + m_PrefabInstance: {fileID: 6254947807506915539} + m_PrefabAsset: {fileID: 0} +--- !u!224 &6254947807506915541 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2296846822302302442, guid: 130107da2317f0f419dde5d8432b5a2e, type: 3} + m_PrefabInstance: {fileID: 6254947807506915539} + m_PrefabAsset: {fileID: 0} --- !u!1660057539 &9223372036854775807 SceneRoots: m_ObjectHideFlags: 0 diff --git a/Client/Assets/Scenes/Game.unity b/Client/Assets/Scenes/Game.unity index 1f4e6e0..b5f4462 100644 --- a/Client/Assets/Scenes/Game.unity +++ b/Client/Assets/Scenes/Game.unity @@ -119,268 +119,11 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} ---- !u!1 &22205548 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22205549} - - component: {fileID: 22205551} - - component: {fileID: 22205550} - m_Layer: 5 - m_Name: Image - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22205549 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 22205548} - 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: 104508618} - 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: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &22205550 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 22205548} - 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, 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: 3286163911610860551, guid: 5df876ecff4b36840bae2a82c52ddcda, type: 3} - m_Type: 3 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 0 - m_FillAmount: 0.547 - m_FillClockwise: 1 - m_FillOrigin: 1 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &22205551 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 22205548} - m_CullTransparentMesh: 1 ---- !u!1 &104508617 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 104508618} - - component: {fileID: 104508620} - - component: {fileID: 104508619} - m_Layer: 5 - m_Name: BaseBuildingHPBar - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &104508618 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 104508617} - 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: 2141169989} - - {fileID: 22205549} - m_Father: {fileID: 2062509144} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 1, y: 1} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -230.19214, y: -53.597412} - m_SizeDelta: {x: 402.5165, y: 46.5413} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &104508619 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 104508617} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a5026699f3a94f029628af90ccd8fa8d, type: 3} - m_Name: - m_EditorClassIdentifier: - image: {fileID: 22205550} - 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.547 ---- !u!222 &104508620 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 104508617} - m_CullTransparentMesh: 1 --- !u!1 &111982856 stripped GameObject: m_CorrespondingSourceObject: {fileID: 3880453430626690749, guid: 691d3cd64575e3143b733a03afdca493, type: 3} m_PrefabInstance: {fileID: 3480988982354461550} m_PrefabAsset: {fileID: 0} ---- !u!1 &274529399 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 274529400} - - component: {fileID: 274529403} - - component: {fileID: 274529401} - m_Layer: 5 - m_Name: MainHPBar - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &274529400 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 274529399} - 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: 796630699} - - {fileID: 1350296600} - 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: 90.0318, y: 177.83636} - m_SizeDelta: {x: 123.0923, y: 301.846} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &274529401 -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: a5026699f3a94f029628af90ccd8fa8d, type: 3} - m_Name: - m_EditorClassIdentifier: - image: {fileID: 1350296601} - 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.63 ---- !u!222 &274529403 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 274529399} - m_CullTransparentMesh: 1 --- !u!1 &323725406 GameObject: m_ObjectHideFlags: 0 @@ -516,6 +259,10 @@ PrefabInstance: propertyPath: defaultOpen value: 0 objectReference: {fileID: 0} + - target: {fileID: 7309265216316706961, guid: 236c0c9e335f46743bf67841f64a9429, type: 3} + propertyPath: _dimensionId + value: InsideDimension + objectReference: {fileID: 0} - target: {fileID: 7309265216316706961, guid: 236c0c9e335f46743bf67841f64a9429, type: 3} propertyPath: mapGeneratorId value: @@ -525,508 +272,11 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 236c0c9e335f46743bf67841f64a9429, type: 3} ---- !u!1 &455427351 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 455427352} - - component: {fileID: 455427353} - m_Layer: 5 - m_Name: CoinUI - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &455427352 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 455427351} - 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: 896112297} - - {fileID: 854403366} - m_Father: {fileID: 2062509144} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 1, y: 1} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -110.76074, y: -99.95935} - m_SizeDelta: {x: 147.5416, y: 44.6209} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &455427353 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 455427351} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 85cfb4a924a04c6e9f6f7801207dbee3, type: 3} - m_Name: - m_EditorClassIdentifier: - text: {fileID: 854403367} ---- !u!1 &476295824 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 476295825} - - component: {fileID: 476295827} - - component: {fileID: 476295826} - m_Layer: 5 - m_Name: RawImage - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &476295825 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 476295824} - 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: 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: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &476295826 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 476295824} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - 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 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Texture: {fileID: 8400000, guid: 994b6fcab4b4f724c9576af3964c870f, type: 2} - m_UVRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 ---- !u!222 &476295827 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 476295824} - m_CullTransparentMesh: 1 ---- !u!224 &538945756 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - m_PrefabInstance: {fileID: 6105138323762792695} - m_PrefabAsset: {fileID: 0} ---- !u!1 &551559132 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 551559133} - - component: {fileID: 551559135} - - component: {fileID: 551559134} - m_Layer: 5 - m_Name: bk - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &551559133 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 551559132} - 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: 582436622} - 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: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &551559134 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 551559132} - 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: 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: 3286163911610860551, guid: 720f4776d5fb7b64f8ed70520112d072, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 1 - m_FillAmount: 0.604 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &551559135 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 551559132} - m_CullTransparentMesh: 1 ---- !u!1 &582436621 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 582436622} - - component: {fileID: 582436624} - - component: {fileID: 582436623} - m_Layer: 5 - m_Name: OtherHPBar - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &582436622 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 582436621} - 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: 551559133} - - {fileID: 923163877} - m_Father: {fileID: 2062509144} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 1, y: 0} - m_AnchorMax: {x: 1, y: 0} - m_AnchoredPosition: {x: -86.66797, y: 177.8364} - m_SizeDelta: {x: 112.5331, y: 302.7567} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &582436623 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 582436621} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a5026699f3a94f029628af90ccd8fa8d, type: 3} - m_Name: - m_EditorClassIdentifier: - image: {fileID: 923163878} - 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.576 ---- !u!222 &582436624 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 582436621} - m_CullTransparentMesh: 1 ---- !u!1 &689340256 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 689340257} - - component: {fileID: 689340259} - - component: {fileID: 689340258} - - component: {fileID: 689340260} - m_Layer: 5 - m_Name: use - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &689340257 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 689340256} - 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: 538945756} - m_Father: {fileID: 1942077021} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 74.80589, y: 71.574394} - m_SizeDelta: {x: 144.0769, y: 143.1488} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &689340258 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 689340256} - 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: 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: 3286163911610860551, guid: 89c428aa91735ee48a38fff2a726dbd5, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &689340259 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 689340256} - m_CullTransparentMesh: 1 ---- !u!114 &689340260 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 689340256} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 7d651a3517184abcb4aff78629eb7946, type: 3} - m_Name: - m_EditorClassIdentifier: - icon: {fileID: 6105138323762792696} --- !u!224 &689345800 stripped RectTransform: m_CorrespondingSourceObject: {fileID: 2322698135530781468, guid: afbed11ea0c7e944aa36a71951b00ad6, type: 3} m_PrefabInstance: {fileID: 3215589691918074709} m_PrefabAsset: {fileID: 0} ---- !u!1001 &689521025 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 1535848048} - m_Modifications: - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_AnchorMax.x - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_AnchorMax.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_SizeDelta.x - value: -30 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_SizeDelta.y - value: -30 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1665787281938857491, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_Name - value: UIAnimator - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} ---- !u!224 &689521026 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - m_PrefabInstance: {fileID: 689521025} - m_PrefabAsset: {fileID: 0} ---- !u!114 &689521027 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 4750466675787535420, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - m_PrefabInstance: {fileID: 689521025} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: c6f899d1c5ef450bb6f3e670fa55cffd, type: 3} - m_Name: - m_EditorClassIdentifier: --- !u!1 &719498455 GameObject: m_ObjectHideFlags: 0 @@ -1076,652 +326,11 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &761473399 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 761473400} - - component: {fileID: 761473401} - - component: {fileID: 761473402} - m_Layer: 5 - m_Name: otherBuff - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &761473400 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 761473399} - 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: 2062509144} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 1, y: 0} - m_AnchorMax: {x: 1, y: 0} - m_AnchoredPosition: {x: -958.37, y: 48.86328} - m_SizeDelta: {x: 1461.9, y: 43.8996} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &761473401 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 761473399} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 0 - m_Right: 0 - m_Top: 0 - m_Bottom: 0 - m_ChildAlignment: 2 - m_Spacing: 7 - m_ChildForceExpandWidth: 0 - m_ChildForceExpandHeight: 0 - m_ChildControlWidth: 0 - m_ChildControlHeight: 0 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 1 ---- !u!114 &761473402 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 761473399} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 8f6f033d6fe84e769e101fb355ef3ffa, type: 3} - m_Name: - m_EditorClassIdentifier: - prefab: {fileID: 8174970956233947585, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - container: {fileID: 761473400} ---- !u!1001 &771334553 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 1483441034} - m_Modifications: - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_AnchorMax.x - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_AnchorMax.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_SizeDelta.x - value: -40.00006 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_SizeDelta.y - value: -40 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_AnchoredPosition.x - value: -0.000030517578 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1665787281938857491, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_Name - value: UIAnimator - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} ---- !u!224 &771334554 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - m_PrefabInstance: {fileID: 771334553} - m_PrefabAsset: {fileID: 0} ---- !u!114 &771334555 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 4750466675787535420, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - m_PrefabInstance: {fileID: 771334553} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: c6f899d1c5ef450bb6f3e670fa55cffd, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!1 &796630698 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 796630699} - - component: {fileID: 796630701} - - component: {fileID: 796630700} - m_Layer: 5 - m_Name: bk - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &796630699 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 796630698} - 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: 274529400} - 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: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &796630700 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 796630698} - 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: 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: 3286163911610860551, guid: 9e8e5b8f16df1044bb4279fad7eec71d, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 1 - m_FillAmount: 0.604 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &796630701 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 796630698} - m_CullTransparentMesh: 1 ---- !u!1 &854403365 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 854403366} - - component: {fileID: 854403368} - - component: {fileID: 854403367} - m_Layer: 5 - m_Name: text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &854403366 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 854403365} - 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: 455427352} - 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: -29.999996, y: -10} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &854403367 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 854403365} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, 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_text: 414444444425666666666666 - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 317edb274e9c5144a9916937bdbf7716, type: 2} - m_sharedMaterial: {fileID: -1361428157011412921, guid: 317edb274e9c5144a9916937bdbf7716, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 4 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_TextWrappingMode: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 1 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 0 - m_ActiveFontFeatures: 6e72656b - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_EmojiFallbackSupport: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &854403368 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 854403365} - m_CullTransparentMesh: 1 ---- !u!1 &896112296 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 896112297} - - component: {fileID: 896112299} - - component: {fileID: 896112298} - m_Layer: 5 - m_Name: bk - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &896112297 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 896112296} - 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: 455427352} - 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: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &896112298 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 896112296} - 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: 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: 3286163911610860551, guid: d102f013c83999e4081e0c014bf2430a, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &896112299 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 896112296} - m_CullTransparentMesh: 1 ---- !u!1 &923163876 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 923163877} - - component: {fileID: 923163879} - - component: {fileID: 923163878} - m_Layer: 5 - m_Name: Image - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &923163877 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 923163876} - 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: 582436622} - 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: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &923163878 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 923163876} - 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, 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: 3286163911610860551, guid: eba9d05bb9d9e4240ac43a4fbcb0eca5, type: 3} - m_Type: 3 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 1 - m_FillAmount: 0.576 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &923163879 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 923163876} - m_CullTransparentMesh: 1 --- !u!224 &981108095 stripped RectTransform: m_CorrespondingSourceObject: {fileID: 3161252966921572831, guid: 6846a4c7db6ab7e49812b377bdf8df7d, type: 3} m_PrefabInstance: {fileID: 2031076800} m_PrefabAsset: {fileID: 0} ---- !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: -14, y: -13.999996} - 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 @@ -2108,104 +717,6 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1277422231 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 6060365352283784422, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - m_PrefabInstance: {fileID: 509618438222383851} - m_PrefabAsset: {fileID: 0} ---- !u!224 &1277422232 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - m_PrefabInstance: {fileID: 509618438222383851} - m_PrefabAsset: {fileID: 0} ---- !u!114 &1277422235 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1277422231} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 17587b13f9d4467dbff77cf9762dc8fe, type: 3} - m_Name: - m_EditorClassIdentifier: - icon: {fileID: 509618438222383852} ---- !u!1 &1350296599 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1350296600} - - component: {fileID: 1350296602} - - component: {fileID: 1350296601} - m_Layer: 5 - m_Name: Image - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1350296600 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1350296599} - 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: 274529400} - 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: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1350296601 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1350296599} - 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, 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: 3286163911610860551, guid: 2d75b7f02ff03f946b5e2dbe410ee8bf, type: 3} - m_Type: 3 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 1 - m_FillAmount: 0.63 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1350296602 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1350296599} - m_CullTransparentMesh: 1 --- !u!1001 &1377060927 PrefabInstance: m_ObjectHideFlags: 0 @@ -2268,523 +779,6 @@ RectTransform: m_CorrespondingSourceObject: {fileID: 1633840166558733415, guid: 97884168f61531647ba02870b2e2160f, type: 3} m_PrefabInstance: {fileID: 561707863834017811} m_PrefabAsset: {fileID: 0} ---- !u!1001 &1408316568 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 1725111928} - m_Modifications: - - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_AnchorMax.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_SizeDelta.x - value: 62.421 - objectReference: {fileID: 0} - - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_SizeDelta.y - value: 43.9 - objectReference: {fileID: 0} - - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6060365352283784422, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_Name - value: Image (1) - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: - - targetCorrespondingSourceObject: {fileID: 6060365352283784422, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - insertIndex: -1 - addedObject: {fileID: 1408316572} - m_SourcePrefab: {fileID: 100100000, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} ---- !u!224 &1408316569 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - m_PrefabInstance: {fileID: 1408316568} - m_PrefabAsset: {fileID: 0} ---- !u!114 &1408316570 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 8897095238084646223, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - m_PrefabInstance: {fileID: 1408316568} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: c6f899d1c5ef450bb6f3e670fa55cffd, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!1 &1408316571 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 6060365352283784422, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - m_PrefabInstance: {fileID: 1408316568} - m_PrefabAsset: {fileID: 0} ---- !u!114 &1408316572 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1408316571} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 17587b13f9d4467dbff77cf9762dc8fe, type: 3} - m_Name: - m_EditorClassIdentifier: - icon: {fileID: 1408316570} ---- !u!1 &1483441033 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1483441034} - - component: {fileID: 1483441036} - - component: {fileID: 1483441035} - - component: {fileID: 1483441037} - m_Layer: 5 - m_Name: otherMode - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1483441034 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1483441033} - 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: 771334554} - m_Father: {fileID: 2062509144} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 1, y: 0} - m_AnchorMax: {x: 1, y: 0} - m_AnchoredPosition: {x: -161.8, y: 98.48938} - m_SizeDelta: {x: 144, y: 144} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1483441035 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1483441033} - 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: 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: 3286163911610860551, guid: 54c0e08acbe0ac9468618f599293ce2c, 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 &1483441036 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1483441033} - m_CullTransparentMesh: 1 ---- !u!114 &1483441037 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1483441033} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2d81179f82c542edb275daabff5bfe12, type: 3} - m_Name: - m_EditorClassIdentifier: - icon: {fileID: 771334555} ---- !u!1 &1535848047 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1535848048} - - component: {fileID: 1535848050} - - component: {fileID: 1535848049} - - component: {fileID: 1535848051} - m_Layer: 5 - m_Name: 2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1535848048 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1535848047} - 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: 689521026} - m_Father: {fileID: 1942077021} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 146.97313, y: 157.07912} - m_SizeDelta: {x: 98.2785, y: 97.6994} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1535848049 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1535848047} - 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: 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: 3286163911610860551, guid: 49574900b62cf8f4481e400bb87d8497, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1535848050 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1535848047} - m_CullTransparentMesh: 1 ---- !u!114 &1535848051 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1535848047} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 7d651a3517184abcb4aff78629eb7946, type: 3} - m_Name: - m_EditorClassIdentifier: - icon: {fileID: 689521027} ---- !u!1001 &1607044843 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 1660284963} - m_Modifications: - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_AnchorMax.x - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_AnchorMax.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_SizeDelta.x - value: -30 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_SizeDelta.y - value: -30 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1665787281938857491, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_Name - value: UIAnimator - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} ---- !u!224 &1607044844 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - m_PrefabInstance: {fileID: 1607044843} - m_PrefabAsset: {fileID: 0} ---- !u!114 &1607044845 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 4750466675787535420, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - m_PrefabInstance: {fileID: 1607044843} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: c6f899d1c5ef450bb6f3e670fa55cffd, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!1 &1660284962 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1660284963} - - component: {fileID: 1660284965} - - component: {fileID: 1660284964} - - component: {fileID: 1660284966} - m_Layer: 5 - m_Name: 3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1660284963 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1660284962} - 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: 1607044844} - m_Father: {fileID: 1942077021} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 122.79912, y: 245.30267} - m_SizeDelta: {x: 97.8637, y: 97.2345} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1660284964 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1660284962} - 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: 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: 3286163911610860551, guid: 49574900b62cf8f4481e400bb87d8497, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1660284965 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1660284962} - m_CullTransparentMesh: 1 ---- !u!114 &1660284966 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1660284962} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 7d651a3517184abcb4aff78629eb7946, type: 3} - m_Name: - m_EditorClassIdentifier: - icon: {fileID: 1607044845} --- !u!224 &1672332560 stripped RectTransform: m_CorrespondingSourceObject: {fileID: 8654739876786722101, guid: 1b140ccde6242874785fb30e18322eab, type: 3} @@ -2801,235 +795,11 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 22c2554b0c0949aab37618f3a80ffe5a, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!1 &1725111927 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1725111928} - - component: {fileID: 1725111929} - - component: {fileID: 1725111930} - m_Layer: 5 - m_Name: MainBuff - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1725111928 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1725111927} - 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: 1277422232} - - {fileID: 1408316569} - 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: 261.91064, y: 48.86328} - m_SizeDelta: {x: 62.4213, y: 43.8996} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1725111929 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1725111927} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 0 - m_Right: 0 - m_Top: 0 - m_Bottom: 0 - m_ChildAlignment: 0 - m_Spacing: 7 - m_ChildForceExpandWidth: 0 - m_ChildForceExpandHeight: 0 - m_ChildControlWidth: 0 - m_ChildControlHeight: 0 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!114 &1725111930 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1725111927} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 8f6f033d6fe84e769e101fb355ef3ffa, type: 3} - m_Name: - m_EditorClassIdentifier: - prefab: {fileID: 8174970956233947585, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - container: {fileID: 1725111928} ---- !u!1 &1866986815 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1866986816} - - component: {fileID: 1866986818} - - component: {fileID: 1866986817} - - component: {fileID: 1866986819} - m_Layer: 5 - m_Name: MiniMap - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1866986816 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1866986815} - 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: 1107928324} - m_Father: {fileID: 2062509144} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 195.6211, y: -195.7778} - m_SizeDelta: {x: 294.493, y: 294.7475} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1866986817 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1866986815} - 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.6509434, g: 0.6509434, b: 0.6509434, 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: 3286163911610860551, guid: 899963cf0e2bdb447a6ffc59bf5dadeb, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1866986818 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1866986815} - m_CullTransparentMesh: 1 ---- !u!114 &1866986819 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1866986815} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: feb227be5c204aaea27e09f754dc05b8, type: 3} - m_Name: - m_EditorClassIdentifier: - background: {fileID: 1866986817} - texture: {fileID: 476295826} --- !u!224 &1892335252 stripped RectTransform: m_CorrespondingSourceObject: {fileID: 4227482396833377269, guid: 72cde32427f7d914692a7b0d22fb791d, type: 3} m_PrefabInstance: {fileID: 481559811017721991} m_PrefabAsset: {fileID: 0} ---- !u!1 &1942077020 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1942077021} - - component: {fileID: 1942077022} - m_Layer: 5 - m_Name: Equipment - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1942077021 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1942077020} - 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: 689340257} - - {fileID: 1535848048} - - {fileID: 1660284963} - 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: 192.80688, y: 177.84} - m_SizeDelta: {x: 205.5941, y: 301.85} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1942077022 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1942077020} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4432817f903945648bdc0b3a4ba19adc, type: 3} - m_Name: - m_EditorClassIdentifier: - currentUse: {fileID: 689340260} - two: {fileID: 1535848051} - three: {fileID: 1660284966} --- !u!1001 &2031076800 PrefabInstance: m_ObjectHideFlags: 0 @@ -3467,161 +1237,16 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 6846a4c7db6ab7e49812b377bdf8df7d, type: 3} ---- !u!1 &2062509143 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2062509144} - - component: {fileID: 2062509145} - - component: {fileID: 2062509147} - m_Layer: 5 - m_Name: PlayerUI - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2062509144 +--- !u!224 &2062509144 stripped RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + m_PrefabInstance: {fileID: 738164526109768844} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2062509143} - 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: 582436622} - - {fileID: 104508618} - - {fileID: 455427352} - - {fileID: 1942077021} - - {fileID: 1725111928} - - {fileID: 761473400} - - {fileID: 1483441034} - - {fileID: 1866986816} - m_Father: {fileID: 1236970686} - 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: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &2062509145 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2062509143} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2fcb0352f5bd43a49b164e24a38447e3, type: 3} - m_Name: - m_EditorClassIdentifier: - focusedEntityHP: {fileID: 274529401} - lastEntityHP: {fileID: 582436623} - BaseBuildingHP: {fileID: 104508619} - miniMap: {fileID: 1866986819} - equipmentUI: {fileID: 1942077022} - coinCountUI: {fileID: 455427353} - focuseEntityBuffIconList: {fileID: 1725111930} - lastEntityBuffIconList: {fileID: 761473402} - attackMode: {fileID: 1483441037} ---- !u!222 &2062509147 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2062509143} - m_CullTransparentMesh: 1 --- !u!224 &2068504032 stripped RectTransform: m_CorrespondingSourceObject: {fileID: 6806539210387795853, guid: 620f2670398686943a232c5a71a6f1d5, type: 3} m_PrefabInstance: {fileID: 6268679642209076924} m_PrefabAsset: {fileID: 0} ---- !u!1 &2141169988 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2141169989} - - component: {fileID: 2141169991} - - component: {fileID: 2141169990} - m_Layer: 5 - m_Name: bk - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2141169989 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2141169988} - 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: 104508618} - 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: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &2141169990 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2141169988} - 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: 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: 3286163911610860551, guid: eb5a094463dad0b468605645310d036e, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 1 - m_FillAmount: 0.604 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &2141169991 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2141169988} - m_CullTransparentMesh: 1 --- !u!1001 &481559811017721991 PrefabInstance: m_ObjectHideFlags: 0 @@ -3872,117 +1497,6 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 72cde32427f7d914692a7b0d22fb791d, type: 3} ---- !u!1001 &509618438222383851 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 1725111928} - m_Modifications: - - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_AnchorMax.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_SizeDelta.x - value: 62.421 - objectReference: {fileID: 0} - - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_SizeDelta.y - value: 43.9 - objectReference: {fileID: 0} - - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3192591419784585419, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6060365352283784422, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - propertyPath: m_Name - value: Image - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: - - targetCorrespondingSourceObject: {fileID: 6060365352283784422, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - insertIndex: -1 - addedObject: {fileID: 1277422235} - m_SourcePrefab: {fileID: 100100000, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} ---- !u!114 &509618438222383852 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 8897095238084646223, guid: 5ca0674a45754094baf7e91a0869238f, type: 3} - m_PrefabInstance: {fileID: 509618438222383851} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: c6f899d1c5ef450bb6f3e670fa55cffd, type: 3} - m_Name: - m_EditorClassIdentifier: --- !u!1001 &561707863834017811 PrefabInstance: m_ObjectHideFlags: 0 @@ -4148,6 +1662,103 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 97884168f61531647ba02870b2e2160f, type: 3} +--- !u!1001 &738164526109768844 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1236970686} + m_Modifications: + - target: {fileID: 6238494282169321395, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_Name + value: PlayerUI + objectReference: {fileID: 0} + - target: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} --- !u!1001 &2684647918883166846 PrefabInstance: m_ObjectHideFlags: 0 @@ -4200,6 +1811,14 @@ PrefabInstance: propertyPath: m_Name value: OutsideDimension objectReference: {fileID: 0} + - target: {fileID: 7309265216316706961, guid: 236c0c9e335f46743bf67841f64a9429, type: 3} + propertyPath: defaultOpen + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7309265216316706961, guid: 236c0c9e335f46743bf67841f64a9429, type: 3} + propertyPath: _dimensionId + value: OutsideDimension + objectReference: {fileID: 0} - target: {fileID: 7309265216316706961, guid: 236c0c9e335f46743bf67841f64a9429, type: 3} propertyPath: mapGeneratorId value: @@ -4480,114 +2099,6 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 1dbde4ad79c5ce44d9ba955cb82a875e, type: 3} ---- !u!1001 &6105138323762792695 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 689340257} - m_Modifications: - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_AnchorMax.x - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_AnchorMax.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_SizeDelta.x - value: -40 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_SizeDelta.y - value: -40 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1225146130447774669, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1665787281938857491, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - propertyPath: m_Name - value: icon - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} ---- !u!114 &6105138323762792696 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 4750466675787535420, guid: e9ac5cdd8d06ee841931abb21e710490, type: 3} - m_PrefabInstance: {fileID: 6105138323762792695} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: c6f899d1c5ef450bb6f3e670fa55cffd, type: 3} - m_Name: - m_EditorClassIdentifier: --- !u!1001 &6268679642209076924 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/Client/Assets/Scenes/Initiate.unity b/Client/Assets/Scenes/Initiate.unity index f2ca8a3..886995d 100644 --- a/Client/Assets/Scenes/Initiate.unity +++ b/Client/Assets/Scenes/Initiate.unity @@ -235,7 +235,7 @@ Camera: m_Enabled: 1 serializedVersion: 2 m_ClearFlags: 2 - m_BackGroundColor: {r: 0.3433962, g: 0.3433962, b: 0.3433962, a: 0} + m_BackGroundColor: {r: 0.64944756, g: 0.6509434, b: 0.635591, a: 0} m_projectionMatrixMode: 1 m_GateFitMode: 2 m_FOVAxisMode: 0 @@ -348,7 +348,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: "\u7248\u672C\uFF1A\u6D4B\u8BD5\u72480.2a" + m_text: "\u7248\u672C\uFF1A\u6D4B\u8BD5\u72480.2b" m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: 317edb274e9c5144a9916937bdbf7716, type: 2} m_sharedMaterial: {fileID: -1361428157011412921, guid: 317edb274e9c5144a9916937bdbf7716, type: 2} @@ -459,10 +459,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 1344781620} 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: 0, y: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 200} + m_SizeDelta: {x: 800, y: 500} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &194192104 MonoBehaviour: @@ -484,15 +484,15 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 21300000, guid: fd2240c14a14543489a97ecc3b5c0853, type: 3} + m_Sprite: {fileID: 3286163911610860551, guid: 0533345fd458aa2408357ca30b97646f, type: 3} m_Type: 0 - m_PreserveAspect: 0 + m_PreserveAspect: 1 m_FillCenter: 1 m_FillMethod: 4 m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 - m_UseSpriteMesh: 0 + m_UseSpriteMesh: 1 m_PixelsPerUnitMultiplier: 1 --- !u!222 &194192105 CanvasRenderer: @@ -682,19 +682,19 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 2054715303808414256, guid: 97884168f61531647ba02870b2e2160f, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2054715303808414256, guid: 97884168f61531647ba02870b2e2160f, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2054715303808414256, guid: 97884168f61531647ba02870b2e2160f, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 960 objectReference: {fileID: 0} - target: {fileID: 2054715303808414256, guid: 97884168f61531647ba02870b2e2160f, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -480 objectReference: {fileID: 0} - target: {fileID: 3530227357112532485, guid: 97884168f61531647ba02870b2e2160f, type: 3} propertyPath: m_Name @@ -702,39 +702,39 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 3530227357112532485, guid: 97884168f61531647ba02870b2e2160f, type: 3} propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5084767838786362069, guid: 97884168f61531647ba02870b2e2160f, type: 3} + propertyPath: m_AnchorMax.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 5084767838786362069, guid: 97884168f61531647ba02870b2e2160f, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - target: {fileID: 5084767838786362069, guid: 97884168f61531647ba02870b2e2160f, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 5084767838786362069, guid: 97884168f61531647ba02870b2e2160f, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 960 objectReference: {fileID: 0} - target: {fileID: 5084767838786362069, guid: 97884168f61531647ba02870b2e2160f, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -520 objectReference: {fileID: 0} - target: {fileID: 5683899746708222069, guid: 97884168f61531647ba02870b2e2160f, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 5683899746708222069, guid: 97884168f61531647ba02870b2e2160f, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 5683899746708222069, guid: 97884168f61531647ba02870b2e2160f, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 960 objectReference: {fileID: 0} - target: {fileID: 5683899746708222069, guid: 97884168f61531647ba02870b2e2160f, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -600 objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: @@ -1067,7 +1067,6 @@ RectTransform: m_Children: - {fileID: 1344781620} - {fileID: 862239518} - - {fileID: 768597644} - {fileID: 1989361080} - {fileID: 1146314987} - {fileID: 863426610} @@ -1353,11 +1352,6 @@ Transform: m_CorrespondingSourceObject: {fileID: 709533242955877997, guid: 04bb56c29e3de4248a236f83c889ca7d, type: 3} m_PrefabInstance: {fileID: 693329422} m_PrefabAsset: {fileID: 0} ---- !u!224 &768597644 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - m_PrefabInstance: {fileID: 1876256695} - m_PrefabAsset: {fileID: 0} --- !u!224 &862239518 stripped RectTransform: m_CorrespondingSourceObject: {fileID: 3161252966921572831, guid: 6846a4c7db6ab7e49812b377bdf8df7d, type: 3} @@ -1417,6 +1411,50 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1140698106 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1140698107} + - component: {fileID: 1140698108} + m_Layer: 0 + m_Name: MainMenu + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1140698107 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1140698106} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1917.2582, y: 943.5635, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1140698108 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1140698106} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cec06564c6ae43daa1dc257835c919ac, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1001 &1141579897 PrefabInstance: m_ObjectHideFlags: 0 @@ -1671,53 +1709,6 @@ RectTransform: m_CorrespondingSourceObject: {fileID: 2322698135530781468, guid: afbed11ea0c7e944aa36a71951b00ad6, type: 3} m_PrefabInstance: {fileID: 693184453} m_PrefabAsset: {fileID: 0} ---- !u!1 &1200712021 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1200712023} - - component: {fileID: 1200712022} - m_Layer: 0 - m_Name: RightMenuManager - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1200712022 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1200712021} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 409b8017bbd6443eb2dde17ea6fd5e29, type: 3} - m_Name: - m_EditorClassIdentifier: - isGlobal: 1 - _canvas: {fileID: 0} - _rightMenuPrefab: {fileID: 0} ---- !u!4 &1200712023 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1200712021} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 82.63557, y: 36.06109, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1344781619 GameObject: m_ObjectHideFlags: 0 @@ -1780,7 +1771,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 1690722858018107951, guid: f0afd08be12de0d43af753af4f618da4, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 1690722858018107951, guid: f0afd08be12de0d43af753af4f618da4, type: 3} propertyPath: m_AnchorMin.x @@ -1788,7 +1779,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 1690722858018107951, guid: f0afd08be12de0d43af753af4f618da4, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 1690722858018107951, guid: f0afd08be12de0d43af753af4f618da4, type: 3} propertyPath: m_SizeDelta.x @@ -1828,11 +1819,11 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 1690722858018107951, guid: f0afd08be12de0d43af753af4f618da4, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 960 objectReference: {fileID: 0} - target: {fileID: 1690722858018107951, guid: f0afd08be12de0d43af753af4f618da4, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -560 objectReference: {fileID: 0} - target: {fileID: 1690722858018107951, guid: f0afd08be12de0d43af753af4f618da4, type: 3} propertyPath: m_LocalEulerAnglesHint.x @@ -2069,107 +2060,6 @@ MonoBehaviour: describeText: {fileID: 1145531079} duration: 0 fadeDuration: 0 ---- !u!1001 &1876256695 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 668892717} - m_Modifications: - - target: {fileID: 6079752034257435785, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_Name - value: SkillTree - objectReference: {fileID: 0} - - target: {fileID: 6079752034257435785, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_IsActive - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_AnchorMax.x - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_AnchorMax.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_SizeDelta.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6946156752503637673, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: c9b08d521dc64f94dad2fe46b5ef1daf, type: 3} --- !u!1001 &1981008545 PrefabInstance: m_ObjectHideFlags: 0 @@ -2985,6 +2875,63 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 6846a4c7db6ab7e49812b377bdf8df7d, type: 3} +--- !u!1001 &3934543967711816672 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 6739652400120250140, guid: 6356b177ffad416499427f272c81c8c0, type: 3} + propertyPath: m_LocalPosition.x + value: 82.63557 + objectReference: {fileID: 0} + - target: {fileID: 6739652400120250140, guid: 6356b177ffad416499427f272c81c8c0, type: 3} + propertyPath: m_LocalPosition.y + value: 36.06109 + objectReference: {fileID: 0} + - target: {fileID: 6739652400120250140, guid: 6356b177ffad416499427f272c81c8c0, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6739652400120250140, guid: 6356b177ffad416499427f272c81c8c0, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6739652400120250140, guid: 6356b177ffad416499427f272c81c8c0, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6739652400120250140, guid: 6356b177ffad416499427f272c81c8c0, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6739652400120250140, guid: 6356b177ffad416499427f272c81c8c0, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6739652400120250140, guid: 6356b177ffad416499427f272c81c8c0, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6739652400120250140, guid: 6356b177ffad416499427f272c81c8c0, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6739652400120250140, guid: 6356b177ffad416499427f272c81c8c0, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6780331639118600844, guid: 6356b177ffad416499427f272c81c8c0, type: 3} + propertyPath: m_Name + value: RightMenuManager + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 6356b177ffad416499427f272c81c8c0, type: 3} --- !u!1660057539 &9223372036854775807 SceneRoots: m_ObjectHideFlags: 0 @@ -2997,8 +2944,9 @@ SceneRoots: - {fileID: 2131333544} - {fileID: 336157946} - {fileID: 597126023} - - {fileID: 1200712023} + - {fileID: 3934543967711816672} - {fileID: 911482833} - {fileID: 206478245} - {fileID: 1658206584} - {fileID: 2134675595} + - {fileID: 1140698107} diff --git a/Client/Assets/Scenes/Play.unity b/Client/Assets/Scenes/Play.unity index 23ef392..f23f4c8 100644 --- a/Client/Assets/Scenes/Play.unity +++ b/Client/Assets/Scenes/Play.unity @@ -119,6 +119,142 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} +--- !u!1 &41276026 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 41276027} + - component: {fileID: 41276029} + - component: {fileID: 41276028} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &41276027 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 41276026} + 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: 1485855893} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 1000, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &41276028 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 41276026} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, 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_text: "\u6B63\u5728\u524D\u5F80\u76EE\u6807\u5730\u70B9" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 317edb274e9c5144a9916937bdbf7716, type: 2} + m_sharedMaterial: {fileID: -1361428157011412921, guid: 317edb274e9c5144a9916937bdbf7716, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &41276029 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 41276026} + m_CullTransparentMesh: 1 --- !u!1 &106058329 GameObject: m_ObjectHideFlags: 0 @@ -243,6 +379,164 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &939244511 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1404048103} + m_Modifications: + - target: {fileID: 895411777808890996, guid: afbed11ea0c7e944aa36a71951b00ad6, type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 895411777808890996, guid: afbed11ea0c7e944aa36a71951b00ad6, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 895411777808890996, guid: afbed11ea0c7e944aa36a71951b00ad6, type: 3} + propertyPath: m_SizeDelta.x + value: -17 + objectReference: {fileID: 0} + - target: {fileID: 895411777808890996, guid: afbed11ea0c7e944aa36a71951b00ad6, type: 3} + propertyPath: m_SizeDelta.y + value: -17 + objectReference: {fileID: 0} + - target: {fileID: 1847991361468327013, guid: afbed11ea0c7e944aa36a71951b00ad6, type: 3} + propertyPath: m_SizeDelta.y + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 2322698135530781468, guid: afbed11ea0c7e944aa36a71951b00ad6, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2322698135530781468, guid: afbed11ea0c7e944aa36a71951b00ad6, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2322698135530781468, guid: afbed11ea0c7e944aa36a71951b00ad6, type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2322698135530781468, guid: afbed11ea0c7e944aa36a71951b00ad6, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2322698135530781468, guid: afbed11ea0c7e944aa36a71951b00ad6, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2322698135530781468, guid: afbed11ea0c7e944aa36a71951b00ad6, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2322698135530781468, guid: afbed11ea0c7e944aa36a71951b00ad6, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2322698135530781468, guid: afbed11ea0c7e944aa36a71951b00ad6, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2322698135530781468, guid: afbed11ea0c7e944aa36a71951b00ad6, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2322698135530781468, guid: afbed11ea0c7e944aa36a71951b00ad6, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2322698135530781468, guid: afbed11ea0c7e944aa36a71951b00ad6, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2322698135530781468, guid: afbed11ea0c7e944aa36a71951b00ad6, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2322698135530781468, guid: afbed11ea0c7e944aa36a71951b00ad6, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2322698135530781468, guid: afbed11ea0c7e944aa36a71951b00ad6, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2322698135530781468, guid: afbed11ea0c7e944aa36a71951b00ad6, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2322698135530781468, guid: afbed11ea0c7e944aa36a71951b00ad6, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2322698135530781468, guid: afbed11ea0c7e944aa36a71951b00ad6, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2322698135530781468, guid: afbed11ea0c7e944aa36a71951b00ad6, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2322698135530781468, guid: afbed11ea0c7e944aa36a71951b00ad6, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2322698135530781468, guid: afbed11ea0c7e944aa36a71951b00ad6, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3712980343248047498, guid: afbed11ea0c7e944aa36a71951b00ad6, type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3712980343248047498, guid: afbed11ea0c7e944aa36a71951b00ad6, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3897691268801590888, guid: afbed11ea0c7e944aa36a71951b00ad6, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3897691268801590888, guid: afbed11ea0c7e944aa36a71951b00ad6, type: 3} + propertyPath: m_SizeDelta.y + value: -17 + objectReference: {fileID: 0} + - target: {fileID: 4350907995400017842, guid: afbed11ea0c7e944aa36a71951b00ad6, type: 3} + propertyPath: m_Name + value: LogUI + objectReference: {fileID: 0} + - target: {fileID: 4350907995400017842, guid: afbed11ea0c7e944aa36a71951b00ad6, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6483532921924948612, guid: afbed11ea0c7e944aa36a71951b00ad6, type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6483532921924948612, guid: afbed11ea0c7e944aa36a71951b00ad6, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8337015024489566185, guid: afbed11ea0c7e944aa36a71951b00ad6, type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8337015024489566185, guid: afbed11ea0c7e944aa36a71951b00ad6, type: 3} + propertyPath: m_SizeDelta.x + value: -17 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: afbed11ea0c7e944aa36a71951b00ad6, type: 3} +--- !u!224 &939244512 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2322698135530781468, guid: afbed11ea0c7e944aa36a71951b00ad6, type: 3} + m_PrefabInstance: {fileID: 939244511} + m_PrefabAsset: {fileID: 0} --- !u!1001 &1071241626 PrefabInstance: m_ObjectHideFlags: 0 @@ -333,71 +627,75 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 2054715303808414256, guid: 97884168f61531647ba02870b2e2160f, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2054715303808414256, guid: 97884168f61531647ba02870b2e2160f, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2054715303808414256, guid: 97884168f61531647ba02870b2e2160f, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 960 objectReference: {fileID: 0} - target: {fileID: 2054715303808414256, guid: 97884168f61531647ba02870b2e2160f, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -480 objectReference: {fileID: 0} - target: {fileID: 2831061748208868200, guid: 97884168f61531647ba02870b2e2160f, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2831061748208868200, guid: 97884168f61531647ba02870b2e2160f, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2831061748208868200, guid: 97884168f61531647ba02870b2e2160f, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 960 objectReference: {fileID: 0} - target: {fileID: 2831061748208868200, guid: 97884168f61531647ba02870b2e2160f, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -560 objectReference: {fileID: 0} - target: {fileID: 3530227357112532485, guid: 97884168f61531647ba02870b2e2160f, type: 3} propertyPath: m_Name value: EscUI objectReference: {fileID: 0} + - target: {fileID: 3530227357112532485, guid: 97884168f61531647ba02870b2e2160f, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} - target: {fileID: 5084767838786362069, guid: 97884168f61531647ba02870b2e2160f, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 5084767838786362069, guid: 97884168f61531647ba02870b2e2160f, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 5084767838786362069, guid: 97884168f61531647ba02870b2e2160f, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 960 objectReference: {fileID: 0} - target: {fileID: 5084767838786362069, guid: 97884168f61531647ba02870b2e2160f, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -520 objectReference: {fileID: 0} - target: {fileID: 5683899746708222069, guid: 97884168f61531647ba02870b2e2160f, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 5683899746708222069, guid: 97884168f61531647ba02870b2e2160f, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 5683899746708222069, guid: 97884168f61531647ba02870b2e2160f, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 960 objectReference: {fileID: 0} - target: {fileID: 5683899746708222069, guid: 97884168f61531647ba02870b2e2160f, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -600 objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] @@ -503,6 +801,9 @@ RectTransform: m_LocalScale: {x: 0, y: 0, z: 0} m_ConstrainProportionsScale: 0 m_Children: + - {fileID: 1436487365} + - {fileID: 1485855893} + - {fileID: 939244512} - {fileID: 1071241627} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -511,6 +812,162 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0, y: 0} +--- !u!1001 &1436487364 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1404048103} + m_Modifications: + - target: {fileID: 6238494282169321395, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_Name + value: PlayerUI + objectReference: {fileID: 0} + - target: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} +--- !u!224 &1436487365 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 6854597925211758154, guid: 7171041e903b69b45a30fa2cfffd4c63, type: 3} + m_PrefabInstance: {fileID: 1436487364} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1485855892 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1485855893} + - component: {fileID: 1485855894} + m_Layer: 5 + m_Name: WaitStart + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1485855893 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1485855892} + 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: 41276027} + m_Father: {fileID: 1404048103} + 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1485855894 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1485855892} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8526602f31724cc39ebdf089255189da, type: 3} + m_Name: + m_EditorClassIdentifier: + text: {fileID: 41276028} + baseText: + dotCount: 3 + dotCounter: 0 + updateTime: 1 --- !u!1 &1995408205 GameObject: m_ObjectHideFlags: 0 @@ -648,6 +1105,67 @@ MonoBehaviour: m_MipBias: 0 m_VarianceClampScale: 0.9 m_ContrastAdaptiveSharpening: 0 +--- !u!1001 &1587848637221850658 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1453842367159182486, guid: b4708b6f1c6cc31499da4cd19a98b177, type: 3} + propertyPath: m_Name + value: PlayControllor + objectReference: {fileID: 0} + - target: {fileID: 1653900192943441962, guid: b4708b6f1c6cc31499da4cd19a98b177, type: 3} + propertyPath: waitStartUI + value: + objectReference: {fileID: 1485855894} + - target: {fileID: 4784716766365171644, guid: b4708b6f1c6cc31499da4cd19a98b177, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4784716766365171644, guid: b4708b6f1c6cc31499da4cd19a98b177, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4784716766365171644, guid: b4708b6f1c6cc31499da4cd19a98b177, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4784716766365171644, guid: b4708b6f1c6cc31499da4cd19a98b177, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4784716766365171644, guid: b4708b6f1c6cc31499da4cd19a98b177, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4784716766365171644, guid: b4708b6f1c6cc31499da4cd19a98b177, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4784716766365171644, guid: b4708b6f1c6cc31499da4cd19a98b177, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4784716766365171644, guid: b4708b6f1c6cc31499da4cd19a98b177, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4784716766365171644, guid: b4708b6f1c6cc31499da4cd19a98b177, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4784716766365171644, guid: b4708b6f1c6cc31499da4cd19a98b177, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: b4708b6f1c6cc31499da4cd19a98b177, type: 3} --- !u!1660057539 &9223372036854775807 SceneRoots: m_ObjectHideFlags: 0 @@ -656,3 +1174,4 @@ SceneRoots: - {fileID: 1404048103} - {fileID: 751753915} - {fileID: 106058331} + - {fileID: 1587848637221850658} diff --git a/Client/Assets/Scenes/Test.unity b/Client/Assets/Scenes/Test.unity index 09eb69e..c4f6f99 100644 --- a/Client/Assets/Scenes/Test.unity +++ b/Client/Assets/Scenes/Test.unity @@ -16740,7 +16740,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 4437007482433773734, guid: 236c0c9e335f46743bf67841f64a9429, type: 3} propertyPath: m_Name - value: Dimension + value: baseDimension objectReference: {fileID: 0} - target: {fileID: 6628939405031473293, guid: 236c0c9e335f46743bf67841f64a9429, type: 3} propertyPath: baseTilemap @@ -19024,7 +19024,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: skillTreePageUI: {fileID: 2125190857} - mapGenerator: {fileID: 0} + landform: {fileID: 0} --- !u!1 &1575548185 GameObject: m_ObjectHideFlags: 0 diff --git a/Client/Assets/Scripts/AI/AIBase.cs b/Client/Assets/Scripts/AI/AIBase.cs deleted file mode 100644 index 41b1d7b..0000000 --- a/Client/Assets/Scripts/AI/AIBase.cs +++ /dev/null @@ -1,77 +0,0 @@ -using Data; -using Parsing; -using System; -using System.Collections.Generic; - -namespace AI -{ - public abstract class AIBase - { - public List children = new(); - - public abstract JobBase GetJob(Entity.Entity target); - - public virtual void Init(BehaviorTreeDef def) - { - } - } - - public class ThinkNode_Selector : AIBase - { - public override JobBase GetJob(Entity.Entity target) - { - foreach (var aiBase in children) - { - var job = aiBase.GetJob(target); - if (job != null) - return job; - } - return null; - } - } - public class ThinkNode_Conditional : ThinkNode_Selector - { - // 条件函数,返回 true 表示满足条件 - private Func condition; - - public override JobBase GetJob(Entity.Entity target) - { - // 检查条件是否满足 - if (condition != null && condition(target)) - { - // 如果条件满足,继续查找子节点的任务 - return base.GetJob(target); - } - - // 条件不满足,直接返回 null - return null; - } - - public override void Init(BehaviorTreeDef def) - { - base.Init(def); // 调用基类的Init方法 - - if (!string.IsNullOrEmpty(def.value)) - { - try - { - // 使用 ConditionDelegateFactory 来解析 def.value 并创建条件委托 - this.condition = ConditionDelegateFactory.CreateConditionDelegate( - def.value, - typeof(Entity.Entity), - typeof(ConditionFunctions) // 指定查找条件函数的类 - ); - } - catch (Exception) - { - this.condition = (e) => false; - } - } - else - { - this.condition = (e) => false; // 如果没有指定条件,则条件始终不满足 - } - } - } - -} \ No newline at end of file diff --git a/Client/Assets/Scripts/AI/BehaviorTreeBase.cs b/Client/Assets/Scripts/AI/BehaviorTreeBase.cs new file mode 100644 index 0000000..570f7dd --- /dev/null +++ b/Client/Assets/Scripts/AI/BehaviorTreeBase.cs @@ -0,0 +1,37 @@ +using Data; +using Parsing; +using System; +using System.Collections.Generic; +using Managers; +using UnityEngine; + +namespace AI +{ + public enum Status + { + Ready, + Running, // 节点正在执行中 + Success, // 节点成功完成 + Failure // 节点失败 + } + public abstract class BehaviorTreeBase + { + // 所有行为树节点通用的核心成员 + public Status CurrentStatus = Status.Ready; + public Entity.Entity SelfEntity { get; private set; } + + public virtual void Init(BehaviorTreeDef def, Entity.Entity selfEntity) + { + SelfEntity = selfEntity; + + } + + // 所有行为树节点都必须实现的执行逻辑 + public abstract Status Tick(); + public virtual void Reset() + { + CurrentStatus = Status.Ready; + } + } + +} diff --git a/Client/Assets/Scripts/AI/AIBase.cs.meta b/Client/Assets/Scripts/AI/BehaviorTreeBase.cs.meta similarity index 100% rename from Client/Assets/Scripts/AI/AIBase.cs.meta rename to Client/Assets/Scripts/AI/BehaviorTreeBase.cs.meta diff --git a/Client/Assets/Scripts/AI/CompositeNodeBase.cs b/Client/Assets/Scripts/AI/CompositeNodeBase.cs new file mode 100644 index 0000000..464df3e --- /dev/null +++ b/Client/Assets/Scripts/AI/CompositeNodeBase.cs @@ -0,0 +1,398 @@ +using System; +using System.Collections.Generic; +using System.Text; +using Data; +using Parsing; +using UnityEngine; + +namespace AI +{ + public abstract class CompositeNodeBase:BehaviorTreeBase + { + // 组合节点特有的成员:子行为树列表 + protected List children = new(); + /// + /// 初始化组合行为树节点及其子节点。 + /// + /// 行为树定义。 + /// 关联的实体。 + public override void Init(BehaviorTreeDef def, Entity.Entity selfEntity) + { + base.Init(def, selfEntity); // 调用基类Init,处理 SelfEntity 和 blackboard + if (def.childTree == null) return; + foreach (var childDef in def.childTree) + { + var childNode = Utils.BehaviorTreeUtils.ConvertToAIBase(childDef); + if (childNode == null) continue; + children.Add(childNode); + childNode.Init(childDef, selfEntity); // 递归初始化子节点 + } + } + /// + /// 重置组合行为树节点的状态及其所有子节点的状态。 + /// + public override void Reset() + { + base.Reset(); // 调用基类Reset,重置自身状态 + foreach (var child in children) + { + child?.Reset(); // 确保子节点不为 null 时才调用 Reset + } + } + /// + /// 返回表示当前行为树节点及其子节点层次结构的字符串。 + /// + /// 行为树的层次结构字符串。 + public override string ToString() + { + return ToString(0); // 从根节点开始,初始缩进为0 + } + /// + /// 返回表示当前行为树节点及其子节点层次结构的字符串,带有指定缩进。 + /// + /// 当前节点的缩进级别。 + /// 行为树的层次结构字符串。 + protected virtual string ToString(int indent) + { + StringBuilder sb = new StringBuilder(); + string indentStr = new string(' ', indent * 2); // 每个级别2个空格 + sb.AppendLine($"{indentStr}[{this.GetType().Name}] "); + foreach (var child in children) + { + // 确保子节点不为 null 且支持 ToString(int) 方法 + if (child is CompositeNodeBase compositeChild) + { + sb.Append(compositeChild.ToString(indent + 1)); + } + else if (child != null) // 对于叶子节点或非CompositeNodeBase的BehaviorTreeBase + { + // 如果子节点不是复合节点,但有自己的ToString实现,直接调用其ToString + // 否则,打印其类型和ID/名称 + string childIndentStr = new string(' ', (indent + 1) * 2); + sb.AppendLine($"{childIndentStr}[{child.GetType().Name}] "); + } + } + return sb.ToString(); + } + } + + public class ThinkNode_Selector : CompositeNodeBase + { + // 用于跟踪正在运行的子节点索引 + protected int currentChildIndex = 0; + + /// + /// 执行选择器节点的逻辑。它会按顺序执行子节点,直到一个子节点成功或正在运行。 + /// + /// 节点的执行状态。 + public override Status Tick() + { + // 如果是从 Running 状态恢复,则从上次停止的子节点开始 + // 否则,从第一个子节点开始 + for (var i = currentChildIndex; i < children.Count; i++) + { + var child = children[i]; + if (child == null) // 处理 null 子节点,避免 NullReferenceException + { + Debug.LogWarning($"选择器节点在索引 {i} 处有空子节点。跳过。"); + continue; // 跳过此 null 子节点 + } + + CurrentStatus = child.Tick(); // 执行当前子节点的 Tick + + switch (CurrentStatus) + { + case Status.Success: + currentChildIndex = 0; + return Status.Success; + case Status.Running: + // 如果子节点正在运行,选择器也正在运行 + // 记录当前子节点的索引,以便下次 Tick 时继续 + currentChildIndex = i; + return Status.Running; + } + } + + currentChildIndex = 0; + return Status.Failure; + } + + /// + /// 重置选择器节点的状态,包括子节点索引。 + /// + public override void Reset() + { + base.Reset(); // 调用基类的 Reset 方法 + currentChildIndex = 0; // 重置子节点索引 + } + } + + public class ThinkNode_Conditional : ThinkNode_Selector + { + // 条件函数,返回 true 表示满足条件 + private Func condition; + + /// + /// 初始化条件节点,创建条件委托。 + /// + /// 行为树定义。 + /// 关联的实体。 + public override void Init(BehaviorTreeDef def, Entity.Entity selfEntity) + { + base.Init(def, selfEntity); // 调用基类的 Init 方法,初始化子节点和 SelfEntity + if (!string.IsNullOrEmpty(def.value)) + { + try + { + condition = ConditionDelegateFactory.CreateConditionDelegate( + def.value, + typeof(Entity.Entity), + typeof(ConditionFunctions) // 指定查找条件函数的类 + ); + } + catch (Exception ex) + { + // 记录错误,并使条件始终不满足 + Debug.LogError($"无法为 '{def.value}' 创建条件委托: {ex.Message}"); + condition = (e) => false; + } + } + else + { + condition = (e) => false; // 如果没有指定条件,则条件始终不满足 + } + } + + /// + /// 执行条件节点的逻辑。首先检查条件,如果条件满足则执行其子节点(作为选择器)。 + /// + /// 节点的执行状态。 + public override Status Tick() + { + // 在执行任何子节点之前,先检查条件 + if (condition == null || !condition(SelfEntity)) // 使用 SelfEntity 来执行条件检查 + { + // 如果条件不满足,则直接返回 Failure + currentChildIndex = 0; // 条件不满足时,重置子节点索引 + return Status.Failure; + } + + // 如果条件满足,则像父类 Selector 一样执行子节点 + return base.Tick(); + } + } + + public class ThinkNode_Sequence : CompositeNodeBase + { + // 用于跟踪正在运行的子节点索引 + private int currentChildIndex = 0; + + /// + /// 执行序列器节点的逻辑。它会按顺序执行子节点,直到一个子节点失败或正在运行。 + /// + /// 节点的执行状态。 + public override Status Tick() + { + // 从上次停止的子节点或者从第一个子节点开始 + for (var i = currentChildIndex; i < children.Count; i++) + { + var child = children[i]; + if (child == null) // 处理 null 子节点,避免 NullReferenceException + { + Debug.LogWarning($"序列器节点在索引 {i} 处有空子节点。跳过。"); + // Null 子节点对于 Sequence 来说是失败的表现 + currentChildIndex = 0; + return Status.Failure; + } + + CurrentStatus = child.Tick(); // 执行当前子节点的 Tick + + switch (CurrentStatus) + { + case Status.Failure: + // 如果子节点失败,序列器也失败 + // 重置索引,以便下次从头开始 + currentChildIndex = 0; + return Status.Failure; + case Status.Running: + // 如果子节点正在运行,序列器也正在运行 + // 记录当前子节点的索引,以便下次 Tick 时继续 + currentChildIndex = i; + return Status.Running; + } + // 如果子节点返回 Success,则继续尝试下一个子节点 (这是 Sequence 的核心) + } + + // 如果所有子节点都返回 Success (即循环结束且没有返回 Failure 或 Running), + // 则 Sequence 也返回 Success。 + // 重置索引 + currentChildIndex = 0; + return Status.Success; + } + + /// + /// 重置序列器节点的状态,包括子节点索引。 + /// + public override void Reset() + { + base.Reset(); // 调用基类的 Reset 方法 + currentChildIndex = 0; // 重置子节点索引 + } + } + + public enum BranchExecutionPhase + { + None, // 初始或重置状态 + EvaluatingCondition, // 正在执行条件节点 + ExecutingTrueBranch, // 正在执行真分支节点 + ExecutingFalseBranch // 正在执行假分支节点 + } + + public class ThinkNode_Branch : CompositeNodeBase + { + // 内部状态,用于跟踪分支节点当前正在执行哪个子节点 + private BranchExecutionPhase _currentPhase = BranchExecutionPhase.None; + + // 用于防止日志刷屏 + private bool _hasLoggedMisconfigurationWarning = false; + + /// + /// 初始化分支节点。 + /// + /// 行为树定义。 + /// 关联的实体。 + public override void Init(BehaviorTreeDef def, Entity.Entity selfEntity) + { + base.Init(def, selfEntity); // 调用基类的 Init 方法,初始化子节点和 SelfEntity + _currentPhase = BranchExecutionPhase.None; // 确保初始化时状态为 None + _hasLoggedMisconfigurationWarning = false; // 确保 Init 时也重置警告标志 + } + + /// + /// 执行分支节点的逻辑。它会首先评估条件树,然后根据条件结果执行真分支或假分支。 + /// + /// 节点的执行状态。 + public override Status Tick() + { + // 如果之前有警告但现在配置正确了,就重置警告标志 + if (_hasLoggedMisconfigurationWarning && children.Count >= 2) + { + _hasLoggedMisconfigurationWarning = false; + } + + // 确保至少有两个子节点 (条件树和真树) + if (children.Count < 2) + { + if (!_hasLoggedMisconfigurationWarning) // 只有在未记录过警告时才记录 + { + Debug.LogWarning( + $"分支节点至少需要2个子节点(条件和真分支)。当前实例配置错误。 " + + $"此实例的进一步警告将在重置或更正后才显示。 " + + $"实体: {SelfEntity?.name ?? "N/A"}。"); // 增加更多上下文信息 + _hasLoggedMisconfigurationWarning = true; // 标记已记录 + } + + Reset(); // 重置内部状态 (包括_currentPhase 和 _hasLoggedMisconfigurationWarning) + return Status.Failure; + } + + // 获取条件树和真树 + var conditionTree = children[0]; + var trueTree = children[1]; + // 假树是可选的 + var falseTree = children.Count > 2 ? children[2] : null; + // 如果是首次 Tick 或者 Reset 后,将阶段设置为评估条件 + if (_currentPhase == BranchExecutionPhase.None) + { + _currentPhase = BranchExecutionPhase.EvaluatingCondition; + } + + Status result; + switch (_currentPhase) + { + case BranchExecutionPhase.EvaluatingCondition: + // 执行条件树 + if (conditionTree == null) + { + Debug.LogError("分支节点: 条件树为空。返回失败。"); + Reset(); + return Status.Failure; + } + + result = conditionTree.Tick(); + if (result == Status.Running) + { + // 条件正在运行,则整个分支也运行 + return Status.Running; + } + + if (result == Status.Success) + { + // 条件成功,转移到执行真树阶段 + _currentPhase = BranchExecutionPhase.ExecutingTrueBranch; + // 继续执行真树(因为条件成功,我们可以立即尝试执行真树) + goto case BranchExecutionPhase.ExecutingTrueBranch; + } + + // result == Status.Failure + // 条件失败,转移到执行假树阶段 + _currentPhase = BranchExecutionPhase.ExecutingFalseBranch; + // 继续执行假树(如果存在) + goto case BranchExecutionPhase.ExecutingFalseBranch; + case BranchExecutionPhase.ExecutingTrueBranch: + // 执行真树 + if (trueTree == null) + { + Debug.LogError("分支节点: 真分支树为空。返回失败。"); + Reset(); + return Status.Failure; + } + + result = trueTree.Tick(); + if (result == Status.Running) + { + // 真树正在运行,则整个分支也运行 + return Status.Running; + } + + // 真树完成 (成功或失败),分支节点完成,重置状态 + Reset(); + return result; + case BranchExecutionPhase.ExecutingFalseBranch: + // 执行假树 (如果存在) + if (falseTree != null) + { + result = falseTree.Tick(); + if (result == Status.Running) + { + // 假树正在运行,则整个分支也运行 + return Status.Running; + } + + // 假树完成 (成功或失败),分支节点完成,重置状态 + Reset(); + return result; + } + + // 没有假树,且条件失败,则分支节点失败 + Reset(); + return Status.Failure; + case BranchExecutionPhase.None: + default: + // 不应该到达这里,如果到达表示有逻辑错误 + Debug.LogError($"分支节点处于意外阶段: {_currentPhase}。返回失败。"); + Reset(); + return Status.Failure; + } + } + + /// + /// 重置分支节点的状态,包括内部执行阶段。 + /// + public override void Reset() + { + base.Reset(); // 调用基类的 Reset 方法来确保子节点也重置 + _currentPhase = BranchExecutionPhase.None; // 重置内部状态 + } + } +} \ No newline at end of file diff --git a/Client/Assets/Scripts/AI/CompositeNodeBase.cs.meta b/Client/Assets/Scripts/AI/CompositeNodeBase.cs.meta new file mode 100644 index 0000000..c0bd003 --- /dev/null +++ b/Client/Assets/Scripts/AI/CompositeNodeBase.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 60ed77d7b0d8475b915d95040d33bb34 +timeCreated: 1759058538 \ No newline at end of file diff --git a/Client/Assets/Scripts/AI/ConstantNode.cs b/Client/Assets/Scripts/AI/ConstantNode.cs new file mode 100644 index 0000000..3f3009d --- /dev/null +++ b/Client/Assets/Scripts/AI/ConstantNode.cs @@ -0,0 +1,45 @@ +namespace AI +{ + /// + /// 行为树叶节点:始终返回 Status.Success。 + /// + public class ConstantNode_Success : BehaviorTreeBase + { + /// + /// 执行节点逻辑,总是返回 Status.Success。 + /// + /// Status.Success + public override Status Tick() + { + return Status.Success; + } + } + /// + /// 行为树叶节点:始终返回 Status.Failure。 + /// + public class ConstantNode_Failure : BehaviorTreeBase + { + /// + /// 执行节点逻辑,总是返回 Status.Failure。 + /// + /// Status.Failure + public override Status Tick() + { + return Status.Failure; + } + } + /// + /// 行为树叶节点:始终返回 Status.Running。 + /// + public class ConstantNode_Running : BehaviorTreeBase + { + /// + /// 执行节点逻辑,总是返回 Status.Running。 + /// + /// Status.Running + public override Status Tick() + { + return Status.Running; + } + } +} \ No newline at end of file diff --git a/Client/Assets/Scripts/AI/ConstantNode.cs.meta b/Client/Assets/Scripts/AI/ConstantNode.cs.meta new file mode 100644 index 0000000..ac56f2b --- /dev/null +++ b/Client/Assets/Scripts/AI/ConstantNode.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: cdb3950442f3454db89d7f566a4c5404 +timeCreated: 1759059830 \ No newline at end of file diff --git a/Client/Assets/Scripts/AI/JobBase.cs b/Client/Assets/Scripts/AI/JobBase.cs deleted file mode 100644 index eb953ec..0000000 --- a/Client/Assets/Scripts/AI/JobBase.cs +++ /dev/null @@ -1,477 +0,0 @@ -using Data; -using Managers; -using UnityEngine; - -namespace AI -{ - public abstract class JobBase - { - public Entity.Entity entity; - protected int timeoutTicks = 180; - protected bool isCompleted = false; // 新增:表示工作是否已完成 - // Running 现在可以基于 isCompleted 来判断 - public bool Running => !isCompleted && timeoutTicks > 0; - public bool IsCompleted => isCompleted; // 新增:提供公共访问器 - protected abstract void UpdateJob(); - public virtual void StartJob(Entity.Entity target) - { - entity = target; - timeoutTicks = 180; // 重置超时,确保新工作开始时是活跃的 - isCompleted = false; // 开始新工作时,重置完成状态 - } - public bool Update() - { - if (IsCompleted) // 如果已经完成,直接返回false - return false; - if (!Running) // 如果因为超时而不再运行,则标记为完成 - { - StopJob(); // 确保完成状态被设置 - return false; - } - UpdateJob(); - timeoutTicks--; - return true; - } - public virtual void StopJob() - { - timeoutTicks = 0; - isCompleted = true; // 显式标记工作已完成 - } - // 可以添加一个方法来重置任务,以便它可以被重新使用 - public virtual void ResetJob() - { - timeoutTicks = 180; // 重置超时 - isCompleted = false; // 重置完成状态 - entity = null; // 清除关联实体 - } - } - - public class WanderJob : JobBase - { - public override void StartJob(Entity.Entity target) - { - base.StartJob(target); - Vector3 move = new(Random.Range(-10, 10), Random.Range(-10, 10)); - var targetPosition = entity.transform.position + move; - entity.SetTarget(targetPosition); - } - - protected override void UpdateJob() - { - entity.TryMove(); - } - - override public void StopJob() - { - base.StopJob(); - } - - } - - public class IdleJob : JobBase - { - override public void StartJob(Entity.Entity target) - { - base.StartJob(target); - timeoutTicks = 500; - } - - protected override void UpdateJob() - { - } - } - - public class MoveJob : JobBase - { - protected override void UpdateJob() - { - entity.TryMove(); - } - } - - public class AttackJob : JobBase - { - private Entity.Entity attackTarget; - - // StartJob 方法:用于初始化任务,寻找初始攻击目标 - override public void StartJob(Entity.Entity performerEntityContext) // 参数名更明确,通常是发起任务的实体 - { - base.StartJob(performerEntityContext); - // 1. 任务执行者自身有效性检查 - if (!entity) - { - StopJob(); // 调用StopJob来结束任务 - return; - } - - attackTarget = FindNewHostileTarget(); - - if (!attackTarget) - { - StopJob(); // 调用StopJob来结束任务 - } - } - - protected override void UpdateJob() - { - // 1. 任务执行者的基本检查 - if (!entity || entity.IsDead) - { - StopJob(); - return; - } - - if (!attackTarget || attackTarget.IsDead) - { - attackTarget = FindNewHostileTarget(); // 尝试寻找新的攻击目标 - if (!attackTarget) - { - StopJob(); - return; - } - } - - var weapon = entity.GetCurrentWeapon(); - var attackRange = 0f; - if (weapon != null) - { - attackRange = weapon.Attributes.attackRange; - } - - var distanceSq = (entity.Position - attackTarget.Position).sqrMagnitude; - var effectiveAttackRangeSq = attackRange * attackRange; // 将攻击范围也平方 - - entity.SetTarget(attackTarget.Position); - - if (weapon != null && distanceSq <= effectiveAttackRangeSq) - { - entity.TryAttack(); - - } - else - { - entity.TryMove(); - } - } - - /// - /// 查找执行实体最近的敌对目标。 - /// - /// 找到的敌对实体,如果没有则返回null。 - private Entity.Entity FindNewHostileTarget() - { - if (!entity) return null; - return EntityManager.Instance.FindNearestEntityByRelation( - entity.currentDimensionId, // 搜索维度ID - entity.entityPrefab, // 执行实体的Prefab ID,用于关系判断 - Relation.Hostile)?.entity; // 寻找敌对关系的目标 - } - } - - public class AdvancedAttackJob : JobBase - { - private Entity.Entity attackTarget; - - // 常量:用于配置远程AI行为的风筝参数 - private const float KITING_THRESHOLD_MULTIPLIER = 0.5f; // 当目标距离小于 (攻击范围 * 此乘数) 时,远程单位开始尝试远离 - - private const float KITING_BUFFER_DISTANCE = 5.0f; // 当远程单位远离时,目标点会是当前位置向反方向偏移此距离 - - // StartJob 方法:用于初始化任务,寻找初始攻击目标 - override public void StartJob(Entity.Entity performerEntityContext) - { - base.StartJob(performerEntityContext); - if (entity == null) - { - StopJob(); - return; - } - - attackTarget = FindNewHostileTarget(); - if (attackTarget == null) - { - StopJob(); - } - } - - protected override void UpdateJob() - { - // 1. 任务执行者的基本检查 - if (entity == null || entity.IsDead) - { - StopJob(); - return; - } - - // 2. 攻击目标检查 - if (attackTarget == null || attackTarget.IsDead) - { - attackTarget = FindNewHostileTarget(); // 尝试寻找新的攻击目标 - if (attackTarget == null) - { - StopJob(); - return; - } - } - - // 获取武器和其属性 - var weapon = entity.GetCurrentWeapon(); - var attackRange = 0f; - var isRangedWeapon = false; // 标识是否为远程武器 - if (weapon != null) - { - if (weapon.Attributes != null) - { - attackRange = weapon.Attributes.attackRange; - } - - // 使用 WeaponType 来判断武器类型,更明确 - isRangedWeapon = weapon.Type == WeaponType.Ranged; - } - - var distanceSq = (entity.Position - attackTarget.Position).sqrMagnitude; - var effectiveAttackRangeSq = attackRange * attackRange; // 将攻击范围平方 - // ---- 核心AI行为决策 ( AdvancedAttackJob 的智能之处) ---- - if (isRangedWeapon) - { - // 远程单位的风筝(Kiting)逻辑 - var kitingDistance = attackRange * KITING_THRESHOLD_MULTIPLIER; - var kitingThresholdSq = kitingDistance * kitingDistance; // 过近距离的平方 - // 1. 如果目标过于接近 (小于风筝阈值),尝试远离 - if (distanceSq < kitingThresholdSq) - { - // 计算一个远离目标的点作为移动目标 - var directionAway = (entity.Position - attackTarget.Position).normalized; - var fleePosition = entity.Position + directionAway * KITING_BUFFER_DISTANCE; - entity.SetTarget(fleePosition); // 设置远离点为新的移动目标 - entity.TryMove(); // 优先执行移动操作以拉开距离 - // 在此状态下不进行攻击,专注于 reposition - } - // 2. 如果目标在最佳攻击范围内 (即在风筝阈值和有效攻击范围之间),则停止移动并攻击 - else if (distanceSq <= effectiveAttackRangeSq) - { - entity.SetTarget(entity.Position); // 设定目标为当前位置,使其停止移动,专注于攻击 - entity.TryAttack(); - } - // 3. 如果目标太远 (超出有效攻击范围),则移动靠近目标 - else - { - entity.SetTarget(attackTarget.Position); // 设置目标位置为移动目标 - entity.TryMove(); - } - } - else // 近战单位或没有武器的单位 - { - entity.SetTarget(attackTarget.Position); - if (weapon != null && distanceSq <= effectiveAttackRangeSq) - { - entity.TryAttack(); - } - else - { - entity.TryMove(); - } - } - } - - /// - /// 查找执行实体最近的敌对目标。 - /// - /// 找到的敌对实体,如果没有则返回null。 - private Entity.Entity FindNewHostileTarget() - { - if (!entity) return null; - return EntityManager.Instance.FindNearestEntityByRelation( - entity.currentDimensionId, - entity.entityPrefab, - Relation.Hostile)?.entity; - } - } - - public class FleeJob : JobBase - { - // 逃跑时,在远离方向上设置的目标点偏移距离。让AI尝试跑向更远的点。 - private const float FLEE_BUFFER_DISTANCE = 10.0f; - - // 远程单位在逃跑时,如果敌人距离已超出其攻击范围的多少倍,可以认为已经足够安全。 - // 此时实体将停止紧急移动,可以等待timeoutTicks结束或进行其他决策。 - private const float RANGED_SAFE_DISTANCE_MULTIPLIER = 2.0f; - - // 对于近战或无武器单位,敌人必须在这个距离内,才触发紧急逃跑。 - // 超过这个距离,实体可能认为已经足够安全,可以停止紧急移动。 - private const float MELEE_PERIL_DISTANCE = 15.0f; - - private const float MELEE_PERIL_DISTANCE_SQUARED = MELEE_PERIL_DISTANCE * MELEE_PERIL_DISTANCE; - - // **新增**:目标刷新间隔 (以Ticks计) - private const int TARGET_REFRESH_INTERVAL_TICKS = 30; // 每30帧(Ticks)刷新一次目标 - - // **新增**:缓存的敌对目标,避免频繁调用FindNearestHostileTarget - private Entity.Entity _cachedHostileTarget; - - // **新增**:目标刷新计时器 - private int _targetRefreshTimer; - - // **新增**:侧走参数 (用于躲避远程攻击) - private const float EVASION_SIDE_STEP_STRENGTH = 0.5f; // 侧走分量强度,与主方向叠加,需要调整 - private int _sideStepDirection = 1; // 1 for right, -1 for left - private int _sideStepTimer; - private const int EVASION_SIDE_STEP_INTERVAL_TICKS = 20; // 每20帧切换一次侧走方向 - - public FleeJob(int initialTimeoutTicks = 150) - { - timeoutTicks = initialTimeoutTicks; - _targetRefreshTimer = 0; // 初始化计时器,让第一次UpdateJob立即刷新目标 - _sideStepTimer = 0; - _sideStepDirection = Random.Range(0, 2) * 2 - 1; // 随机初始化左右方向 - } - - public override void StartJob(Entity.Entity performerEntityContext) - { - base.StartJob(performerEntityContext); - _cachedHostileTarget = null; // 任务开始时清空缓存,确保第一次更新会查找新目标 - _targetRefreshTimer = 0; // 确保立即查找目标 - _sideStepTimer = 0; - _sideStepDirection = Random.Range(0, 2) * 2 - 1; // 随机初始化左右方向 - } - - protected override void UpdateJob() - { - // 1. 任务执行者的基本检查 - if (!entity || entity.IsDead) - { - StopJob(); - return; - } - - // 2. 目标刷新逻辑 (避免每帧都调用FindNearestHostileTarget) - _targetRefreshTimer--; - if (!_cachedHostileTarget || _cachedHostileTarget.IsDead || _targetRefreshTimer <= 0) - { - _cachedHostileTarget = FindNearestHostileTarget(); - _targetRefreshTimer = TARGET_REFRESH_INTERVAL_TICKS; // 重置计时器 - } - - // 使用缓存的目标 - var hostileTarget = _cachedHostileTarget; - if (!hostileTarget) - { - // 如果没有敌对目标可逃跑,则停止此工作。 - StopJob(); - return; - } - - // 3. 计算与敌对目标的距离 - var distanceSq = (entity.Position - hostileTarget.Position).sqrMagnitude; - // 4. 获取敌方目标武器信息,判断敌方是否为远程单位 - var enemyWeapon = hostileTarget.GetCurrentWeapon(); - var isEnemyRanged = enemyWeapon is { Type: WeaponType.Ranged }; - - // 获取自己的武器信息 (虽然逃跑主要看敌方武器,但自身安全距离判断需要) - var selfWeapon = entity.GetCurrentWeapon(); - var isSelfRanged = selfWeapon is { Type: WeaponType.Ranged }; - // 5. 计算一个远离目标的基础方向 - var directionAway = (entity.Position - hostileTarget.Position).normalized; - var moveTargetDirection = directionAway; // 默认是纯远离方向 - // 6. 如果敌方是远程单位,叠加侧走逻辑 - if (isEnemyRanged) - { - _sideStepTimer--; - if (_sideStepTimer <= 0) - { - _sideStepDirection *= -1; // 切换侧走方向 (左或右) - _sideStepTimer = EVASION_SIDE_STEP_INTERVAL_TICKS; - } - - // 计算侧走方向 (在X-Z平面上垂直于远离方向) - var perpendicularDirection = GetPerpendicularVectorXZ(directionAway) * _sideStepDirection; - // 侧走策略:在远离方向上叠加一个侧走分量 - // 让侧走分量与远离分量结合,形成一个弧线或斜向移动 - moveTargetDirection = (directionAway * (1 - EVASION_SIDE_STEP_STRENGTH) + - perpendicularDirection * EVASION_SIDE_STEP_STRENGTH).normalized; - // 或者更简单地:moveTargetDirection = (directionAway + perpendicularDirection * EVASION_SIDE_STEP_STRENGTH).normalized; - // 需要根据实际效果调整EVASION_SIDE_STEP_STRENGTH的数值和结合方式。 - } - - // 7. 确定最终移动目标点 - var fleePosition = entity.Position + moveTargetDirection * FLEE_BUFFER_DISTANCE; - // 8. 结合自己的武器类型,决定何时停止紧急移动 (和之前的逻辑类似) - if (isSelfRanged) - { - var selfAttackRange = 0f; - if (selfWeapon != null && selfWeapon.Attributes != null) - { - selfAttackRange = selfWeapon.Attributes.attackRange; - } - - var safeDistanceSq = (selfAttackRange * RANGED_SAFE_DISTANCE_MULTIPLIER) * - (selfAttackRange * RANGED_SAFE_DISTANCE_MULTIPLIER); - // 如果目标在“安全距离”内,则实体需要继续远离 - if (distanceSq < safeDistanceSq) - { - entity.SetTarget(fleePosition); - entity.TryMove(); - } - else - { - // 已经达到足够的安全距离,此时实体可以停止紧急移动。 - // FleeJob会继续运行,直到timeoutTicks耗尽,给予一定的缓冲时间。 - entity.SetTarget(entity.Position); // 设定目标为当前位置,使其停止移动 - } - } - else // 自己是近战单位或没有武器 - { - // 只要目标在“危险距离”内,就一直向外逃跑 - if (distanceSq < MELEE_PERIL_DISTANCE_SQUARED) - { - entity.SetTarget(fleePosition); - entity.TryMove(); - } - else - { - // 已经拉开足够远的距离,停止紧急逃跑. - // 同样,FleeJob会继续运行,直到timeoutTicks耗尽。 - entity.SetTarget(entity.Position); // 设定目标为当前位置,使其停止移动 - } - } - } - - override public void StopJob() - { - base.StopJob(); - if (entity != null) - { - entity.SetTarget(entity.Position); // 确保实体停止任何正在进行的逃跑移动 - } - - _cachedHostileTarget = null; // 清除缓存目标,以便下次StartJob时重新查找 - } - - /// - /// 查找执行实体最近的敌对目标。此方法可能耗时,应避免频繁调用。 - /// - /// 找到的敌对实体,如果没有则返回null。 - private Entity.Entity FindNearestHostileTarget() - { - if (entity == null) return null; - return EntityManager.Instance.FindNearestEntityByRelation( - entity.currentDimensionId, // 搜索维度ID - entity.entityPrefab, // 执行实体的Prefab ID,用于关系判断 - Relation.Hostile)?.entity; // 寻找敌对关系的目标 - } - - /// - /// 获取给定向量在X-Z平面上的垂直向量。 - /// 假定Y轴是世界向上方向。 - /// - /// 原始方向向量。 - /// 在X-Z平面上垂直于原始向量的向量(顺时针旋转90度)。 - private Vector3 GetPerpendicularVectorXZ(Vector3 direction) - { - // 创建一个只保留XZ分量的向量 - var flatDirection = new Vector3(direction.x, 0, direction.z).normalized; - // 顺时针旋转90度 (x,z) => (z,-x) - return new Vector3(flatDirection.z, 0, -flatDirection.x); - } - } -} \ No newline at end of file diff --git a/Client/Assets/Scripts/AI/JobBase.cs.meta b/Client/Assets/Scripts/AI/JobBase.cs.meta deleted file mode 100644 index 03a4ed9..0000000 --- a/Client/Assets/Scripts/AI/JobBase.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: d2497fdaa11d3554287c58d696dab7e9 \ No newline at end of file diff --git a/Client/Assets/Scripts/AI/JobGiver.cs b/Client/Assets/Scripts/AI/JobGiver.cs deleted file mode 100644 index e8d6a5b..0000000 --- a/Client/Assets/Scripts/AI/JobGiver.cs +++ /dev/null @@ -1,49 +0,0 @@ -namespace AI -{ - public class JobGiver_ContinuousMove : AIBase - { - public override JobBase GetJob(Entity.Entity target) - { - return new MoveJob(); - } - } - - - public class JobGiver_RandomWander : AIBase - { - public override JobBase GetJob(Entity.Entity target) - { - return new WanderJob(); - } - } - public class JobGiver_Idel : AIBase - { - public override JobBase GetJob(Entity.Entity target) - { - return new IdleJob(); - } - } - - public class JobGiver_AttackJob : AIBase - { - public override JobBase GetJob(Entity.Entity target) - { - return Managers.EntityManager.Instance.ExistsHostile(target.currentDimensionId, target.entityPrefab) ? new AttackJob() : null; - } - } - public class JobGiver_AdvancedAttackJob : AIBase - { - public override JobBase GetJob(Entity.Entity target) - { - return Managers.EntityManager.Instance.ExistsHostile(target.currentDimensionId, target.entityPrefab) ? new AdvancedAttackJob() : null; - } - } - - public class JobGiver_FleeJob : AIBase - { - public override JobBase GetJob(Entity.Entity target) - { - return new FleeJob(); - } - } -} \ No newline at end of file diff --git a/Client/Assets/Scripts/AI/JobGiver.cs.meta b/Client/Assets/Scripts/AI/JobGiver.cs.meta deleted file mode 100644 index db1aded..0000000 --- a/Client/Assets/Scripts/AI/JobGiver.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 30648f750dce43e493f5e94cb735988c -timeCreated: 1754974329 \ No newline at end of file diff --git a/Client/Assets/Scripts/AI/JobNode_AttackTarget.cs b/Client/Assets/Scripts/AI/JobNode_AttackTarget.cs new file mode 100644 index 0000000..eb7d368 --- /dev/null +++ b/Client/Assets/Scripts/AI/JobNode_AttackTarget.cs @@ -0,0 +1,63 @@ +using Data; +using Managers; + +namespace AI +{ + /// + /// AI行为树叶子节点:让 SelfEntity 向最近的敌对实体攻击一次。 + /// + public class JobNode_AttackTarget : LeafNodeBase + { + private Entity.Entity _targetHostileEntity; // 目标敌对实体 + + /// + /// 执行攻击最近敌对目标的逻辑。 + /// + /// 行为树节点状态。 + protected override Status ExecuteLeafLogic() + { + // 如果没有当前目标,或者当前目标已无效(null或死亡),则需要重新寻找目标 + if (!_targetHostileEntity || _targetHostileEntity.IsDead) + { + // 1. 寻找最近的敌对实体 + var hostileEntityRecord = EntityManager.Instance.FindNearestEntityByRelation( + SelfEntity.currentDimensionId, + SelfEntity.entityPrefab, + Relation.Hostile); + // 如果没有找到敌对目标,任务失败 + if (!hostileEntityRecord || !hostileEntityRecord.entity) + { + // Debug.Log($"[{SelfEntity.entityDef.defName}] 行为节点<攻击目标>: 未找到敌对目标。"); + return Status.Failure; // 没有敌人可攻击 + } + + _targetHostileEntity = hostileEntityRecord.entity; + } + + // 确保找到的目标仍然有效 + if (!_targetHostileEntity || _targetHostileEntity.IsDead) + { + // 如果在找到后立即目标死亡(极小概率),或者某种原因导致目标失效,也视为失败 + // Debug.Log($"[{SelfEntity.entityDef.defName}] 行为节点<攻击目标>: 目标 [{_targetHostileEntity?.entityDef?.defName ?? "未知"}] 在验证时无效。"); + _targetHostileEntity = null; // 清除无效目标 + return Status.Failure; + } + + // 2. 设置攻击方向 + // 攻击方向是从 SelfEntity 指向目标实体 + SelfEntity.attackDirection = _targetHostileEntity.Position - SelfEntity.Position; + // 3. 尝试攻击 + var attackInitiated = SelfEntity.TryAttack(); + return attackInitiated ? Status.Success : Status.Failure; + } + + /// + /// 重置此攻击节点的所有内部状态。 + /// + public override void Reset() + { + base.Reset(); // 调用基类的 Reset + _targetHostileEntity = null; // 清除目标 + } + } +} \ No newline at end of file diff --git a/Client/Assets/Scripts/AI/JobNode_AttackTarget.cs.meta b/Client/Assets/Scripts/AI/JobNode_AttackTarget.cs.meta new file mode 100644 index 0000000..6cf93b5 --- /dev/null +++ b/Client/Assets/Scripts/AI/JobNode_AttackTarget.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 1e60188f6bce4388b2b5b096c264c61c +timeCreated: 1759412540 \ No newline at end of file diff --git a/Client/Assets/Scripts/AI/JobNode_Idle.cs b/Client/Assets/Scripts/AI/JobNode_Idle.cs new file mode 100644 index 0000000..9a9c90f --- /dev/null +++ b/Client/Assets/Scripts/AI/JobNode_Idle.cs @@ -0,0 +1,23 @@ +using Data; + +namespace AI +{ + public class JobNode_Idle:LeafNodeBase + { + protected override Status ExecuteLeafLogic() + { + return RemainingFrames == 0 ? Status.Success : Status.Running; + } + + public override void Init(BehaviorTreeDef def, Entity.Entity selfEntity) + { + base.Init(def, selfEntity); + if (string.IsNullOrEmpty(def.value)) return; + if (int.TryParse(def.value, out var result)) + { + TimeoutFrames=result; + } + + } + } +} \ No newline at end of file diff --git a/Client/Assets/Scripts/AI/JobNode_Idle.cs.meta b/Client/Assets/Scripts/AI/JobNode_Idle.cs.meta new file mode 100644 index 0000000..1b5333a --- /dev/null +++ b/Client/Assets/Scripts/AI/JobNode_Idle.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 491d56d0c0404b349f88cbcfffb37da7 +timeCreated: 1759076237 \ No newline at end of file diff --git a/Client/Assets/Scripts/AI/JobNode_MoveToAttackRange.cs b/Client/Assets/Scripts/AI/JobNode_MoveToAttackRange.cs new file mode 100644 index 0000000..0c45b56 --- /dev/null +++ b/Client/Assets/Scripts/AI/JobNode_MoveToAttackRange.cs @@ -0,0 +1,109 @@ +using Data; +using Managers; +using UnityEngine; + +namespace AI +{ + public class JobNode_MoveToAttackRange : LeafNodeBase + { + private Entity.Entity _targetHostileEntity; // 目标敌对实体 + private Vector3 _targetMovePosition; // 目标移动位置 + private bool _isPathSet; // 指示当前是否已设置路径 + private Vector3 _lastKnownSelfPosition; // 上次已知自身位置 + + private int _stuckFrameCount; // 卡住帧计数 + + // 卡住检测的常量 + private const int MAX_STUCK_FRAMES = 10; // 实体在多少帧内没有显著移动,则认为卡住 + private const float STUCK_POSITION_THRESHOLD_SQ = 0.001f; // 位置变化的平方距离阈值 + + // 便利属性,获取实体的攻击范围 + private float AttackRange => SelfEntity.AttributesNow.attackRange; + + /// + /// 执行移动到攻击范围的逻辑。 + /// + /// 行为树节点状态。 + protected override Status ExecuteLeafLogic() + { + // 如果路径尚未设置,或目标实体无效(null或死亡),则需要重新寻找目标并设置路径 + if (!_isPathSet || !_targetHostileEntity || _targetHostileEntity.IsDead) + { + // 1. 寻找最近的敌对实体 + var hostileEntityRecord = EntityManager.Instance.FindNearestEntityByRelation( + SelfEntity.currentDimensionId, + SelfEntity.entityPrefab, + Relation.Hostile); + + // 如果没有找到敌对目标,任务失败 + if (!hostileEntityRecord || !hostileEntityRecord.entity) + { + return Status.Failure; + } + + _targetHostileEntity = hostileEntityRecord.entity; + + // 2. 计算目标移动点(在敌对目标的攻击距离边缘) + // 目标点是:从敌对实体指向 SelfEntity 的向量方向上,距离敌对实体 AttackRange 远的点。 + // 这样做是为了让 SelfEntity 停在敌对实体攻击范围内,而不是直接重叠。 + Vector3 directionToSelf = (SelfEntity.Position - _targetHostileEntity.Position).normalized; + _targetMovePosition = _targetHostileEntity.Position + directionToSelf * AttackRange; + + // 3. 通知 SelfEntity 设置路径目标 + SelfEntity.SetTarget(_targetMovePosition); + _isPathSet = true; + _lastKnownSelfPosition = SelfEntity.Position; // 初始化上次已知位置,用于卡住检测 + _stuckFrameCount = 0; // 重置卡住计数器 + return Status.Running; // 路径已设置,开始移动 + } + + // 路径已设置,继续管理移动和卡住检测 + // 4. 检查是否已到达目标点 + if (SelfEntity.OnTargetPoint) + { + return Status.Success; // 成功移动到攻击范围 + } + + // 5. 卡住检测 + // 计算当前位置与上次已知位置的平方距离,避免开方运算,提高性能 + float currentPositionChangeSq = (SelfEntity.Position - _lastKnownSelfPosition).sqrMagnitude; + if (currentPositionChangeSq < STUCK_POSITION_THRESHOLD_SQ) + { + _stuckFrameCount++; + if (_stuckFrameCount >= MAX_STUCK_FRAMES) + { + // 实体长时间未移动,被判定为卡住,需要重新规划路径 + Debug.LogWarning( + $"[{SelfEntity.entityDef.defName}] 行为节点<移动到攻击范围>: 实体卡住了! 重新计算到目标 [{_targetHostileEntity.entityDef.defName}] 的路径。"); + _isPathSet = false; // 重置此标志,在下一帧会触发重新寻找目标和设置路径 + return Status.Running; // 尽管卡住,但节点仍然在尝试完成任务 + } + } + else + { + // 实体有移动,重置卡住计数器 + _stuckFrameCount = 0; + } + + // 更新上次已知位置 + _lastKnownSelfPosition = SelfEntity.Position; + + // 6. 持续移动 + SelfEntity.TryMove(); + return Status.Running; // 正在向目标移动 + } + + /// + /// 重置此移动节点的所有内部状态。 + /// + public override void Reset() + { + base.Reset(); // 调用基类的 Reset,重置 CurrentStatus 和 _elapsedFrames + _targetHostileEntity = null; + _targetMovePosition = Vector3.zero; + _isPathSet = false; + _lastKnownSelfPosition = Vector3.zero; + _stuckFrameCount = 0; + } + } +} diff --git a/Client/Assets/Scripts/AI/JobNode_MoveToAttackRange.cs.meta b/Client/Assets/Scripts/AI/JobNode_MoveToAttackRange.cs.meta new file mode 100644 index 0000000..e02e1fc --- /dev/null +++ b/Client/Assets/Scripts/AI/JobNode_MoveToAttackRange.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: ee95e8f250364dafb2e7d7af55f30123 +timeCreated: 1759411138 \ No newline at end of file diff --git a/Client/Assets/Scripts/AI/JobNode_Wander.cs b/Client/Assets/Scripts/AI/JobNode_Wander.cs new file mode 100644 index 0000000..8ec7b53 --- /dev/null +++ b/Client/Assets/Scripts/AI/JobNode_Wander.cs @@ -0,0 +1,120 @@ +using Data; +using UnityEngine; + +namespace AI +{ + public class JobNode_Wander : LeafNodeBase + { + private float _wanderRange = 10f; // 徘徊的最大范围 + private float _minWanderDistance = 2f; // 随机目标点距离当前位置的最小距离,避免原地踏步 + private int _maxTargetSearchAttempts = 20; // 寻找可达目标点的最大尝试次数 + private float _positionCheckThreshold = 0.001f; // 检测是否卡住的距离阈值 + + private const int _maxStuckFrames = 5; // 超过此帧数认为卡住 + + private Vector3 _wanderTargetPosition; // 当前徘徊的目标点 + private Vector3 _lastPosition; // 上一帧的实体位置 + private int _stuckFrameCount; // 累计在同一位置的帧数 + + + /// + /// 核心业务逻辑,用于执行随机徘徊。 + /// LeafNodeBase 会在计时器管理后调用此方法。 + /// + /// 节点的执行状态(Running, Success, Failure)。 + protected override Status ExecuteLeafLogic() + { + // 如果没有目标点,尝试寻找一个 + if (_wanderTargetPosition == Vector3.zero) // Vector3.zero 作为未设置目标的标志 + { + if (!FindRandomWanderTarget()) + { + // 无法找到有效目标点,判定为失败 + Debug.LogError( + $"实体 {SelfEntity.currentDimensionId} 在 {_wanderRange} 范围内尝试 {_maxTargetSearchAttempts} 次后未能找到徘徊目标。"); + return Status.Failure; + } + + // 找到目标后,设置初始上一帧位置,并重置卡住计数 + _lastPosition = SelfEntity.Position; + _stuckFrameCount = 0; + } + + // 尝试沿着路径移动 + SelfEntity.TryMove(); + // 检查是否到达目标点 + if (SelfEntity.OnTargetPoint) + { + return Status.Success; + } + + // 检查是否卡住 + var currentPosition = SelfEntity.Position; + // 使用 SqrMagnitude 比 Distance 略快,因为它避免了开方根运算 + if (Vector3.SqrMagnitude(currentPosition - _lastPosition) < + _positionCheckThreshold * _positionCheckThreshold) + { + _stuckFrameCount++; + if (_stuckFrameCount > _maxStuckFrames) + { + Debug.LogWarning( + $"实体 {SelfEntity.currentDimensionId} 在 {currentPosition} 卡住 {_stuckFrameCount} 帧。当前目标: {_wanderTargetPosition}"); + return Status.Failure; // 卡住,返回失败 + } + } + else + { + _stuckFrameCount = 0; // 位置发生变化,重置卡住计数 + _lastPosition = currentPosition; + } + + // 既未成功也未失败,继续运行 + return Status.Running; + } + + /// + /// 寻找一个随机且可达的徘徊目标点。 + /// + /// 如果成功找到并设置目标点,则返回true;否则返回false。 + private bool FindRandomWanderTarget() + { + var currentEntityPosition = SelfEntity.Position; + var currentDimensionId = SelfEntity.currentDimensionId; + for (var i = 0; i < _maxTargetSearchAttempts; i++) + { + // 生成相对当前位置的随机偏移 + var randomOffset = Random.insideUnitCircle * _wanderRange; + var potentialTarget = + currentEntityPosition + new Vector3(randomOffset.x, randomOffset.y, 0); // 假定2D平面,Z轴不变 + // 确保新目标点与当前位置有足够的距离 + if (Vector3.Distance(potentialTarget, currentEntityPosition) < _minWanderDistance) + { + continue; // 距离太近,重试 + } + + // 检查目标点的可达性 + var travelCost = Program.Instance.GetDimension(currentDimensionId).landform + .GetTravelCost(potentialTarget); + if (travelCost < 1.0f) // 小于1表示可达 + { + _wanderTargetPosition = potentialTarget; + SelfEntity.SetTarget(_wanderTargetPosition); + return true; + } + } + + return false; // 达到最大尝试次数仍未找到有效目标 + } + + /// + /// 重置叶节点的状态,包括基类状态和内部计时器。 + /// + public override void Reset() + { + base.Reset(); // 调用基类的Reset方法,将CurrentStatus设为Ready并重置_elapsedFrames + _wanderTargetPosition = Vector3.zero; // 重置目标点 + _lastPosition = Vector3.zero; // 重置上一帧位置 + _stuckFrameCount = 0; // 重置卡住计数 + } + } +} diff --git a/Client/Assets/Scripts/AI/JobNode_Wander.cs.meta b/Client/Assets/Scripts/AI/JobNode_Wander.cs.meta new file mode 100644 index 0000000..dcfe1e3 --- /dev/null +++ b/Client/Assets/Scripts/AI/JobNode_Wander.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 50e73e1612a44e15a3899f586a308450 +timeCreated: 1759228892 \ No newline at end of file diff --git a/Client/Assets/Scripts/AI/LeafNodeBase.cs b/Client/Assets/Scripts/AI/LeafNodeBase.cs new file mode 100644 index 0000000..69e8730 --- /dev/null +++ b/Client/Assets/Scripts/AI/LeafNodeBase.cs @@ -0,0 +1,76 @@ +using System; + +namespace AI +{ + public abstract class LeafNodeBase : BehaviorTreeBase + { + // 已经运行的帧数 + protected int _elapsedFrames; + // 默认超时帧数 + protected int _timeoutFrames = 180; + + /// + /// 获取或设置该叶节点的超时帧数。确保超时帧数至少为1。 + /// + public int TimeoutFrames + { + get => _timeoutFrames; + set => _timeoutFrames = Math.Max(1, value); + } + + // 剩余帧数 + public int RemainingFrames => TimeoutFrames - _elapsedFrames; + + /// + /// 抽象方法,由具体的叶节点实现其核心业务逻辑。 + /// 会在计时器管理后调用此方法。 + /// + /// 节点的执行状态(Running, Success, Failure)。 + protected abstract Status ExecuteLeafLogic(); + + /// + /// 的 Tick 方法,包含了计时器和状态管理逻辑。 + /// 此方法被密封,子类应实现 而不是重写 Tick。 + /// + public sealed override Status Tick() + { + if (CurrentStatus == Status.Ready) + { + CurrentStatus = Status.Running; + _elapsedFrames = 0; + } + + if (CurrentStatus == Status.Running) + { + _elapsedFrames++; + + if (_elapsedFrames > _timeoutFrames) + { + CurrentStatus = Status.Failure; + Reset(); + return Status.Failure; + } + + var logicResult = ExecuteLeafLogic(); + + if (logicResult != Status.Running) + { + CurrentStatus = logicResult; + Reset(); + } + return logicResult; + } + + return CurrentStatus; + } + + /// + /// 重置叶节点的状态,包括基类状态和内部计时器。 + /// + public override void Reset() + { + base.Reset(); + _elapsedFrames = 0; + } + } +} diff --git a/Client/Assets/Scripts/AI/LeafNodeBase.cs.meta b/Client/Assets/Scripts/AI/LeafNodeBase.cs.meta new file mode 100644 index 0000000..372af30 --- /dev/null +++ b/Client/Assets/Scripts/AI/LeafNodeBase.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: ed23d197e8fe4e34b317c9828589338a +timeCreated: 1759058958 \ No newline at end of file diff --git a/Client/Assets/Scripts/Base/Clock.cs b/Client/Assets/Scripts/Base/Clock.cs index b60f047..f32a1e1 100644 --- a/Client/Assets/Scripts/Base/Clock.cs +++ b/Client/Assets/Scripts/Base/Clock.cs @@ -35,7 +35,9 @@ namespace Base /// public class Clock : MonoSingleton { + // 游戏是否暂停 private bool _pause; + /// /// 获取或设置游戏的暂停状态。当设置为true时,Time.timeScale将变为0;当设置为false时,Time.timeScale将恢复为1。 /// 该操作会检查当前状态,避免重复设置Time.timeScale。 @@ -54,65 +56,96 @@ namespace Base } } - /// - /// 存储所有需要在常规Update中执行Tick逻辑的对象。使用HashSet确保唯一性并提高查找效率。 - /// + // 存储所有需要在常规Update中执行Tick逻辑的对象 private readonly HashSet _ticks = new(); - /// - /// 存储所有需要在FixedUpdate中执行物理Tick逻辑的对象。使用HashSet确保唯一性并提高查找效率。 - /// + // 存储所有需要在FixedUpdate中执行物理Tick逻辑的对象 private readonly HashSet _tickPhysics = new(); - /// - /// 存储所有需要在常规Update中执行UI Tick逻辑的对象。使用HashSet确保唯一性并提高查找效率。 - /// + // 存储所有需要在常规Update中执行UI Tick逻辑的对象 private readonly HashSet _tickUIs = new(); - /// - /// 待添加的ITick对象缓冲区。在LateUpdate中统一处理,以避免在迭代主列表时修改列表。 - /// + // 待添加的ITick对象缓冲区 private readonly HashSet _ticksToAdd = new(); - /// - /// 待添加的ITickPhysics对象缓冲区。在LateUpdate中统一处理。 - /// + // 待添加的ITickPhysics对象缓冲区 private readonly HashSet _tickPhysicsToAdd = new(); - /// - /// 待添加的ITickUI对象缓冲区。在LateUpdate中统一处理。 - /// + // 待添加的ITickUI对象缓冲区 private readonly HashSet _tickUIsToAdd = new(); - /// - /// 待移除的ITick对象缓冲区。在LateUpdate中统一处理,以避免在迭代主列表时修改列表。 - /// + // 待移除的ITick对象缓冲区 private readonly HashSet _ticksToRemove = new(); - /// - /// 待移除的ITickPhysics对象缓冲区。在LateUpdate中统一处理。 - /// + // 待移除的ITickPhysics对象缓冲区 private readonly HashSet _tickPhysicsToRemove = new(); - /// - /// 待移除的ITickUI对象缓冲区。在LateUpdate中统一处理。 - /// + // 待移除的ITickUI对象缓冲区 private readonly HashSet _tickUIsToRemove = new(); + + /// + /// 在单例首次创建时调用。 + /// + protected override void OnStart() + { + SceneManager.sceneLoaded += OnSceneLoadedCallback; + } + + /// + /// 在Clock组件被销毁时调用。 + /// 取消订阅场景加载事件并清理所有内部Tick列表。 + /// + protected void OnDestroy() + { + SceneManager.sceneLoaded -= OnSceneLoadedCallback; + ClearAllTicksInternal(false); + } + /// + /// 场景加载完成时的回调方法。 + /// 用于在加载新场景后清理所有Tick列表并重置游戏暂停状态。 + /// + /// 被加载的场景。 + /// 场景加载模式。 + private void OnSceneLoadedCallback(Scene scene, LoadSceneMode mode) + { + ClearAllTicksInternal(true); + } + + /// + /// 每帧更新方法。 + /// 如果游戏未暂停,则执行所有注册的ITick对象的Tick方法; + /// 执行所有注册的ITickUI对象的TickUI方法(UI通常不受暂停影响)。 + /// private void Update() { // 如果游戏未暂停,则执行常规的Tick更新。 if (!_pause) { - // 迭代主列表,确保_ticks在Update生命周期内不会被Add/Remove直接修改。 - // 添加和移除操作通过缓冲区在LateUpdate处理。 foreach (var tick in _ticks) { - tick.Tick(); + try + { + tick.Tick(); + } + catch (System.Exception e) + { + Debug.LogError($"[Clock] ITick对象 '{tick.GetType().Name}' 在Tick()执行期间抛出异常: {e}"); + } } } // UI更新通常不受游戏暂停影响(例如菜单动画、UI计时器等)。 - // 这是当前的默认设计,如果需要UI也暂停,则需修改此处逻辑或引入单独的UI暂停状态。 foreach (var uiTick in _tickUIs) { - uiTick.TickUI(); + try + { + uiTick.TickUI(); + } + catch (System.Exception e) + { + Debug.LogError($"[Clock] ITickUI对象 '{uiTick.GetType().Name}' 在TickUI()执行期间抛出异常: {e}"); + } } } + /// + /// 每固定帧更新方法。 + /// 如果游戏未暂停,则执行所有注册的ITickPhysics对象的TickPhysics方法。 + /// private void FixedUpdate() { // 如果游戏未暂停,则执行物理Tick更新。 @@ -120,7 +153,14 @@ namespace Base { foreach (var physicsTick in _tickPhysics) { - physicsTick.TickPhysics(); + try + { + physicsTick.TickPhysics(); + } + catch (System.Exception e) + { + Debug.LogError($"[Clock] ITickPhysics对象 '{physicsTick.GetType().Name}' 在TickPhysics()执行期间抛出异常: {e}"); + } } } } @@ -132,22 +172,6 @@ namespace Base { ApplyBufferedChanges(); } - - - /// - /// 单例的初始化方法,在Clock实例的生命周期开始时调用(Unity的Awake后)。 - /// 订阅场景加载事件,并执行初始设置。 - /// - protected override void OnStart() - { - - - } - - - - - /// /// 将一个ITick对象添加到待添加缓冲区。它将在下一个LateUpdate中被添加到主Tick列表。 @@ -156,11 +180,10 @@ namespace Base /// 要添加的ITick对象。 public static void AddTick(ITick tick) { - // 确保Clock实例存在且对象不为空。 - if (Instance != null && tick != null) + if (tick != null) { Instance._ticksToAdd.Add(tick); - Instance._ticksToRemove.Remove(tick); // 如果在待移除列表,则先从待移除中删除 + Instance._ticksToRemove.Remove(tick); } } @@ -171,11 +194,10 @@ namespace Base /// 要移除的ITick对象。 public static void RemoveTick(ITick tick) { - // 确保Clock实例存在且对象不为空。 - if (Instance != null && tick != null) + if (tick != null) { Instance._ticksToRemove.Add(tick); - Instance._ticksToAdd.Remove(tick); // 如果在待添加列表,则先从待添加中删除 + Instance._ticksToAdd.Remove(tick); } } @@ -186,8 +208,7 @@ namespace Base /// 要添加的ITickPhysics对象。 public static void AddTickPhysics(ITickPhysics physics) { - // 确保Clock实例存在且对象不为空。 - if (Instance != null && physics != null) + if (physics != null) { Instance._tickPhysicsToAdd.Add(physics); Instance._tickPhysicsToRemove.Remove(physics); @@ -201,8 +222,7 @@ namespace Base /// 要移除的ITickPhysics对象。 public static void RemoveTickPhysics(ITickPhysics physics) { - // 确保Clock实例存在且对象不为空。 - if (Instance != null && physics != null) + if (physics != null) { Instance._tickPhysicsToRemove.Add(physics); Instance._tickPhysicsToAdd.Remove(physics); @@ -216,8 +236,7 @@ namespace Base /// 要添加的ITickUI对象。 public static void AddTickUI(ITickUI ui) { - // 确保Clock实例存在且对象不为空。 - if (Instance != null && ui != null) + if (ui != null) { Instance._tickUIsToAdd.Add(ui); Instance._tickUIsToRemove.Remove(ui); @@ -231,8 +250,7 @@ namespace Base /// 要移除的ITickUI对象。 public static void RemoveTickUI(ITickUI ui) { - // 确保Clock实例存在且对象不为空。 - if (Instance != null && ui != null) + if (ui != null) { Instance._tickUIsToRemove.Add(ui); Instance._tickUIsToAdd.Remove(ui); @@ -240,19 +258,18 @@ namespace Base } /// - /// 私有方法,用于将缓冲区中的添加和移除操作应用到主Tick列表中。 + /// 将缓冲区中的添加和移除操作应用到主Tick列表中。 /// 此方法应在LateUpdate中调用,以确保在所有Tick执行完毕后进行列表修改,从而避免迭代器错误。 /// private void ApplyBufferedChanges() { - // --- 先处理移除操作 --- if (_ticksToRemove.Count > 0) { foreach (var tick in _ticksToRemove) { - _ticks.Remove(tick); // 从主列表移除,HashSet的移除操作平均为O(1) + _ticks.Remove(tick); } - _ticksToRemove.Clear(); // 清空移除缓冲区 + _ticksToRemove.Clear(); } if (_tickPhysicsToRemove.Count > 0) @@ -273,22 +290,32 @@ namespace Base _tickUIsToRemove.Clear(); } - // --- 后处理添加操作 --- if (_ticksToAdd.Count > 0) { foreach (var tick in _ticksToAdd) { - // 添加到主列表。HashSet.Add平均为O(1),并自动处理重复添加(会忽略重复项)。 + // 逻辑修改: + // 防止将已销毁的Unity对象添加到主Tick列表中。 + // Unity的UnityEngine.Object重载了"=="运算符,因此对于已销毁的对象, + // (unityObject == null) 会返回 true。 + if (tick is Object unityObject && unityObject == null) + { + continue; // 跳过已销毁的Unity对象 + } _ticks.Add(tick); } - _ticksToAdd.Clear(); // 清空添加缓冲区 + _ticksToAdd.Clear(); } if (_tickPhysicsToAdd.Count > 0) { foreach (var physicsTick in _tickPhysicsToAdd) { - _tickPhysics.Add(physicsTick); // HashSet.Add 会自动处理重复 + if (physicsTick is Object unityObject && unityObject == null) + { + continue; + } + _tickPhysics.Add(physicsTick); } _tickPhysicsToAdd.Clear(); } @@ -297,10 +324,45 @@ namespace Base { foreach (var uiTick in _tickUIsToAdd) { - _tickUIs.Add(uiTick); // HashSet.Add 会自动处理重复 + if (uiTick is Object unityObject && unityObject == null) + { + continue; + } + _tickUIs.Add(uiTick); } _tickUIsToAdd.Clear(); } } + + /// + /// 集中处理所有Tick列表和缓冲区的清理。 + /// 此方法会在场景加载、Clock被禁用或销毁时调用。 + /// + /// 指示是否同时重置Pause状态和Time.timeScale。 + private void ClearAllTicksInternal(bool clearPauseState) + { + _ticks.Clear(); + _tickPhysics.Clear(); + _tickUIs.Clear(); + + // 逻辑修改: + // 在场景加载时,不应清除_ToAdd缓冲区。 + // 这些缓冲区用于收集当前帧内(包括场景加载期间)的有效注册请求。 + // 清除它们会导致在场景加载过程中新注册的Ticks被立即抹除。 + // 对于前一场景中已销毁的Tick引用,将在ApplyBufferedChanges中进行过滤处理。 + // _ticksToAdd.Clear(); + // _tickPhysicsToAdd.Clear(); + // _tickUIsToAdd.Clear(); + + _ticksToRemove.Clear(); + _tickPhysicsToRemove.Clear(); + _tickUIsToRemove.Clear(); + + if (clearPauseState) + { + Pause = false; + } + } + } } diff --git a/Client/Assets/Scripts/Base/Launcher.cs b/Client/Assets/Scripts/Base/Launcher.cs index 29d5759..d1ee531 100644 --- a/Client/Assets/Scripts/Base/Launcher.cs +++ b/Client/Assets/Scripts/Base/Launcher.cs @@ -148,6 +148,9 @@ namespace Base EventManager.Instance, AudioManager.Instance, SkillTreeManager.Instance, + + KeyValueArchiveManager.Instance, + SaveManager.Instance, // 存档管理器应在其他依赖管理器之后加载 }; // 缓存UI的初始颜色,以便后续操作(如渐隐)或重置 diff --git a/Client/Assets/Scripts/Base/MainMenuSet.cs b/Client/Assets/Scripts/Base/MainMenuSet.cs new file mode 100644 index 0000000..3569f58 --- /dev/null +++ b/Client/Assets/Scripts/Base/MainMenuSet.cs @@ -0,0 +1,13 @@ +using System; +using UnityEngine; + +namespace Base +{ + public class MainMenuSet:MonoBehaviour + { + private void Start() + { + Program.Instance.EndPlayGame(); + } + } +} \ No newline at end of file diff --git a/Client/Assets/Scripts/Base/MainMenuSet.cs.meta b/Client/Assets/Scripts/Base/MainMenuSet.cs.meta new file mode 100644 index 0000000..468642d --- /dev/null +++ b/Client/Assets/Scripts/Base/MainMenuSet.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: cec06564c6ae43daa1dc257835c919ac +timeCreated: 1759404751 \ No newline at end of file diff --git a/Client/Assets/Scripts/Base/PlayGameSceneControl.cs b/Client/Assets/Scripts/Base/PlayGameSceneControl.cs new file mode 100644 index 0000000..fbf4de9 --- /dev/null +++ b/Client/Assets/Scripts/Base/PlayGameSceneControl.cs @@ -0,0 +1,126 @@ +using System; +using Data; +using Entity; +using Managers; +using Map; +using UI; +using UnityEngine; +using UnityEngine.SceneManagement; + +namespace Base +{ + public class PlayGameSceneControl:MonoBehaviour,ITick + { + public Dimension dimensionPrefab; + + public WaitStartUI waitStartUI; + + public bool AllDimensionsLoaded => OutsideDimensionsLoaded && InsideDimensionsLoaded; + public bool OutsideDimensionsLoaded { get; private set; } + public bool InsideDimensionsLoaded { get; private set; } + + public DimensionDef OutsideDef{get; private set;} + public DimensionDef InsideDef{get; private set;} + + public Dimension OutsideDimension{get; private set;} + public Dimension InsideDimension{get; private set;} + + public bool TaskCompleted{get; private set;} + private void Start() + { + OutsideDef = Program.Instance.OutsidePlayDimension; + InsideDef = Program.Instance.CurrentCharacter.insideDimensionDef ?? + DefineManager.Instance.FindDefine( + Configs.ConfigManager.Instance.GetValue("InsideDimension")); + if (OutsideDef == null || InsideDef == null) + { + MessageManager.Instance.DisplayMessage("初始化失败!检查XML文件完整性",PromptDisplayCategory.ScreenCenterLargeText,Color.brown); + Invoke(nameof(ReturnMainMenu), 3); + } + OutsideDimension=Instantiate(dimensionPrefab); + InsideDimension = Instantiate(dimensionPrefab); + + OutsideDimension.transform.localPosition = new Vector3(0, 0, 1); + InsideDimension.transform.localPosition = new Vector3(0, 1000, 1); + + _ = OutsideDimension.ApplyDimensionDef(OutsideDef); + _ = InsideDimension.ApplyDimensionDef(InsideDef); + + OutsideDimension.OnDimensionLoaded += OutsideDimensionLoaded; + OutsideDimension.OnDimensionLoaded += InsideDimensionLoaded; + + + + Program.Instance.SetFocusedDimension(OutsideDimension.DimensionId); + + Clock.AddTick(this); + } + + private void OnDestroy() + { + Clock.RemoveTick(this); + } + + + private void StartGame() + { + if (!AllDimensionsLoaded) + { + return; + } + waitStartUI.Hide(); + Program.Instance.PutPlayer(); + if (OutsideDef.story != null) + { + EventManager.Instance.PlayStory(OutsideDef.story.defName, OutsideDimension.DimensionId); + } + + if (InsideDef.story != null) + { + EventManager.Instance.PlayStory(InsideDef.story.defName, InsideDimension.DimensionId); + } + } + + + private void ReturnMainMenu() + { + EscUI.ReturnMainMenu(); + } + + private void OutsideDimensionLoaded(Dimension dimension) + { + OutsideDimensionsLoaded = true; + StartGame(); + } + + private void InsideDimensionLoaded(Dimension dimension) + { + InsideDimensionsLoaded = true; + StartGame(); + } + + public void Tick() + { + if(!AllDimensionsLoaded) + return; + if (EventManager.Instance.HasStoryDisplay || TaskCompleted) + return; + MessageManager.Instance.DisplayMessage("清理完毕!", PromptDisplayCategory.ScreenCenterLargeText, + Color.softYellow); + TaskCompleted = true; + Invoke(nameof(ReturnBase), 5); + + var player = Program.Instance.FocusedEntity as Character; + if(!player) + return; + Program.Instance.CoinCount += player.Coin.Quantity; + + } + + public void ReturnBase() + { + Program.Instance.EndPlayGame(); + SceneManager.LoadScene("Base"); + } + } +} \ No newline at end of file diff --git a/Client/Assets/Scripts/Base/PlayGameSceneControl.cs.meta b/Client/Assets/Scripts/Base/PlayGameSceneControl.cs.meta new file mode 100644 index 0000000..c40a1e6 --- /dev/null +++ b/Client/Assets/Scripts/Base/PlayGameSceneControl.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: c8957653de16448fad7c6dc5b273ffe3 +timeCreated: 1759370474 \ No newline at end of file diff --git a/Client/Assets/Scripts/Base/UIInputControl.cs b/Client/Assets/Scripts/Base/UIInputControl.cs index ab22591..53106b8 100644 --- a/Client/Assets/Scripts/Base/UIInputControl.cs +++ b/Client/Assets/Scripts/Base/UIInputControl.cs @@ -40,6 +40,8 @@ namespace Base /// public int VisibleWindowCount => _visibleWindows.Count; + public bool HasWindowOpen => _visibleWindows.Any(); + /// /// 查询指定名称的UI窗口是否当前可见。 /// @@ -245,15 +247,20 @@ namespace Base private void UpdateVisibleWindowsCache() { _visibleWindows.Clear(); - foreach (var window in _allWindows) + + var exclusiveWindow = _allWindows.FirstOrDefault(window => window && window.IsVisible && window.exclusive); + + if (exclusiveWindow) { - if (window && window.IsVisible) - { - _visibleWindows.Add(window); - } + _visibleWindows.Add(exclusiveWindow); + } + else + { + _visibleWindows.AddRange(_allWindows.Where(window => window && window.IsVisible)); } } + /// /// 当脚本实例被销毁时调用。 /// 用于在销毁时取消订阅场景加载事件,防止内存泄漏。 @@ -283,6 +290,7 @@ namespace Base private void OnSceneLoaded(Scene scene, LoadSceneMode mode) { RegisterAllWindows(); + Clock.AddTickUI(this); } } } diff --git a/Client/Assets/Scripts/CameraControl/CameraControl.cs b/Client/Assets/Scripts/CameraControl/CameraControl.cs index 32b1cec..b28f86d 100644 --- a/Client/Assets/Scripts/CameraControl/CameraControl.cs +++ b/Client/Assets/Scripts/CameraControl/CameraControl.cs @@ -70,6 +70,7 @@ namespace CameraControl private void OnDestroy() { Program.Instance.OnFocusedDimensionChanged -= Init; + Clock.RemoveTick(this); } @@ -81,27 +82,27 @@ namespace CameraControl /// 当前聚焦的维度对象。 private void Init(Dimension obj) { - if (!CurrentCamera) // 如果摄像机仍未找到,记录错误并返回 - { - Debug.LogError("[CameraControl] 未找到摄像机!摄像机控制功能将无法完全初始化。"); - return; - } - + Clock.AddTick(this); // 处理 obj 为 null 的情况 - 此时 dimensionList 已更新 if (!obj) { return; } + if (!CurrentCamera) // 如果摄像机仍未找到,记录错误并返回 + { + Debug.LogWarning("[CameraControl] 未找到摄像机!摄像机控制功能将无法完全初始化。"); + return; + } // 根据当前聚焦维度同步 CameraControl 内部的 dimensionId - var focusedIndex = System.Array.IndexOf(dimensionList, obj.name); + var focusedIndex = System.Array.IndexOf(dimensionList, obj.DimensionId); if (focusedIndex != -1) { dimensionId = focusedIndex; } else { - Debug.LogWarning($"[CameraControl] 聚焦维度 '{obj.name}' 未在维度列表中找到。回退到ID 0。"); + Debug.LogWarning($"[CameraControl] 聚焦维度 '{obj.DimensionId}' 未在维度列表中找到。回退到ID 0。"); dimensionId = 0; // 找不到时,回退到第一个维度,避免数组越界 } CurrentCamera.transform.position = new Vector3(obj.cameraPosition.x, obj.cameraPosition.y, -10f); diff --git a/Client/Assets/Scripts/Configs/ConfigManager.cs b/Client/Assets/Scripts/Configs/ConfigManager.cs index 452dd1e..9b5ee9d 100644 --- a/Client/Assets/Scripts/Configs/ConfigManager.cs +++ b/Client/Assets/Scripts/Configs/ConfigManager.cs @@ -122,10 +122,11 @@ namespace Configs { _configData = new Dictionary(); SetValue("playerAffiliation", "player"); - SetValue("outsideDimension", "DefaultOutsideDimension"); - SetValue("insideDimension", "DefaultInsideDimension"); - SetValue("baseDimension", "DefaultBaseDimension"); - SetValue("configVersion", 1); + SetValue("OutsideDimension", "DefaultOutsideDimension"); + SetValue("InsideDimension", "DefaultInsideDimension"); + SetValue("BaseDimension", "DefaultBaseDimension"); + SetValue("CoinItem", "PlayerInventory"); + SetValue("configVersion", 0.2); } /// diff --git a/Client/Assets/Scripts/Data/BehaviorTreeDef.cs b/Client/Assets/Scripts/Data/BehaviorTreeDef.cs index 3ab3965..5fc0bb2 100644 --- a/Client/Assets/Scripts/Data/BehaviorTreeDef.cs +++ b/Client/Assets/Scripts/Data/BehaviorTreeDef.cs @@ -1,6 +1,7 @@ using System.Collections.Generic; using System.Linq; using System.Xml.Linq; +using UnityEngine; namespace Data { @@ -23,13 +24,11 @@ namespace Data var xElements = nodes as XElement[] ?? nodes.ToArray(); if (!xElements.Any()) return false; - List children = new(); foreach (var node in xElements) { var childNode = new BehaviorTreeDef(); - if (!childNode.Init(node)) - return false; + childNode.Init(node); children.Add(childNode); } diff --git a/Client/Assets/Scripts/Data/CharacterDef.cs b/Client/Assets/Scripts/Data/CharacterDef.cs index b7deeaf..c44bee0 100644 --- a/Client/Assets/Scripts/Data/CharacterDef.cs +++ b/Client/Assets/Scripts/Data/CharacterDef.cs @@ -2,6 +2,7 @@ namespace Data { public class CharacterDef : EntityDef { + public DimensionDef insideDimensionDef; } diff --git a/Client/Assets/Scripts/Data/DimensionDef.cs b/Client/Assets/Scripts/Data/DimensionDef.cs index 020b421..ec519a7 100644 --- a/Client/Assets/Scripts/Data/DimensionDef.cs +++ b/Client/Assets/Scripts/Data/DimensionDef.cs @@ -3,6 +3,8 @@ namespace Data public class DimensionDef:Define { public MapGeneratorDef[] mapGenerators; - + public string icon; + public bool canSelect = true; + public StoryDef story; } } \ No newline at end of file diff --git a/Client/Assets/Scripts/Entity/Building.cs b/Client/Assets/Scripts/Entity/Building.cs index 2aad30f..f0d3c80 100644 --- a/Client/Assets/Scripts/Entity/Building.cs +++ b/Client/Assets/Scripts/Entity/Building.cs @@ -9,10 +9,10 @@ namespace Entity private BuildingOutline buildingOutline; private BuildingDef buildingDef; - public override void Init(EntityDef entityDef) + public override void Init(EntityDef entityDefine) { - base.Init(entityDef); - buildingDef = entityDef as BuildingDef; + base.Init(entityDefine); + buildingDef = entityDefine as BuildingDef; buildingOutline = entityPrefab.outline as BuildingOutline; } diff --git a/Client/Assets/Scripts/Entity/BuildingOutline.cs b/Client/Assets/Scripts/Entity/BuildingOutline.cs index 994aa7a..daa74d1 100644 --- a/Client/Assets/Scripts/Entity/BuildingOutline.cs +++ b/Client/Assets/Scripts/Entity/BuildingOutline.cs @@ -40,7 +40,7 @@ namespace Entity trigger.offset = position; } - tip.transform.localPosition += new Vector3(0f, textureSize.y * 2 / 3, 0f); + // tip.transform.localPosition += new Vector3(0f, textureSize.y * 2 / 3, 0f); tip.text = $"按{buildingDef.activateKey}打开{buildingDef.label}\n{buildingDef.description}"; tip.gameObject.SetActive(false); diff --git a/Client/Assets/Scripts/Entity/Bullet.cs b/Client/Assets/Scripts/Entity/Bullet.cs index 6398e5e..8b3c9f3 100644 --- a/Client/Assets/Scripts/Entity/Bullet.cs +++ b/Client/Assets/Scripts/Entity/Bullet.cs @@ -14,23 +14,25 @@ namespace Entity public void SetBulletSource(Entity source) { bulletSource = source; - attributes.attack = source.attributes.attack; + AttributesNow.attack = source.AttributesNow.attack; var weapon = source.GetCurrentWeapon(); if (weapon != null) { - lifeTime = weapon.Attributes.attackRange / attributes.moveSpeed; + lifeTime = weapon.Attributes.attackRange / AttributesNow.moveSpeed; } + + affiliation = source.affiliation; } public override void SetTarget(Vector3 pos) { base.SetTarget(pos); - Utils.RotateTool.RotateTransformToDirection(transform, direction); + Utils.RotateTool.RotateTransformToDirection(transform, Direction); } protected override void AutoBehave() { - TryMove(); + Move(); lifeTime -= Time.deltaTime; if (lifeTime <= 0) { @@ -41,7 +43,12 @@ namespace Entity private void OnTriggerEnter2D(Collider2D other) { var entity = other.GetComponent(); - if (IsDead||!entity || entity == bulletSource || entity is Pickup) return; + if (!entity) + { + Kill(); + return; + } + if (IsDead || entity == bulletSource || entity is Pickup) return; if (Managers.AffiliationManager.Instance.GetRelation(bulletSource.affiliation, entity.affiliation) != Relation.Friendly || Setting.Instance.CurrentSettings.friendlyFire) { entity.OnHit(this); @@ -51,7 +58,7 @@ namespace Entity return; // 如果是友好关系且不允许友军伤害,则不处理 } - attributes.health -= 1; + AttributesNow.health -= 1; } diff --git a/Client/Assets/Scripts/Entity/Character.cs b/Client/Assets/Scripts/Entity/Character.cs index ddf33cf..aa1422c 100644 --- a/Client/Assets/Scripts/Entity/Character.cs +++ b/Client/Assets/Scripts/Entity/Character.cs @@ -1,5 +1,8 @@ +using System; +using Configs; using Data; using Item; +using Managers; using UnityEngine; // 添加 System 命名空间以使用 Action @@ -36,23 +39,34 @@ namespace Entity get => _currentSelected; set { - var maxIndex = Inventory != null && Inventory.Capacity > 0 ? Inventory.Capacity - 1 : 0; + var maxIndex = PlayerInventory != null && PlayerInventory.Capacity > 0 ? PlayerInventory.Capacity - 1 : 0; var clampedValue = Mathf.Clamp(value, 0, maxIndex); _currentSelected = clampedValue; InitWeaponAnimator(); } } - public Inventory Inventory { get; private set; } + public Inventory PlayerInventory { get; private set; } + public InventorySlot Coin{get;private set;} - - public override void Init(EntityDef entityDef) + public override void Init(EntityDef entityDefine) { - Inventory = new Inventory(this, 3); - Inventory.OnInventoryChanged += InventoryChange; + PlayerInventory = new Inventory(this, 3); + var coinItem = ItemResourceManager.Instance.GetItem(ConfigManager.Instance.GetValue("CoinItem")); + if(!KeyValueArchiveManager.Instance.HasKey("coinCount")) + { + KeyValueArchiveManager.Instance.Set("coinCount", 0); + } + + Coin = Program.Instance.OutsidePlayDimension == null + ? new InventorySlot(coinItem, Program.Instance.CoinCount) + : new InventorySlot(coinItem, 0); + + PlayerInventory.OnInventoryChanged += InventoryChange; CurrentSelected = 0; - base.Init(entityDef); + base.Init(entityDefine); } + /// /// 尝试将指定物品添加到角色的背包中。 @@ -67,21 +81,21 @@ namespace Entity /// public int TryPickupItem(ItemResource itemResource, int quantity) { - if (Inventory == null) + if (PlayerInventory == null) { Debug.LogError($"Character '{name}' inventory is not initialized. Cannot pickup item."); return quantity; // 如果背包未初始化,则视为未能添加任何物品 } - var remainingQuantity = Inventory.AddItem(itemResource, quantity); + var remainingQuantity = PlayerInventory.AddItem(itemResource, quantity); return remainingQuantity; } public override WeaponResource GetCurrentWeapon() { - var currentSelectItem = Inventory.GetSlot(CurrentSelected); + var currentSelectItem = PlayerInventory.GetSlot(CurrentSelected); return currentSelectItem?.Item as WeaponResource; } diff --git a/Client/Assets/Scripts/Entity/Entity.cs b/Client/Assets/Scripts/Entity/Entity.cs index 6b00419..6c0f474 100644 --- a/Client/Assets/Scripts/Entity/Entity.cs +++ b/Client/Assets/Scripts/Entity/Entity.cs @@ -33,19 +33,19 @@ namespace Entity /// /// 人工智能行为树,定义实体的行为逻辑。 /// - public AIBase aiTree; + public BehaviorTreeBase BehaviorTreeTree { get; private set; } - /// - /// 当前实体正在执行的任务。 - /// - public JobBase currentJob; + // /// + // /// 当前实体正在执行的任务。 + // /// + // public JobBase currentJob; private Attributes _attribute; /// /// 实体的属性定义,包括生命值、攻击力、防御力等。 /// - public virtual Attributes attributes + public virtual Attributes AttributesNow { get { return _attribute ??= new Attributes(baseAttributes); } protected set => _attribute = value; @@ -62,10 +62,28 @@ namespace Entity } } + private Vector3 _direction; /// /// 实体当前的移动方向。 /// - public Vector3 direction; + public Vector3 Direction + { + get => _direction; + set + { + _direction = Mathf.Approximately(value.sqrMagnitude, 1) ? value : value.normalized; + Orientation ori; + if (Mathf.Abs(Direction.y) > Mathf.Abs(Direction.x)) + { + ori = Direction.y > 0 ? Orientation.Up : Orientation.Down; + } + else + { + ori = Direction.x > 0 ? Orientation.Right : Orientation.Left; + } + SetBodyTexture(CurrentState, ori); + } + } public Vector3 attackDirection; @@ -87,7 +105,7 @@ namespace Entity public string currentDimensionId; - + public Vector2 Size => entityPrefab.outline.GetColliderSize(); /// /// 表示实体是否由玩家控制。 @@ -98,7 +116,7 @@ namespace Entity { if (value) { - currentJob = null; + BehaviorTreeTree?.Reset(); if (Program.Instance.FocusedEntity && Program.Instance.FocusedEntity != this) { Program.Instance.FocusedEntity.PlayerControlled = false; @@ -127,7 +145,7 @@ namespace Entity /// /// 表示实体是否已经死亡(生命值小于等于零)。 /// - public bool IsDead => attributes.health <= 0; + public bool IsDead => AttributesNow.health <= 0; public bool IsShowingHealthBarUI => _hitBarUIShowTimer > 0; public bool IsAttacking => _attackTimer > 0; @@ -135,12 +153,7 @@ namespace Entity private float _attackDetectionTime; private WeaponResource currentAttackWeapon; - /// - /// 当实体受到伤害时触发的事件。 - /// 可以订阅此事件来响应实体的生命值变化,例如更新UI或播放受击特效。 - /// - public event Action OnEntityHit; - + /// /// 当实体死亡时触发的事件。 /// 只在实体首次进入死亡状态时触发一次。 @@ -157,7 +170,7 @@ namespace Entity /// /// 当前实体的朝向。 /// - public Orientation CurrentOrientation { get; private set; } = Orientation.Down; + public Orientation CurrentOrientation { get; private set; } = Orientation.Up; /// /// 当前实体的状态 @@ -165,7 +178,18 @@ namespace Entity public EntityState CurrentState { get; private set; } = EntityState.Idle; public AudioSource Audio; - + + public Vector3 moveTarget; + private const float TargetReachThresholdSquared = 0.001f; + public virtual bool OnTargetPoint + { + get + { + var offset = Position - moveTarget; + var distanceSquared = offset.sqrMagnitude; + return distanceSquared <= TargetReachThresholdSquared; + } + } @@ -186,25 +210,27 @@ namespace Entity [SerializeField] private float _hitBarUIShowTime = 5; private float _hitBarUIShowTimer; - private int _walkingTimer; + protected int _walkingTimer; private List<(Func,string)> _conditionalEvents=new(); /// /// 初始化实体的基本属性和行为树。 /// - /// 实体的定义数据。 - public virtual void Init(EntityDef entityDef) + /// 实体的定义数据。 + public virtual void Init(EntityDef entityDefine) { - attributes = new Attributes(entityDef.attributes); - aiTree = BehaviorTree.ConvertToAIBase(entityDef.behaviorTree); - affiliation = entityDef.affiliation?.defName; - InitBody(entityDef.drawingOrder); - this.entityDef = entityDef; + AttributesNow = new Attributes(entityDefine.attributes); + affiliation = entityDefine.affiliation?.defName; + InitBody(entityDefine.drawingOrder); + entityDef = entityDefine; + + BehaviorTreeTree = BehaviorTreeUtils.ConvertToAIBase(entityDefine.behaviorTree); + BehaviorTreeTree?.Init(entityDefine.behaviorTree, this); HideHealthBar(); InitWeaponAnimator(); - InitConditionalEvents(entityDef.eventDef?.GetAllConditionalEvents()); + InitConditionalEvents(entityDefine.eventDef?.GetAllConditionalEvents()); } protected virtual void InitWeaponAnimator() @@ -316,7 +342,6 @@ namespace Entity obj.SetActive(false); } } - SetBodyTexture(EntityState.Idle, Orientation.Down); // 激活默认朝向 } @@ -406,21 +431,20 @@ namespace Entity /// /// 尝试攻击目标实体。 /// - public virtual void TryAttack() // 使用override允许子类重写 + public virtual bool TryAttack() // 使用override允许子类重写 { - if (IsAttacking || IsDead) return; // 死亡时无法攻击 + if (IsAttacking || IsDead) return false; // 死亡时无法攻击 // 尝试获取当前武器 var currentWeapon = GetCurrentWeapon(); - - // 如果没有武器,可以选择进行徒手攻击或者直接返回 - // 暂时设定为:如果没有武器,则不进行攻击 + if (currentWeapon == null) { - return; + return false; } StartAttack(currentWeapon); + return true; } private void StartAttack(WeaponResource weaponResource) @@ -451,6 +475,8 @@ namespace Entity public void SetBodyTexture(EntityState state, Orientation orientation) { + if (state == CurrentState && orientation == CurrentOrientation) + return; HideCurrentBodyTexture(); if (IsAttacking && currentAttackWeapon is { UseEntityAttackAnimation: false }) return; @@ -476,17 +502,58 @@ namespace Entity } /// - /// 根据方向尝试移动实体。 + /// 根据方向尝试移动实体,并避免超调目标点。 /// public virtual void TryMove() { - // if (IsAttacking) - // return; - transform.position += direction * (attributes.moveSpeed * Time.deltaTime); + if (OnTargetPoint) + { + return; // 已到达目标点,无需进一步移动。 + } + + var currentPosition = Position; // 假设 Position 是获取当前位置的属性 + var targetDestination = moveTarget; // 假设 moveTarget 是目标位置字段 + var directionToTarget = targetDestination - currentPosition; + // 逻辑修改1:计算平方距离,避免开方。 + var sqrDistanceToTarget = directionToTarget.sqrMagnitude; + // 逻辑修改2:将到达目标点的判断改为使用平方距离,并包含等于阈值的情况,避免开方。 + if (sqrDistanceToTarget <= TargetReachThresholdSquared) + { + transform.position = targetDestination; // 假设 transform 是 Transform 组件 + return; + } + + var maxMoveDistance = AttributesNow.moveSpeed * Time.deltaTime; // 假设 AttributesNow 是包含 moveSpeed 的属性 + // 逻辑修改4:计算最大移动距离的平方,用于后续与平方距离的比较,避免开方。 + var maxMoveDistanceSquared = maxMoveDistance * maxMoveDistance; + Vector3 newPosition; + bool willReachTargetThisFrame; + // 逻辑修改5:直接比较平方距离来确定是否能到达目标,优化了之前的Mathf.Min和复杂判断。 + if (maxMoveDistanceSquared >= sqrDistanceToTarget) + { + newPosition = targetDestination; // 精确捕捉到目标点 + willReachTargetThisFrame = true; + } + else + { + newPosition = currentPosition + Direction * maxMoveDistance; + willReachTargetThisFrame = false; + } + + transform.position = newPosition; + + // 如果已到达目标,则不设置行走动画和重置计时器 + if (willReachTargetThisFrame) return; + SetBodyTexture(EntityState.Walking, CurrentOrientation); // 假设 SetBodyTexture 是设置动画的方法 + _walkingTimer = 2; // 假设 _walkingTimer 是一个计时器 + } + + public virtual void Move() + { + transform.position += Direction * (AttributesNow.moveSpeed * Time.deltaTime); SetBodyTexture(EntityState.Walking, CurrentOrientation); _walkingTimer = 2; } - /// /// 处理实体受到攻击的逻辑。 /// @@ -498,22 +565,17 @@ namespace Entity { return; } - var hit = from.attributes.attack - attributes.defense; + var hit = from.AttributesNow.attack - AttributesNow.defense; if (hit < 0) - hit = from.attributes.attack / 100; + hit = from.AttributesNow.attack / 100; // 确保伤害不为负,最小为0 hit = Mathf.Max(0, hit); - attributes.health -= hit; + AttributesNow.health -= hit; var wasFatal = IsDead; // 检查这次攻击是否导致实体死亡 - // 触发 OnEntityHit 事件 - OnEntityHit?.Invoke(new EntityHitEventArgs( - this, from, hit, attributes.health, entityDef.attributes.health, wasFatal)); - currentJob?.StopJob(); + + BehaviorTreeTree?.Reset(); if (wasFatal) { - // 如果是首次死亡,则触发 OnEntityDied 事件 - // MODIFIED: 停止所有活动,包括当前工作 - currentJob = null; // 清除当前工作 OnEntityDied?.Invoke(this); } @@ -533,7 +595,7 @@ namespace Entity if (!healthBarPrefab) return; healthBarPrefab.gameObject.SetActive(true); - healthBarPrefab.Progress = (float)attributes.health / entityDef.attributes.health; + healthBarPrefab.Progress = (float)AttributesNow.health / entityDef.attributes.health; _hitBarUIShowTimer = _hitBarUIShowTime; } @@ -554,10 +616,8 @@ namespace Entity return; } - attributes.health = 0; // 直接设置生命值为0 - // MODIFIED: 停止所有活动,包括当前工作 - currentJob?.StopJob(); - currentJob = null; // 清除当前工作 + AttributesNow.health = 0; // 直接设置生命值为0 + BehaviorTreeTree?.Reset(); // 触发 OnEntityDied 事件 OnEntityDied?.Invoke(this); ShowHealthBar(); @@ -569,24 +629,11 @@ namespace Entity /// 目标位置。 public virtual void SetTarget(Vector3 pos) { - direction = (pos - transform.position).normalized; - Orientation ori; - // 判断方向向量最接近哪个朝向 - if (Mathf.Abs(direction.y) > Mathf.Abs(direction.x)) - { - // 垂直方向优先 - ori = direction.y > 0 ? Orientation.Up : Orientation.Down; - } - else - { - // 水平方向优先 - ori = direction.x > 0 ? Orientation.Right : Orientation.Left; - } - - SetBodyTexture(CurrentState, ori); + Direction = (pos - transform.position).normalized; + moveTarget = pos; if (!PlayerControlled) { - attackDirection=direction; + attackDirection=Direction; } } @@ -595,26 +642,7 @@ namespace Entity /// protected virtual void AutoBehave() { - if (aiTree == null) - return; - if (currentJob == null || !currentJob.Running) - { - currentJob = aiTree.GetJob(this); - if (currentJob == null) - { - if (!_warning) - { - Debug.LogWarning($"{GetType().Name}类型的{name}没有分配到任何工作,给行为树末尾添加等待行为,避免由于没有工作导致无意义的反复查找工作导致性能问题"); - _warning = true; - } - - return; - } - - currentJob.StartJob(this); - } - - currentJob.Update(); + var result=BehaviorTreeTree?.Tick(); } @@ -626,11 +654,14 @@ namespace Entity if (Input.GetMouseButton(0)) { var mousePos = MousePosition.GetWorldPosition(); - attackDirection = new Vector3(mousePos.x,mousePos.y) - Position; + attackDirection = new Vector3(mousePos.x, mousePos.y) - Position; if (weaponItem) - RotateTool.RotateTransformToDirection(weaponItem.transform, attackDirection); + { + var angle= RotateTool.RotateTransformToDirection(weaponItem.transform, attackDirection); + weaponItem.Flip(false,angle is > 90 or <= -90); + } } - + if (Input.GetKeyDown(KeyCode.V)) { weaponItem.gameObject.SetActive(!weaponItem.gameObject.activeSelf); @@ -668,14 +699,8 @@ namespace Entity // 归一化方向向量,确保对角线移动速度一致 inputDirection = inputDirection.normalized; - // 设置目标位置(2D 移动,Z 轴保持不变) - var targetPosition = transform.position + new Vector3(inputDirection.x, inputDirection.y, 0); - - // 调用 SetTarget 方法设置目标位置 - SetTarget(targetPosition); - - // 调用 TryMove 方法处理实际移动逻辑 - TryMove(); + Direction = new Vector3(inputDirection.x, inputDirection.y, 0); + Move(); } diff --git a/Client/Assets/Scripts/Entity/EntityPathManager.cs b/Client/Assets/Scripts/Entity/EntityPathManager.cs new file mode 100644 index 0000000..7305fef --- /dev/null +++ b/Client/Assets/Scripts/Entity/EntityPathManager.cs @@ -0,0 +1,441 @@ +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace Entity +{ + public enum PathNodeStatus // 新增枚举 + { + Unvisited, + InOpenSet, + InClosedSet + } + + /// + /// 表示寻路算法中的一个节点。 + /// + public class PathNode : IComparable // 实现 IComparable 接口 + { + public Vector3Int CellCoordinates; // 格子坐标 + public Vector3 WorldCoordinates; // 世界坐标 (中心点) + public float GCost; // 从起点到当前节点的实际代价 + public float HCost; // 从当前节点到终点的估算代价 (启发式) + public float FCost => GCost + HCost; // 总代价 + public PathNode Parent; // 父节点,用于回溯路径 + public PathNodeStatus Status; // 新增状态属性 + + /// + /// 构造一个新的PathNode实例。 + /// + /// 节点的格子坐标。 + /// 节点的世界坐标。 + public PathNode(Vector3Int cellCoords, Vector3 worldCoords) + { + CellCoordinates = cellCoords; + WorldCoordinates = worldCoords; + GCost = float.MaxValue; // 初始化 GCost 为最大值 + HCost = 0; + Parent = null; // 确保 Parent 默认是 null + Status = PathNodeStatus.Unvisited; // 初始化状态 + } + + /// + /// 判断两个PathNode实例是否相等,基于它们的格子坐标。 + /// + /// 要比较的对象。 + /// 如果相等则返回true,否则返回false。 + public override bool Equals(object obj) + { + if (obj is PathNode other) + { + return CellCoordinates.Equals(other.CellCoordinates); + } + return false; + } + + /// + /// 获取PathNode实例的哈希码,基于其格子坐标。 + /// + /// PathNode实例的哈希码。 + public override int GetHashCode() + { + return CellCoordinates.GetHashCode(); + } + + /// + /// 返回表示当前节点的字符串。 + /// + /// 节点的字符串表示。 + public override string ToString() + { + return $"Node({CellCoordinates}, F:{FCost:F1}, G:{GCost:F1}, H:{HCost:F1}, Status:{Status})"; + } + + /// + /// 比较两个PathNode实例,用于排序(优先队列)。 + /// 优先比较 FCost,FCost 相等时优先比较 HCost(避免路径过长)。 + /// + public int CompareTo(PathNode other) + { + if (other == null) return 1; + + var fCostComparison = FCost.CompareTo(other.FCost); + if (fCostComparison != 0) + { + return fCostComparison; + } + // FCost 相等时,HCost 小的优先级更高(更接近目标) + return HCost.CompareTo(other.HCost); + } + } + + /// + /// 管理实体的路径生成和移动。 + /// + public class EntityPathManager + { + + public bool IsPathComplete => _currentPath == null || _currentPath.Count == 0 || _pathIndex >= _currentPath.Count; + + /// + /// 最小优先队列实现,用于A*算法的OpenSet。 + /// + /// 队列中存储的元素类型,必须实现 IComparableT。 + private class PriorityQueue where T : IComparable + { + private readonly List data; // 存储堆元素的列表 + + public int Count => data.Count; // 队列中的元素数量 + + public PriorityQueue() + { + data = new List(); + } + + /// + /// 将元素添加到队列中。 + /// + /// 要添加的元素。 + public void Enqueue(T item) + { + data.Add(item); + var ci = data.Count - 1; // child index + while (ci > 0) + { + var pi = (ci - 1) / 2; // parent index + if (data[ci].CompareTo(data[pi]) >= 0) // 如果子节点不比父节点小,则满足堆属性 + break; + (data[ci], data[pi]) = (data[pi], data[ci]); + ci = pi; + } + } + + /// + /// 移除并返回队列中最小的元素。 + /// + /// 最小的元素。 + public T Dequeue() + { + // 假设队列不为空,调用前应检查 Count > 0 + var li = data.Count - 1; // last index + var frontItem = data[0]; // 最小元素 + data[0] = data[li]; // 将最后一个元素移到根部 + data.RemoveAt(li); // 移除最后一个元素 + + --li; // last index (after removal) + var pi = 0; // parent index + while (true) + { + var ci = pi * 2 + 1; // child index (left child) + if (ci > li) break; // 如果左子节点超出范围,说明没有子节点了 + + var rc = ci + 1; // right child index + if (rc <= li && data[rc].CompareTo(data[ci]) < 0) // 如果右子节点存在且比左子节点小 + ci = rc; // 选择右子节点作为要比较的子节点 + + if (data[pi].CompareTo(data[ci]) <= 0) break; // 如果父节点不比选中的子节点大,则满足堆属性 + + (data[pi], data[ci]) = (data[ci], data[pi]); + pi = ci; + } + return frontItem; + } + } + + + private readonly Entity _entity; // 标记为 readonly + private List _currentPath; + private int _pathIndex; + + private const float HEURISTIC_MULTIPLIER = 1.0f; // 启发式乘数 + private const float IMPASSABLE_TRAVEL_COST_THRESHOLD = 1.0f; // 不可通行成本阈值 + + /// + /// 构造一个新的EntityPathManager实例。 + /// + /// 要管理路径的实体。 + public EntityPathManager(Entity entity) + { + _entity = entity; + _currentPath = new List(); + _pathIndex = 0; + } + + /// + /// 生成从实体当前位置到目标坐标的路径。 + /// + /// 目标世界坐标。 + public void GeneratePath(Vector2 targetCoordinate) + { + _currentPath.Clear(); + _pathIndex = 0; + + if (_entity == null) + { + Debug.LogError("实体在实体路径管理器中为空,无法生成路径。"); + return; + } + + // 假设 Program.Instance.GetDimension 和 currentDimension.landform 存在且有效 + // 否则在实际项目中需要更严格的空值检查和错误处理 + var currentDimension = Program.Instance.GetDimension(_entity.currentDimensionId); + if (currentDimension == null) + { + Debug.LogError($"未找到维度: {_entity.currentDimensionId}"); + return; + } + + var landform = currentDimension.landform; + + // 起点和终点的格子坐标 + var startCell = landform.GetCellCoordinates(_entity.Position); + var targetWorldPosition3D = new Vector3(targetCoordinate.x, targetCoordinate.y, _entity.Position.z); + var targetCell = landform.GetCellCoordinates(targetWorldPosition3D); + + var entitySize = + new Vector3Int(Mathf.CeilToInt(_entity.Size.x), Mathf.CeilToInt(_entity.Size.y), 1); + + // A* 算法 + var openSet = new PriorityQueue(); // 使用优先队列 + var allNodes = new Dictionary(); // 用于快速查找已创建的节点 + + var startNode = new PathNode(startCell, _entity.Position) + { + GCost = 0, + HCost = CalculateHeuristic(_entity.Position, targetCoordinate), + Status = PathNodeStatus.InOpenSet // 设置起始节点状态 + }; + openSet.Enqueue(startNode); + allNodes.Add(startCell, startNode); + + // 检查目标点是否可通行 + // 如果目标点在地图边界外,landform.GetTravelCostForArea 应该返回一个不可通行值 + var targetCellTravelCost = landform.GetTravelCostForArea(targetCell, entitySize); + if (targetCellTravelCost >= IMPASSABLE_TRAVEL_COST_THRESHOLD) + { + Debug.LogWarning($"目标位置 {targetCoordinate} 不可通行或超出地图边界,无法生成路径。"); + _currentPath.Clear(); + return; + } + + while (openSet.Count > 0) + { + var currentNode = openSet.Dequeue(); // 从优先队列中取出FCost最小的节点 + + // 如果这个节点已经以最优路径处理过 (通过另一个更优的路径被Dequeued并Closed) + if (currentNode.Status == PathNodeStatus.InClosedSet) + { + continue; // 跳过旧的或重复的队列项 + } + + // 将当前节点标记为已处理 + currentNode.Status = PathNodeStatus.InClosedSet; + + // 如果找到目标节点 + if (currentNode.CellCoordinates == targetCell) + { + _currentPath = ReconstructPath(currentNode); + return; + } + + // 遍历邻居节点 (8个方向,包括对角线) + foreach (var neighborCellOffset in new[] + { + new Vector3Int(0, 1, 0), new Vector3Int(0, -1, 0), new Vector3Int(1, 0, 0), new Vector3Int(-1, 0, 0), + new Vector3Int(1, 1, 0), new Vector3Int(1, -1, 0), new Vector3Int(-1, 1, 0), new Vector3Int(-1, -1, 0) + }) + { + var neighborCell = currentNode.CellCoordinates + neighborCellOffset; + + // 获取邻居节点的世界坐标中心点 + var neighborWorldPosition = landform.GetWorldCoordinates(neighborCell); + + // 获取邻居区域的通行成本,考虑到实体大小 + var travelCost = landform.GetTravelCostForArea(neighborCell, entitySize); + + // 如果邻居不可通行,则跳过 + if (travelCost >= IMPASSABLE_TRAVEL_COST_THRESHOLD) + { + continue; + } + + PathNode neighborNode; + // 尝试从 allNodes 字典中获取邻居节点 + if (!allNodes.TryGetValue(neighborCell, out neighborNode)) + { + // 如果节点未被发现,则创建它并添加到 allNodes 字典 + neighborNode = new PathNode(neighborCell, neighborWorldPosition); + allNodes.Add(neighborCell, neighborNode); + } + + // 【逻辑修改1】A* 状态管理一致性改进 + // 如果邻居节点已经在closedSet中,则意味着我们已经以最优路径处理过它,跳过。 + // 此处不进行“重新开启已关闭节点”的操作。 + if (neighborNode.Status == PathNodeStatus.InClosedSet) + { + continue; + } + + // 从当前节点到邻居节点的实际代价 + // Distance 乘以 (1 + travelCost) 作为难度系数 + var newGCost = currentNode.GCost + + Vector3.Distance(currentNode.WorldCoordinates, neighborNode.WorldCoordinates) * + (1f + travelCost); + + // 如果找到更短的路径,则更新邻居节点信息 + if (newGCost < neighborNode.GCost) // 路径更优 + { + neighborNode.GCost = newGCost; + neighborNode.HCost = CalculateHeuristic(neighborNode.WorldCoordinates, targetCoordinate); + neighborNode.Parent = currentNode; + + // 【逻辑修改1】A* 状态管理一致性改进 + // 只有当邻居节点是Unvisited时,才将其加入OpenSet。 + // 如果节点已经是InOpenSet,它的GCost已经被更新,优先队列会处理其优先级变化。 + // 如果节点是InClosedSet,则由于前面的continue语句,不会到达此处。 + if (neighborNode.Status == PathNodeStatus.Unvisited) + { + neighborNode.Status = PathNodeStatus.InOpenSet; + openSet.Enqueue(neighborNode); + } + } + } + } + + // 如果OpenSet为空且没有找到路径 + Debug.LogWarning($"未找到实体 {_entity.name} 到目标 {targetCoordinate} 的路径。可能目标不可达,或被完全包围。"); + _currentPath.Clear(); + } + + /// + /// 获取实体下一帧应该移动到的位置。 + /// + /// 实体当前的世界坐标。 + /// 实体的移动速度(单位:世界单位/秒)。 + /// 下一帧实体的位置。 + public Vector3 GetNextPosition(Vector3 currentPosition, float moveSpeed) + { + if (IsPathComplete) + { + return currentPosition; // 没有路径或路径已完成,停留在原地 + } + + var targetWaypoint2D = _currentPath[_pathIndex]; + var currentPosition2D = new Vector2(currentPosition.x, currentPosition.y); + + // 计算到当前目标路点的距离 + var distanceToWaypoint = Vector2.Distance(currentPosition2D, targetWaypoint2D); + + // 计算实体在当前帧内可以移动的最大距离 + var maxMoveDistance = moveSpeed * Time.deltaTime; + + if (distanceToWaypoint <= maxMoveDistance) + { + // 实体可以在当前帧内到达或超过当前路点。 + // 直接移动到路点,并将路径索引前进到下一个。 + Vector3 nextPosition = new Vector3(targetWaypoint2D.x, targetWaypoint2D.y, currentPosition.z); + _pathIndex++; // 前进到下一个路点 + return nextPosition; + } + else + { + // 实体在当前帧内无法到达当前路点。 + // 以最大移动距离向当前路点移动。 + var direction = (targetWaypoint2D - currentPosition2D).normalized; + var newPosition2D = currentPosition2D + direction * maxMoveDistance; + return new Vector3(newPosition2D.x, newPosition2D.y, currentPosition.z); + } + } + + // 【新增函数】获取实体下一帧的方向 + /// + /// 获取实体应该移动的方向(2D)。 + /// + /// 实体的当前世界坐标。 + /// 标准化后的移动方向Vector2,如果没有路径或路径完成则返回Vector2.zero。 + public Vector2 GetNextDirection(Vector3 currentPosition) + { + if (IsPathComplete) + { + return Vector2.zero; // 没有路径或路径已完成,没有移动方向 + } + + var targetWaypoint2D = _currentPath[_pathIndex]; + var currentPosition2D = new Vector2(currentPosition.x, currentPosition.y); + + var direction = (targetWaypoint2D - currentPosition2D); + + // 如果实体当前已非常接近目标路点,预判性地查看下一个路点的方向 + // 这样做有助于动画平滑过渡,避免在到达路点瞬间方向变为零 + if (direction.sqrMagnitude < 0.001f) // 使用一个小的阈值判断是否“到达”路点 + { + int lookAheadIndex = _pathIndex + 1; + if (lookAheadIndex < _currentPath.Count) + { + var nextWaypoint2D = _currentPath[lookAheadIndex]; + return (nextWaypoint2D - currentPosition2D).normalized; + } + else + { + // 这是最后一个路点,或者没有下一个路点 + return Vector2.zero; + } + } + + return direction.normalized; + } + + /// + /// 计算从当前节点到目标节点的启发式代价。 + /// + /// 当前世界坐标。 + /// 目标世界坐标。 + /// 启发式代价。 + private float CalculateHeuristic(Vector3 currentWorldPosition, Vector2 targetWorldPosition) + { + return Vector2.Distance(new Vector2(currentWorldPosition.x, currentWorldPosition.y), targetWorldPosition) * + HEURISTIC_MULTIPLIER; + } + + /// + /// 从终点回溯并重建路径。 + /// + /// 路径的终点节点。 + /// 世界坐标点的路径列表。 + private List ReconstructPath(PathNode endNode) + { + var path = new List(); + var currentNode = endNode; + while (currentNode != null) + { + path.Add(new Vector2(currentNode.WorldCoordinates.x, currentNode.WorldCoordinates.y)); + currentNode = currentNode.Parent; + } + + path.Reverse(); // 将路径反转,使其从起点到终点 + return path; + } + + // 移除了 GetSmoothTravelCost 方法 + } +} diff --git a/Client/Assets/Scripts/Entity/EntityPathManager.cs.meta b/Client/Assets/Scripts/Entity/EntityPathManager.cs.meta new file mode 100644 index 0000000..d9cab9f --- /dev/null +++ b/Client/Assets/Scripts/Entity/EntityPathManager.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 55b59820532642b287ed7713a3c788c5 +timeCreated: 1759141469 \ No newline at end of file diff --git a/Client/Assets/Scripts/Entity/LivingEntity.cs b/Client/Assets/Scripts/Entity/LivingEntity.cs index 0877a95..f2477fe 100644 --- a/Client/Assets/Scripts/Entity/LivingEntity.cs +++ b/Client/Assets/Scripts/Entity/LivingEntity.cs @@ -54,7 +54,7 @@ namespace Entity /// /// 获取实体当前的最终属性,包括所有健康状态(Hediff)的修正。 /// - public override Attributes attributes + public override Attributes AttributesNow { get { @@ -87,8 +87,17 @@ namespace Entity } protected set => _cachedAttributes = value; } - - + + public EntityPathManager pathManager; + + public override bool OnTargetPoint => pathManager.IsPathComplete; + + + public LivingEntity() + { + pathManager = new EntityPathManager(this); + } + /// /// 供内部使用的属性标记方法。当 Hediff 自身状态改变并影响属性时,通过此方法通知 LivingEntity。 /// @@ -96,7 +105,7 @@ namespace Entity { _needUpdateAttributes = true; } - + /// /// 每帧调用的更新函数,传入时间增量。 /// @@ -156,5 +165,23 @@ namespace Entity _needUpdateAttributes = true; // 移除Hediff,需要更新属性缓存 } } + + public override void SetTarget(Vector3 pos) + { + base.SetTarget(pos); + pathManager.GeneratePath(pos); + } + + public override void TryMove() + { + if (pathManager.IsPathComplete) + return; + _walkingTimer = 2; + var target= pathManager.GetNextPosition(Position, AttributesNow.moveSpeed); + Direction = target - Position; + SetBodyTexture(EntityState.Walking, CurrentOrientation); + transform.position = target; + + } } } diff --git a/Client/Assets/Scripts/Entity/Monster.cs b/Client/Assets/Scripts/Entity/Monster.cs index 2af1763..eaf8d18 100644 --- a/Client/Assets/Scripts/Entity/Monster.cs +++ b/Client/Assets/Scripts/Entity/Monster.cs @@ -1,16 +1,18 @@ +using System; using Data; using Item; using Managers; +using UnityEngine; namespace Entity { public class Monster:LivingEntity { private WeaponResource weapon; - public override void Init(EntityDef entityDef) + public override void Init(EntityDef entityDefine) { - base.Init(entityDef); - var monsterDef = entityDef as MonsterDef; + base.Init(entityDefine); + var monsterDef = entityDefine as MonsterDef; if (monsterDef != null) { weapon = (WeaponResource)ItemResourceManager.Instance.GetItem(monsterDef.weapon.defName); @@ -21,6 +23,13 @@ namespace Entity { return weapon; } + + private void OnCollisionStay2D(Collision2D other) + { + if (!other.gameObject.CompareTag("Player")) return; + var playerEntity = other.gameObject.GetComponent(); + playerEntity?.OnHit(this); + } } } \ No newline at end of file diff --git a/Client/Assets/Scripts/Entity/Outline.cs b/Client/Assets/Scripts/Entity/Outline.cs index 50d062a..9b1255e 100644 --- a/Client/Assets/Scripts/Entity/Outline.cs +++ b/Client/Assets/Scripts/Entity/Outline.cs @@ -9,95 +9,183 @@ namespace Entity { public class Outline : MonoBehaviour { - public RightMenuPrefab rightMenuPrefab; - + // 实体身体的游戏对象 public GameObject body; + + // 描边渲染器 public SpriteRenderer outlineRenderer; + + // 描边碰撞体 public CapsuleCollider2D outlineCollider; + + // 进度条预制件 public ProgressBarPrefab progressBarPrefab; + // 关联的实体 public Entity entity; - public static Vector3 minimum = new(0.5f, 0.5f, 0.5f); + // 边界的最小尺寸 + public static readonly Vector2 MinimumBoundsSize = new(0.5f, 0.5f); - public bool CanShow => Setting.Instance.CurrentSettings.developerMode && entity.canSelect; + // 缓存身体纹理大小 + private Vector2 _cachedBodyTextureSize; - public virtual void Init() + // 缓存碰撞体大小 + private Vector2 _cachedColliderSize; + + // 缓存碰撞体偏移 + private Vector2 _cachedOffset; + + // 缓存是否已初始化标志 (明确它管理的是数据缓存状态) + private bool _isDataCacheInitialized; // 修改部分1:变量更名 + + // 是否可以显示描边 + public bool CanShow => Setting.Instance.CurrentSettings.developerMode && entity.canSelect && + !UIInputControl.Instance.HasWindowOpen; + + /// + /// 确保描边尺寸相关数据缓存已初始化。如果未初始化,则会计算并缓存。 + /// 此方法保证内部的尺寸计算只执行一次。 + /// + private void EnsureDataCacheInitialized() // 修改部分2:新增私有方法 { - outlineRenderer.size = GetBodyTextureSize(); - var size = GetColliderSize(); - outlineCollider.direction = size.x > size.y ? CapsuleDirection2D.Horizontal : CapsuleDirection2D.Vertical; - outlineCollider.size = size; - outlineCollider.offset = GetOffset(); + if (_isDataCacheInitialized) return; // 如果数据缓存已初始化,则直接返回 + // 计算并缓存所有必要尺寸 + _cachedBodyTextureSize = CalculateBodyTextureSize(); + _cachedColliderSize = CalculateColliderSize(); + _cachedOffset = CalculateOffset(); + _isDataCacheInitialized = true; // 标记数据缓存已初始化 + } + + /// + /// 初始化描边,将计算出的尺寸应用于描边渲染器、碰撞体和进度条。 + /// 此方法确保数据缓存已初始化,并可以被重复调用以重新应用设置。 + /// + public virtual void Init() // 修改部分4:修改 Init 方法 + { + // 首先确保尺寸数据是可用的。这个调用会立即返回如果数据缓存已初始化。 + EnsureDataCacheInitialized(); + // 使用缓存值设置OutlineRenderer + outlineRenderer.size = _cachedBodyTextureSize; + // 使用缓存值设置OutlineCollider + var colliderSize = _cachedColliderSize; // 使用缓存值 + outlineCollider.direction = colliderSize.x > colliderSize.y + ? CapsuleDirection2D.Horizontal + : CapsuleDirection2D.Vertical; + outlineCollider.size = colliderSize; + outlineCollider.offset = _cachedOffset; // 使用缓存值 + // 使用缓存值调整ProgressBarPrefab if (progressBarPrefab) { - progressBarPrefab.transform.localPosition += new Vector3(0f, size.y * 2 / 3, 0f); - progressBarPrefab.transform.localScale = new Vector3(size.x, 1f / 10f, 1); + // 确保每次 Init 调用都能正确设置位置而不重复累加。 + progressBarPrefab.transform.localPosition = + new Vector3(0f, colliderSize.y * 2 / 3, 0f); // 逻辑修改:将 += 改为 = + progressBarPrefab.transform.localScale = new Vector3(colliderSize.x, 1f / 10f, 1); } } + /// + /// 显示描边。 + /// public void Show() { - outlineRenderer.enabled = true; + if (CanShow) + outlineRenderer.enabled = true; } + /// + /// 隐藏描边。 + /// public void Hide() { outlineRenderer.enabled = false; } /// - /// 获取指定对象及其所有子对象组成的图像的大小。 + /// 获取当前实体的碰撞体大小。在首次调用时自动计算并缓存。 /// - /// - /// 返回一个 Vector3 对象,表示对象在世界空间中的总大小(宽度、高度、深度)。 - /// 如果没有找到任何渲染器,则返回 (-1, -1, -1) 表示无效大小。 - /// - public Vector2 GetColliderSize() + /// 碰撞体大小的Vector2。 + public Vector2 GetColliderSize() // 修改部分3:修改 GetColliderSize 方法 { - return !string.IsNullOrEmpty(entity.entityDef.colliderSize) - ? Utils.StringUtils.StringToVector2(entity.entityDef.colliderSize) - : GetBodyTextureSize(); + EnsureDataCacheInitialized(); // 确保数据缓存已初始化 + return _cachedColliderSize; } - public Vector2 GetBodyTextureSize() + /// + /// 获取身体的纹理总大小。在首次调用时自动计算并缓存。 + /// + /// 身体纹理大小的Vector2。 + public Vector2 GetBodyTextureSize() // 修改部分3:修改 GetBodyTextureSize 方法 + { + EnsureDataCacheInitialized(); // 确保数据缓存已初始化 + return _cachedBodyTextureSize; + } + + /// + /// 获取当前实体的碰撞体偏移。在首次调用时自动计算并缓存。 + /// + /// 碰撞体偏移的Vector2。 + public Vector2 GetOffset() // 修改部分3:修改 GetOffset 方法 + { + EnsureDataCacheInitialized(); // 确保数据缓存已初始化 + return _cachedOffset; + } + + /// + /// 计算并返回碰撞体大小。此方法是内部实现细节。 + /// + /// 碰撞体大小的Vector2。 + private Vector2 CalculateColliderSize() + { + return !string.IsNullOrEmpty(entity.entityDef?.colliderSize) + ? Utils.StringUtils.StringToVector2(entity.entityDef.colliderSize) + : CalculateBodyTextureSize(); + } + + /// + /// 计算并返回身体纹理的总大小。此方法是内部实现细节。 + /// + /// 身体纹理总大小的Vector2。 + private Vector2 CalculateBodyTextureSize() { // 获取所有子对象的 Renderer 组件 - var renderers = body.GetComponentsInChildren(); - - // 如果没有找到任何 Renderer,返回一个默认值 (-1, -1, -1) + var renderers = body.GetComponentsInChildren(true); + // 如果没有找到任何 Renderer,返回一个默认值 if (renderers.Length == 0) { - return minimum; + return MinimumBoundsSize; } // 初始化 totalBounds 为第一个 Renderer 的 bounds var totalBounds = renderers[0].bounds; - // 遍历剩余的 Renderer,将它们的 bounds 合并到 totalBounds 中 for (var i = 1; i < renderers.Length; i++) { totalBounds.Encapsulate(renderers[i].bounds); } - // 获取合并后的包围盒的大小 - var size = totalBounds.size; - - // 确保每个维度的大小都不小于 0.5 - size.x = Mathf.Max(size.x, 0.5f); - size.y = Mathf.Max(size.y, 0.5f); - size.z = Mathf.Max(size.z, 0.5f); - + // 获取合并后的包围盒的XY大小 + var size = new Vector2(totalBounds.size.x, totalBounds.size.y); + // 确保每个维度的大小都不小于最小限制 + size.x = Mathf.Max(size.x, MinimumBoundsSize.x); + size.y = Mathf.Max(size.y, MinimumBoundsSize.y); return size; } - public Vector2 GetOffset() + /// + /// 计算并返回碰撞体偏移。此方法是内部实现细节。 + /// + /// 碰撞体偏移的Vector2。 + private Vector2 CalculateOffset() { - return string.IsNullOrEmpty(entity.entityDef.colliderPosition) + return string.IsNullOrEmpty(entity.entityDef?.colliderPosition) ? Vector2.zero : Utils.StringUtils.StringToVector2(entity.entityDef.colliderPosition); } + /// + /// 当鼠标进入描边区域时调用。 + /// protected virtual void OnMouseEnter() { if (!CanShow) @@ -105,11 +193,17 @@ namespace Entity Show(); } + /// + /// 当鼠标离开描边区域时调用。 + /// protected virtual void OnMouseExit() { Hide(); } + /// + /// 当鼠标停留在描边区域时每帧调用。 + /// protected virtual void OnMouseOver() { if (!Program.Instance.CanOpenRightMenu || !CanShow) @@ -121,6 +215,10 @@ namespace Entity } } + /// + /// 获取右键菜单项列表。 + /// + /// 包含菜单项名称和对应回调函数的列表。 protected virtual List<(string name, UnityAction callback)> GetMenu() { var result = new List<(string name, UnityAction callback)>(); @@ -133,20 +231,31 @@ namespace Entity return result; } + /// + /// 将当前实体变为默认实体。 + /// protected void BecomeDefault() { - entity.Kill(); - EntityManager.Instance.GenerateDefaultEntity(Program.Instance.FocusedDimensionId, entity.Position); + entity?.Kill(); + if (entity != null) + EntityManager.Instance.GenerateDefaultEntity(Program.Instance.FocusedDimensionId, entity.Position); } + /// + /// 开始玩家对实体的操控。 + /// protected void StartControl() { entity.PlayerControlled = true; } + /// + /// 结束玩家对实体的操控。 + /// protected void EndControl() { entity.PlayerControlled = false; } + } -} \ No newline at end of file +} diff --git a/Client/Assets/Scripts/EventWorkClass/Event_EntityGenerater.cs b/Client/Assets/Scripts/EventWorkClass/Event_EntityGenerater.cs index b712186..f8c1042 100644 --- a/Client/Assets/Scripts/EventWorkClass/Event_EntityGenerater.cs +++ b/Client/Assets/Scripts/EventWorkClass/Event_EntityGenerater.cs @@ -157,6 +157,7 @@ namespace EventWorkClass Debug.LogWarning($"实体定义类型名为空或null (实体定义名: '{entry.DefName}')。跳过此定义。"); continue; } + // 遵循“单例总是有效”的指示,不检查 DefineManager.Instance 是否为 null var entityDef = (EntityDef)DefineManager.Instance.FindDefine(entry.DefTypeName, entry.DefName); if (entityDef == null) { @@ -191,23 +192,31 @@ namespace EventWorkClass return; } + // 遵循“单例总是有效”的指示,不检查 EntityManager.Instance 是否为 null + // 如果 EntityManager.Instance 为 null,则表明单例系统存在问题, + // 此时应由单例系统自身处理其初始化错误,而不是每次使用时都进行防御性检查。 + // 例如,如果 EntityManager.Instance 本身就是 null,下面的 GenerateCharacterEntity 将抛出 NullReferenceException。 + // 根据“单例总是有效”的指示,我们将此视为单例系统层面的设计或实现缺陷,而非 Event_EntityGenerater 的问题。 - for (int i = 0; i < _config.Count; i++) + for (var i = 0; i < _config.Count; i++) { // 随机选择一个实体定义 var selectedEntityDef = _validatedEntityDefs[Random.Range(0, _validatedEntityDefs.Count)]; var position = GetPosition(dimensionID); - // 检查 GetPosition 是否返回了有效的非零位置,除非它是 AroundSpecificCoordinates 且中心点就是 Vector3.zero - if (position == Vector3.zero && (_config.LocationType != EntitySpawnLocationType.AroundSpecificCoordinates - || _config.CenterCoordinates != Vector3.zero)) + // 逻辑修改点1:检查 GetPosition 是否返回了有效的非零位置,或者其零点是明确配置的。 + // 如果 position 为 Vector3.zero 且不是由 AroundSpecificCoordinates 且中心点为 Vector3.zero 引起的,则跳过本次生成。 + var isZeroDueToError = (position == Vector3.zero && (_config.LocationType != EntitySpawnLocationType.AroundSpecificCoordinates + || _config.CenterCoordinates != Vector3.zero)); + if (isZeroDueToError) { - Debug.LogWarning($"未能为类型 {_config.LocationType} 获取有效的生成位置。实体可能在原点 (0,0,0) 生成。"); + Debug.LogWarning($"未能为类型 {_config.LocationType} 获取有效的生成位置。跳过本次实体生成。"); + continue; // 跳过本次循环,不生成实体 } if (selectedEntityDef is CharacterDef characterDef) { - EntityManager.Instance.GenerateEntity(dimensionID, characterDef, position); + EntityManager.Instance.GenerateCharacterEntity(dimensionID, characterDef, position); continue; } @@ -233,6 +242,7 @@ namespace EventWorkClass Debug.LogError("获取位置时配置为空。返回 Vector3.zero。"); return Vector3.zero; } + // 遵循“单例总是有效”的指示,不检查 Program.Instance 是否为 null var dimension = Program.Instance.GetDimension(dimensionID); if (dimension == null) { @@ -240,9 +250,10 @@ namespace EventWorkClass return Vector3.zero; } var mapGenerator = dimension.landform; - if (mapGenerator == null) + // 逻辑修改点2:更准确的错误信息 + if (mapGenerator == null) { - Debug.LogError($"维度 '{dimensionID}' 的地图生成器为空。无法确定生成位置。"); + Debug.LogError($"维度 '{dimensionID}' 的地形 (landform) 为空。无法确定生成位置。"); // 错误信息更清晰 return Vector3.zero; } switch (_config.LocationType) @@ -294,7 +305,9 @@ namespace EventWorkClass var center = _config.CenterCoordinates; var radius = _config.Radius; var randomOffset = Random.insideUnitCircle * radius; - return new Vector3(center.x + randomOffset.x, center.y + randomOffset.y, center.z); + var rawPosition = new Vector3(center.x + randomOffset.x, center.y + randomOffset.y, center.z); + // 逻辑修改点4:应用位置钳制,确保在地图范围内 + return GetClampedWorldPosition(rawPosition, dimensionID); } case EntitySpawnLocationType.AroundTargetEntity: { @@ -303,6 +316,7 @@ namespace EventWorkClass Debug.LogWarning($"配置了 'AroundTargetEntity',但 'TargetFactionDefName' 为空或null。无法找到派系实体。将在原点生成。"); return Vector3.zero; } + // 遵循“单例总是有效”的指示,不检查 EntityManager.Instance 是否为 null var factionEntities = EntityManager.Instance.FindEntitiesByFaction(dimensionID, _config.TargetFactionDefName); if (factionEntities == null || factionEntities.Length == 0) { @@ -311,7 +325,8 @@ namespace EventWorkClass } var randomIndex = Random.Range(0, factionEntities.Length); var targetEntityPrefab = factionEntities[randomIndex]; - if (targetEntityPrefab == null || targetEntityPrefab.transform == null) + // Unity对象隐式空比较 + if (targetEntityPrefab == null || targetEntityPrefab.transform == null) { Debug.LogWarning($"从派系 '{_config.TargetFactionDefName}' 中随机选择的实体为空或没有Transform组件。将在原点生成。"); return Vector3.zero; @@ -320,8 +335,10 @@ namespace EventWorkClass var radius = _config.Radius; var randomOffset = Random.insideUnitCircle * radius; + var rawPosition = new Vector3(center.x + randomOffset.x, center.y + randomOffset.y, center.z); Debug.Log($"围绕派系 '{_config.TargetFactionDefName}' 的实体 (世界坐标: {center}) 生成。生成的偏移量: {randomOffset}。"); - return new Vector3(center.x + randomOffset.x, center.y + randomOffset.y, center.z); + // 逻辑修改点4:应用位置钳制,确保在地图范围内 + return GetClampedWorldPosition(rawPosition, dimensionID); } case EntitySpawnLocationType.RandomlyOnMap: { @@ -350,5 +367,60 @@ namespace EventWorkClass return Vector3.zero; } } + + // 逻辑修改点3:新增 GetClampedWorldPosition 辅助方法 + /// + /// 将给定的世界坐标限制在指定维度的地图可玩区域边界内。 + /// 假设 mapGenerator.GetWorldCoordinates(gridPos) 返回瓦片中心,且瓦片世界大小为 1x1 单位。 + /// + /// 待限制的世界坐标。 + /// 目标维度ID。 + /// 限制在地图边界内的世界坐标。 + private Vector3 GetClampedWorldPosition(Vector3 worldPosition, string dimensionID) + { + // 遵循“单例总是有效”的指示,不检查 Program.Instance 是否为 null + var dimension = Program.Instance.GetDimension(dimensionID); + if (dimension == null) + { + Debug.LogError($"无法获取维度 '{dimensionID}' 来限制位置。返回原始位置。"); + return worldPosition; + } + var mapGenerator = dimension.landform; + if (mapGenerator == null) + { + Debug.LogError($"维度 '{dimensionID}' 的地形 (landform) 为空。无法限制位置。返回原始位置。"); + return worldPosition; + } + + var mapGridSize = mapGenerator.GetSize(); // 获取地图的网格尺寸 (宽度, 高度) + + // 假设 GetWorldCoordinates(gridPos) 返回瓦片中心,且世界坐标中的单瓦片尺寸为 1x1。 + // 所以,瓦片的半个世界尺寸为 0.5f。 + var tileWorldHalfSize = 0.5f; // 理想情况下,这应从 mapGenerator 或某个全局配置获取。 + + // 获取最左下角 (0,0) 瓦片的中心世界坐标 + Vector2 worldMinTileCenter = mapGenerator.GetWorldCoordinates(Vector3Int.zero); + // 获取最右上角 (width-1, height-1) 瓦片的中心世界坐标 + Vector2 worldMaxTileCenter = mapGenerator.GetWorldCoordinates(new Vector3Int(mapGridSize.x - 1, mapGridSize.y - 1)); + + // 计算地图在世界坐标系中的绝对边界 + // 我们取 x,y 轴的最小值和最大值,确保正确的边界范围 + var worldMinX = worldMinTileCenter.x - tileWorldHalfSize; + var worldMaxX = worldMaxTileCenter.x + tileWorldHalfSize; + var worldMinY = worldMinTileCenter.y - tileWorldHalfSize; + var worldMaxY = worldMaxTileCenter.y + tileWorldHalfSize; + + // 限制位置在计算出的世界地图边界内 + var clampedPosition = worldPosition; + clampedPosition.x = Mathf.Clamp(worldPosition.x, worldMinX, worldMaxX); + clampedPosition.y = Mathf.Clamp(worldPosition.y, worldMinY, worldMaxY); + // Z轴通常用于深度,此处保持不变 + + if (clampedPosition != worldPosition) + { + Debug.LogWarning($"生成位置 {worldPosition} (类型: {_config.LocationType}) 超出地图可玩区域边界,已限制为 {clampedPosition}。"); + } + return clampedPosition; + } } } diff --git a/Client/Assets/Scripts/Managers/DefineManager.cs b/Client/Assets/Scripts/Managers/DefineManager.cs index 9c4a67c..824a524 100644 --- a/Client/Assets/Scripts/Managers/DefineManager.cs +++ b/Client/Assets/Scripts/Managers/DefineManager.cs @@ -122,7 +122,7 @@ namespace Managers } } -// 如果是第一次启动,写回 loadOrder(顺序为 newOrder) + // 如果是第一次启动,写回 loadOrder(顺序为 newOrder) if (isFirstLaunch) { // 将 newOrder 转换为 string[],并写回设置 @@ -315,6 +315,8 @@ namespace Managers /// 如果找到,返回转换为目标类型的 对象;否则返回 null。 public T FindDefine(string defineName) where T : Define { + if (string.IsNullOrEmpty(defineName)) + return null; if (defines.TryGetValue(typeof(T).Name, out var typeDict)) { if (typeDict.TryGetValue(defineName, out var define)) @@ -460,8 +462,8 @@ namespace Managers return null; } } - - + + /// /// 返回所有加载的定义包的字符串表示。 /// diff --git a/Client/Assets/Scripts/Managers/EntityManager.cs b/Client/Assets/Scripts/Managers/EntityManager.cs index acfd3ff..a639039 100644 --- a/Client/Assets/Scripts/Managers/EntityManager.cs +++ b/Client/Assets/Scripts/Managers/EntityManager.cs @@ -293,6 +293,7 @@ namespace Managers var factionKey = def.attributes.defName ?? "default"; _pendingAdditions.Add(Tuple.Create(dimensionId, factionKey, entityComponent)); + return entityComponent; } catch (Exception ex) @@ -363,7 +364,7 @@ namespace Managers /// 实体所属的维度ID。 /// 实体定义对象。 /// 生成位置。 - public EntityPrefab GenerateEntity(string dimensionId, EntityDef entityDef, Vector3 pos) + public EntityPrefab GenerateCharacterEntity(string dimensionId, EntityDef entityDef, Vector3 pos) { if (!characterPrefab) { @@ -607,7 +608,7 @@ namespace Managers Relation targetRelationship) { // 参数校验:确保输入参数有效,避免空引用异常。 - if (sourceEntityPrefab == null || sourceEntityPrefab.entity == null) + if (!sourceEntityPrefab || !sourceEntityPrefab.entity) { Debug.LogWarning("实体管理器:FindNearestEntityByRelation 方法中,源实体预制体或其内部实体为空。无法执行搜索。"); return null; @@ -620,137 +621,111 @@ namespace Managers return null; } - // 初始化追踪变量:设置初始值,用于在遍历过程中追踪最近的实体及其距离。 - // 使用平方距离 (SqrMagnitude) 可以避免在每次距离计算时进行昂贵的开方运算,从而提高性能。 EntityPrefab nearestTarget = null; var minDistanceSqr = float.MaxValue; + + var sourcePos = sourceEntityPrefab.transform.position; - - // 关系管理器实例检查:确保 AffiliationManager 可用,它是判断实体关系的核心组件。 var affiliationManager = AffiliationManager.Instance; - if (affiliationManager == null) + + foreach (var (currentFactionKey, factionEntities) in factionDict) { - Debug.LogError("实体管理器:FindNearestEntityByRelation 方法中,AffiliationManager 实例为空。无法确定实体关系。"); - return null; - } + var factionRelation = affiliationManager.GetRelation(sourceEntityPrefab.entity.affiliation, currentFactionKey); - // 遍历所有派系和实体:_dimensionFactionEntities 按维度和派系组织,需要遍历所有派系才能找到维度内的所有实体。 - foreach (var factionEntities in factionDict.Values) // factionDict.Values 是 LinkedList 的集合 - { + if (factionRelation != targetRelationship) + { + continue; + } foreach (var currentEntityPrefab in factionEntities) { - // 实体有效性及排除源实体自身: - // 1. 排除无效或已死亡的实体,确保只处理活跃的实体。 - // 2. 在寻找“最近”实体时,通常指的是 *除了自身以外* 的实体。 - // 如果需要包含自身(例如,当 targetRelationship 是 AffiliationManager.Relation.Self 时), - // 可以根据具体需求调整此逻辑,但默认行为是排除自身。 if (!currentEntityPrefab || !currentEntityPrefab.entity || currentEntityPrefab.entity.IsDead || currentEntityPrefab == sourceEntityPrefab) { continue; } - // 关系判断:使用 AffiliationManager 提供的接口判断源实体与当前遍历实体之间的关系。 - var currentRelation = - affiliationManager.GetRelation(sourceEntityPrefab.entity, currentEntityPrefab.entity); - if (currentRelation == targetRelationship) + if (currentEntityPrefab.entity is not CombatantEntity) { - // 距离计算与最近实体更新: - // 1. 计算与源实体的距离(使用平方距离优化)。 - // 2. 如果当前实体更近,则更新 nearestTarget 和 minDistanceSqr。 - var distanceSqr = Vector3.SqrMagnitude(currentEntityPrefab.transform.position - sourcePos); - if (distanceSqr < minDistanceSqr) - { - minDistanceSqr = distanceSqr; - nearestTarget = currentEntityPrefab; - } + continue; + } + + var distanceSqr = Vector3.SqrMagnitude(currentEntityPrefab.transform.position - sourcePos); + if (distanceSqr < minDistanceSqr) + { + minDistanceSqr = distanceSqr; + nearestTarget = currentEntityPrefab; } } } - return nearestTarget; // 返回找到的最近实体 + return nearestTarget; } /// /// 在指定维度中,判断是否存在任何与源实体敌对的活跃实体。 /// 此版本修正了将掉落物或子弹识别为敌对派系的问题,现在只考虑可转换为 CombatantEntity 的实体。 + /// 并优化了搜索逻辑,通过先判断派系关系来减少不必要的实体遍历。 /// /// 要搜索的维度ID。 /// 作为参照的源实体预制体。 /// 如果存在敌对的 CombatantEntity 则返回 true,否则返回 false。 public bool ExistsHostile(string dimensionId, EntityPrefab sourceEntityPrefab) { - // 参数校验:确保输入参数有效,避免空引用异常。 - // 使用 Unity 的 null 检查运算符 '!' if (!sourceEntityPrefab || !sourceEntityPrefab.entity) { Debug.LogWarning("实体管理器:ExistsHostile 方法中,源实体预制体或其内部实体为空。无法执行搜索。"); return false; } - - // 新增校验:确保源实体自身是一个 CombatantEntity。 - // 因为我们现在只关注 CombatantEntity 之间的敌对关系。 + var sourceCombatant = sourceEntityPrefab.entity as CombatantEntity; - if (!sourceCombatant) // 使用 Unity 的 null 检查运算符 '!' + + if (!sourceCombatant) { Debug.LogWarning( $"实体管理器:ExistsHostile 方法中,源实体 '{sourceEntityPrefab.name}' 无法转换为 CombatantEntity 类型。无法有效判断是否存在敌对的活跃实体。"); return false; } - + if (sourceCombatant.IsDead) { - return false; // 源 CombatantEntity 已经失效,它无法判断敌对实体。 + return false; } - // 维度数据存在性检查:验证目标维度是否在实体管理器的内部数据结构中被初始化和管理。 if (!_dimensionFactionEntities.TryGetValue(dimensionId, out var factionDict)) { Debug.LogWarning($"实体管理器:ExistsHostile 方法中,维度 '{dimensionId}' 未被初始化或未在内部管理实体。"); return false; } - // 遍历所有实体:遍历维度内的所有派系,再遍历每个派系下的所有实体。 - foreach (var factionEntities in factionDict.Values) + var affiliationManager = AffiliationManager.Instance; // 获取 AffiliationManager 实例一次 + + foreach (var (currentFactionKey, factionEntities) in factionDict) { + + var factionRelation = affiliationManager.GetRelation(sourceCombatant.affiliation, currentFactionKey); + if (factionRelation != Relation.Hostile) + { + continue; + } + foreach (var currentEntityPrefab in factionEntities) { - // 实体有效性及排除源实体自身: - // 1. 排除无效的实体预制体或内部实体。 - // 2. 排除已失效的 CombatantEntity。 - // 3. 排除源实体自身,避免自身判断为敌对。 - if (!currentEntityPrefab || !currentEntityPrefab.entity || - currentEntityPrefab == sourceEntityPrefab) // 源实体自身已被转换为 sourceCombatant 并检查,这里只检查 prefab 引用是否相同 + if (currentEntityPrefab == null || currentEntityPrefab.entity == null || + currentEntityPrefab == sourceEntityPrefab) { continue; } - - // 【核心改动】新增类型检查:只有能转换为 CombatantEntity 的实体才会被进一步判断。 - // 这样可以排除掉落物、子弹等非 CombatantEntity 的实体。 + var currentCombatant = currentEntityPrefab.entity as CombatantEntity; - if (!currentCombatant) // 使用 Unity 的 null 检查运算符 '!' + if (currentCombatant == null || currentCombatant.IsDead) { - continue; // 如果不是 CombatantEntity,则跳过此实体。 - } - - // 检查目标 CombatantEntity 是否已失效(死亡或摧毁)。 - // 同理,这里假设 CombatantEntity 包含 IsDead 属性。 - // **重要:请确保 CombatantEntity 定义了 IsDead 属性,或者替换为更通用的失效状态属性。** - if (currentCombatant.IsDead) - { - continue; // 目标 CombatantEntity 已经失效,不是活跃的敌对实体。 - } - - // 关系判断:判断当前 CombatantEntity 与源 CombatantEntity 是否为“敌对”关系。 - // AffiliationManager.GetRelation 应该接收 CombatantEntity 类型。 - if (AffiliationManager.Instance.GetRelation(sourceCombatant, currentCombatant) == Relation.Hostile) - { - return true; // 找到第一个敌对的 CombatantEntity 即返回 true,提高效率。 + continue; } + return true; } } - return false; // 遍历完所有实体都未找到敌对的 CombatantEntity。 + return false; } /// @@ -913,6 +888,7 @@ namespace Managers $"实体管理器:在场景加载初始化期间,Program 为ID '{dimensionId}' 注册了一个空的 Dimension 对象。这可能表明维度注册存在问题。"); } } + Clock.AddTick(this); } /// diff --git a/Client/Assets/Scripts/Managers/EventManager.cs b/Client/Assets/Scripts/Managers/EventManager.cs index bdf65a2..7b89ac1 100644 --- a/Client/Assets/Scripts/Managers/EventManager.cs +++ b/Client/Assets/Scripts/Managers/EventManager.cs @@ -1,11 +1,13 @@ using System; using System.Collections.Generic; +using System.Linq; using System.Reflection; using Data; using EventWorkClass; using Utils; using UnityEngine; using Base; +using UnityEngine.SceneManagement; namespace Managers { @@ -34,6 +36,8 @@ namespace Managers /// 获取当前加载步骤的描述,用于启动流程的进度显示。 /// public string StepDescription => "正在载入事件和故事"; + + public bool HasStoryDisplay=>_activeStoryPlayers.Any(); /// /// 初始化事件管理器,从定义管理器中加载所有事件定义和故事定义。 @@ -85,8 +89,14 @@ namespace Managers // 将自身注册到时钟系统,以便每帧更新故事播放。 Clock.AddTick(this); + SceneManager.sceneLoaded += OnSceneLoaded; } + private void OnSceneLoaded(Scene scene, LoadSceneMode mode) + { + Clock.AddTick(this); + } + /// /// 清理事件管理器,释放所有已加载的事件和故事定义。 /// diff --git a/Client/Assets/Scripts/Managers/ItemResourceManager.cs b/Client/Assets/Scripts/Managers/ItemResourceManager.cs index 57ff835..7771ad5 100644 --- a/Client/Assets/Scripts/Managers/ItemResourceManager.cs +++ b/Client/Assets/Scripts/Managers/ItemResourceManager.cs @@ -65,18 +65,16 @@ namespace Managers public ItemResource GetItem(string defName) { - return _items.GetValueOrDefault(defName, defaultItem); + return string.IsNullOrEmpty(defName) ? defaultItem : _items.GetValueOrDefault(defName, defaultItem); } public ItemResource FindItemByName(string itemName) { - if (string.IsNullOrEmpty(itemName)) return defaultItem; - return _itemsByName.GetValueOrDefault(itemName)?.FirstOrDefault(); + return string.IsNullOrEmpty(itemName) ? defaultItem : _itemsByName.GetValueOrDefault(itemName)?.FirstOrDefault(); } public List FindAllItemsByName(string itemName) { - if (string.IsNullOrEmpty(itemName)) return new List(); - return _itemsByName.GetValueOrDefault(itemName, new List()); + return string.IsNullOrEmpty(itemName) ? new List() : _itemsByName.GetValueOrDefault(itemName, new List()); } public void Clear() diff --git a/Client/Assets/Scripts/Managers/KeyValueArchiveManager.cs b/Client/Assets/Scripts/Managers/KeyValueArchiveManager.cs new file mode 100644 index 0000000..0323833 --- /dev/null +++ b/Client/Assets/Scripts/Managers/KeyValueArchiveManager.cs @@ -0,0 +1,128 @@ +using System; +using System.Collections.Generic; +using UnityEngine; // 引入 UnityEngine 命名空间以使用 Debug.Log + +namespace Managers +{ + /// + /// 提供一个通用的键值对存档管理器 + /// 允许存储和检索各种类型的数据,并与 SaveManager 集成以进行持久化。 + /// + public class KeyValueArchiveManager : Utils.Singleton, ISavableSingleton, ILaunchManager + { + /// + /// 内部用于存储键值对的字典,标记为 [Savable] 以便 SaveManager 进行序列化和反序列化。 + /// + [Savable] + private Dictionary _data = new Dictionary(); + + /// + /// 私有构造函数,用于单例模式。 + /// 在首次创建实例时,将其注册到 SaveManager。 + /// + public KeyValueArchiveManager() + { + SaveManager.Instance.RegisterSavable(this); + } + + /// + /// 将指定键的值设置为指定值。 + /// 如果键已存在,则更新其值;如果不存在,则添加键值对。 + /// + /// 值的类型。 + /// 要设置的键,不能为空或空白。 + /// 要存储的值。 + /// 当键为 null 或空白时抛出。 + public void Set(string key, T value) + { + if (string.IsNullOrWhiteSpace(key)) + { + throw new ArgumentException("键不能为空或空白。", nameof(key)); + } + + _data[key] = value; + } + + /// + /// 根据指定的键获取存储的值。 + /// + /// 期望值的类型。 + /// 要获取值的键,不能为空或空白。 + /// 如果键不存在或类型不匹配时返回的默认值。默认为类型 T 的默认值。 + /// 与键关联的值,如果键不存在或类型不匹配则返回 defaultValue。 + /// 当键为 null 或空白时抛出。 + public T Get(string key, T defaultValue = default(T)) + { + if (string.IsNullOrWhiteSpace(key)) + { + throw new ArgumentException("键不能为空或空白。", nameof(key)); + } + + if (_data.TryGetValue(key, out object value)) + { + if (value is T typedValue) + { + return typedValue; + } + + Debug.LogWarning( + $"警告: 键 '{key}' 存储的值类型为 '{value.GetType().Name}',但请求的类型为 '{typeof(T).Name}'。返回默认值。"); + } + + return defaultValue; + } + + /// + /// 检查管理器中是否存在指定的键。 + /// + /// 要检查的键,不能为空或空白。 + /// 如果键存在则为 true,否则为 false。 + /// 当键为 null 或空白时抛出。 + public bool HasKey(string key) + { + if (string.IsNullOrWhiteSpace(key)) + { + throw new ArgumentException("键不能为空或空白。", nameof(key)); + } + + return _data.ContainsKey(key); + } + + /// + /// 从管理器中移除指定的键及其对应的值。 + /// + /// 要移除的键,不能为空或空白。 + /// 当键为 null 或空白时抛出。 + public void Remove(string key) + { + if (string.IsNullOrWhiteSpace(key)) + { + throw new ArgumentException("键不能为空或空白。", nameof(key)); + } + + _data.Remove(key); + } + + /// + /// ISavableSingleton 接口实现:当游戏状态需要被彻底重置时调用(例如,开始一个新游戏)。 + /// 将清除所有存储的键值对。 + /// + public void ResetState() + { + _data.Clear(); + } + + // 加载存档数据中的步骤描述。 + public string StepDescription { get; } = "加载存档数据中"; + + public void Init() + { + // 启动初始化逻辑(当前为空) + } + + public void Clear() + { + // 清理逻辑(当前为空) + } + } +} diff --git a/Client/Assets/Scripts/Managers/KeyValueArchiveManager.cs.meta b/Client/Assets/Scripts/Managers/KeyValueArchiveManager.cs.meta new file mode 100644 index 0000000..4b5a82f --- /dev/null +++ b/Client/Assets/Scripts/Managers/KeyValueArchiveManager.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: b8bc5d84a1ec4dcea0b47115691d1284 +timeCreated: 1759402368 \ No newline at end of file diff --git a/Client/Assets/Scripts/Managers/MessageManager.cs b/Client/Assets/Scripts/Managers/MessageManager.cs index 5322564..2561f2c 100644 --- a/Client/Assets/Scripts/Managers/MessageManager.cs +++ b/Client/Assets/Scripts/Managers/MessageManager.cs @@ -25,7 +25,7 @@ namespace Managers SceneManager.sceneLoaded -= OnSceneLoaded; } - public void DisplayMessage(string message, PromptDisplayCategory type,Color? color=null) + public void DisplayMessage(string message, PromptDisplayCategory type,Color? color=null,float showTime=3) { if (!_canvas) { @@ -40,7 +40,7 @@ namespace Managers return; // GenerateTemporaryAnimation的第三个参数是显示时间 TemporaryAnimationManager.Instance.GenerateTemporaryAnimation(message, - Program.Instance.FocusedEntity.Position, 5); // 5秒显示时间 + Program.Instance.FocusedEntity.Position, showTime); // 5秒显示时间 break; case PromptDisplayCategory.Default: @@ -75,6 +75,7 @@ namespace Managers } hintTextInstance.Init(message); // Init 方法会处理动画和生命周期 + hintTextInstance.lifeTime = showTime; // TemporaryAnimatorText 应该在 Init 内部设置好 lifeTime 并自动销毁。 break; @@ -102,8 +103,7 @@ namespace Managers } textInstance.Init(message); // Init 方法会处理动画和生命周期 - // textInstance.lifeTime 可以在 Init 方法内部设置,如果 Init 没有提供参数,这里就无法直接设置。 - // 假设 Init 已经处理好生命周期。 + textInstance.lifeTime = showTime; break; case PromptDisplayCategory.FocusedEntityChatBubble: diff --git a/Client/Assets/Scripts/Managers/SaveManager.cs b/Client/Assets/Scripts/Managers/SaveManager.cs index 70d684c..af225d8 100644 --- a/Client/Assets/Scripts/Managers/SaveManager.cs +++ b/Client/Assets/Scripts/Managers/SaveManager.cs @@ -20,7 +20,7 @@ namespace Managers /// /// 用于标记在单例类中需要被SaveManager存储的属性。 /// - [AttributeUsage(AttributeTargets.Property, AllowMultiple = false, Inherited = true)] + [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, AllowMultiple = false, Inherited = true)] public class SavableAttribute : Attribute { /// @@ -40,13 +40,17 @@ namespace Managers private const string SaveFileName = "game_save.json"; // 存档路径 - private static string SaveFilePath => Path.Combine(Application.persistentDataPath, SaveFileName); + private static string SaveFilePath => Path.Combine("Save", SaveFileName); public string StepDescription => "加载存档中"; // 存储所有需要保存状态的单例实例 private readonly Dictionary _savableSingletons = new(); + ~SaveManager() + { + SaveGame(); // 在销毁时保存游戏 + } /// /// 注册一个需要保存状态的单例实例。 /// @@ -86,33 +90,10 @@ namespace Managers } /// - /// 实现ILaunchManager接口的Clear方法,清空存档数据。 + /// 实现ILaunchManager接口的Clear方法,Clear是重载不做任何事。 /// public void Clear() { - try - { - if (File.Exists(SaveFilePath)) - { - File.Delete(SaveFilePath); - Debug.Log($"SaveManager: 存档文件 '{SaveFileName}' 已删除。"); - } - } - catch (Exception ex) - { - Debug.LogError($"SaveManager: 清空存档数据失败: {ex.Message}"); - } - - // 清空所有注册单例的Savable属性(设置为默认值) - foreach (var singletonEntry in _savableSingletons) - { - var singletonType = singletonEntry.Key; - var singletonInstance = singletonEntry.Value; - foreach (var prop in GetSavableProperties(singletonType)) - { - prop.SetValue(singletonInstance, GetDefaultValue(prop.PropertyType)); - } - } } /// @@ -144,6 +125,12 @@ namespace Managers try { + var directoryPath = Path.GetDirectoryName(SaveFilePath); + if (!string.IsNullOrEmpty(directoryPath) && !Directory.Exists(directoryPath)) + { + Directory.CreateDirectory(directoryPath); + // DEBUG: Debug.Log($"SaveManager: 文件夹 '{directoryPath}' 已创建。"); + } var settings = new JsonSerializerSettings { Formatting = Formatting.Indented, diff --git a/Client/Assets/Scripts/Managers/SkillTreeManager.cs b/Client/Assets/Scripts/Managers/SkillTreeManager.cs index d8b30fa..1ccefa7 100644 --- a/Client/Assets/Scripts/Managers/SkillTreeManager.cs +++ b/Client/Assets/Scripts/Managers/SkillTreeManager.cs @@ -21,11 +21,7 @@ namespace Managers { SaveManager.Instance.RegisterSavable(this); } - - ~SkillTreeManager() - { - SaveManager.Instance.UnregisterSavable(this); - } + public void Init() { diff --git a/Client/Assets/Scripts/Map/Dimension.cs b/Client/Assets/Scripts/Map/Dimension.cs index f9bdfec..ae629cb 100644 --- a/Client/Assets/Scripts/Map/Dimension.cs +++ b/Client/Assets/Scripts/Map/Dimension.cs @@ -1,7 +1,9 @@ +using System; using System.Threading.Tasks; using Data; using Managers; using UnityEngine; +using UnityEngine.Tilemaps; namespace Map { @@ -11,7 +13,7 @@ namespace Map /// public class Dimension : MonoBehaviour { - [SerializeField] private bool defaultOpen = false; + [SerializeField] private bool defaultOpen; [SerializeField] [Tooltip("此维度的唯一标识符。如果为空,将使用GameObject的名称。")] @@ -22,13 +24,14 @@ namespace Map public Vector3 cameraPosition = new(0, 0, -10); public Entity.Entity focusEntity; - - public string mapGeneratorId; + public DimensionDef dimensionDefinition; - - public Vector2Int DimensionSize { get;private set; } - - public event System.Action OnDimensionLoaded; + + public Vector2Int DimensionSize { get; private set; } + public TileBase airWall; + + public event Action OnDimensionLoaded; + /// /// 获取此维度的唯一标识符。 /// @@ -38,7 +41,7 @@ namespace Map { if (string.IsNullOrEmpty(_dimensionId)) { - _dimensionId = gameObject.name; // 如果未设置,默认使用GameObject名称 + _dimensionId = Guid.NewGuid().ToString(); } return _dimensionId; @@ -54,12 +57,14 @@ namespace Map private void Awake() { + if (!airWall) + { + airWall = Resources.Load("Tile/AirWall"); + } - // 1. 确保 DimensionId 已初始化,这会触发 DimensionId 属性的 getter 逻辑 - var id = DimensionId; - // 2. 创建一个用于存放此维度下所有实体的根GameObject,方便管理 + var id = DimensionId; // 确保 DimensionId 已初始化 var rootObj = new GameObject($"_Entities_{id}"); - rootObj.transform.SetParent(this.transform); // 将其作为Dimension对象的子对象 + rootObj.transform.SetParent(transform); DimensionRoot = rootObj.transform; Program.Instance.RegisterDimension(this); @@ -69,32 +74,34 @@ namespace Map Program.Instance.SetFocusedDimension(_dimensionId); } - mapGeneratorId = Configs.ConfigManager.Instance.GetValue(DimensionId); + var mapGeneratorId = Configs.ConfigManager.Instance.GetValue(DimensionId); if (!string.IsNullOrEmpty(mapGeneratorId)) { - dimensionDefinition=DefineManager.Instance.FindDefine(mapGeneratorId); + dimensionDefinition = DefineManager.Instance.FindDefine(mapGeneratorId); if (dimensionDefinition != null) { - _=ApplyDimensionDef(dimensionDefinition); + _ = ApplyDimensionDef(dimensionDefinition); } } - } - private void OnDestroy() { - // 当 Dimension 对象被销毁时(例如,场景卸载),从 Program 和 EntityManage 注销 if (Program.Instance != null) // 检查单例是否仍然存在 { Program.Instance.UnregisterDimension(this); } } - private async Task ApplyDimensionDef(DimensionDef def) + /// + /// 应用维度定义,生成地图并设置边界。 + /// + /// 要应用的维度定义。 + public async Task ApplyDimensionDef(DimensionDef def) { - var maxWidth = DimensionSize.x; // 初始化为当前的维度尺寸 - var maxHeight = DimensionSize.y; // 初始化为当前的维度尺寸 + landform.Clear(); + var maxWidth = DimensionSize.x; + var maxHeight = DimensionSize.y; if (def.mapGenerators != null) { @@ -107,18 +114,39 @@ namespace Map maxWidth = Mathf.Max(maxWidth, requiredSize.x); maxHeight = Mathf.Max(maxHeight, requiredSize.y); } - + DimensionSize = new Vector2Int(maxWidth, maxHeight); - cameraPosition = new Vector3(DimensionSize.x / 2f, DimensionSize.y / 2f, -10)+transform.position; + cameraPosition = new Vector3(DimensionSize.x / 2f, DimensionSize.y / 2f, -10) + transform.position; foreach (var defMapGenerator in def.mapGenerators) { await TileManager.Instance.ApplyMapGenerator(defMapGenerator.defName, landform); } } - OnDimensionLoaded.Invoke(this); - } - - } + var size = landform.GetSize(); + var origin = landform.GetOrigin(); + var minX = origin.x; + var minY = origin.y; + var maxX = origin.x + size.x - 1; + var maxY = origin.y + size.y - 1; + const int borderWidth = 1; + var airWallZ = origin.z; -} \ No newline at end of file + // 绘制上下边界 + for (var x = minX - borderWidth; x <= maxX + borderWidth; x++) + { + landform.SetBaseTile(airWall, new Vector3Int(x, maxY + borderWidth, airWallZ)); + landform.SetBaseTile(airWall, new Vector3Int(x, minY - borderWidth, airWallZ)); + } + + // 绘制左右边界 + for (var y = minY - borderWidth + 1; y <= maxY + borderWidth - 1; y++) + { + landform.SetBaseTile(airWall, new Vector3Int(minX - borderWidth, y, airWallZ)); // 左侧 + landform.SetBaseTile(airWall, new Vector3Int(maxX + borderWidth, y, airWallZ)); // 右侧 + } + + OnDimensionLoaded?.Invoke(this); + } + } +} diff --git a/Client/Assets/Scripts/Map/Landform.cs b/Client/Assets/Scripts/Map/Landform.cs index f7cd90b..0b3bf8d 100644 --- a/Client/Assets/Scripts/Map/Landform.cs +++ b/Client/Assets/Scripts/Map/Landform.cs @@ -1,26 +1,41 @@ using UnityEngine; using UnityEngine.Tilemaps; -using Data; // For TileDef -using System.Collections.Generic; -using Managers; // For Dictionary +using Data; +using Managers; namespace Map { public class Landform : MonoBehaviour { + // 基础地形瓦片地图 public Tilemap baseTilemap; + // 建筑瓦片地图 public Tilemap buildingTilemap; + // 植物瓦片地图 public Tilemap plantTilemap; + // 维度信息 public Dimension dimension; - // 定义瓦片状态结构体 + + /// + /// 定义瓦片状态结构体 + /// public struct TileState { - public Vector3Int position; // 瓦片的世界坐标 + // 瓦片的世界坐标 + public Vector3Int position; + // 碰撞体类型 public Tile.ColliderType colliderType; + // 通行成本 public float travelCost; + /// + /// 构造函数,初始化瓦片状态。 + /// + /// 瓦片的世界坐标。 + /// 碰撞体类型。 + /// 通行成本。 public TileState(Vector3Int pos, Tile.ColliderType collider, float cost) { position = pos; @@ -29,26 +44,63 @@ namespace Map } } + /// + /// 初始化函数,目前为空。 + /// public void Init() { } + /// + /// 获取当前地形所属的维度ID。 + /// + /// 维度ID字符串。 public string GetDimensionID() { - return dimension.DimensionId; + if (dimension) return dimension.DimensionId; + Debug.LogWarning("Landform未分配Dimension对象,返回默认ID。"); + return "dimension_not_set"; + } + /// + /// 获取基础瓦片地图的尺寸。 + /// + /// 瓦片地图的尺寸 (Vector3Int)。 public Vector3Int GetSize() { return baseTilemap.size; } + public Vector3Int GetOrigin() + { + return baseTilemap.origin; + } + + /// + /// 将格子坐标转换为世界坐标。 + /// + /// 格子坐标。 + /// 对应的世界坐标。 public Vector3 GetWorldCoordinates(Vector3Int coord) { return baseTilemap.CellToWorld(coord); } + /// + /// 将世界坐标转换为格子坐标。 + /// + /// 世界坐标。 + /// 对应的格子坐标。 + public Vector3Int GetCellCoordinates(Vector3 worldPosition) + { + return baseTilemap.WorldToCell(worldPosition); + } + + /// + /// 清除所有瓦片地图上的所有瓦片。 + /// public void Clear() { baseTilemap.ClearAllTiles(); @@ -56,104 +108,256 @@ namespace Map plantTilemap.ClearAllTiles(); } + /// + /// 私有辅助方法:安全地从指定Tilemap层获取TileDef。 + /// + /// 要查询的Tilemap。 + /// 格子坐标。 + /// 找到的TileDef,如果没有瓦片或定义则为null。 + private TileDef GetTileDef(Tilemap tilemap, Vector3Int cellPosition) + { + var tile = tilemap.GetTile(cellPosition); + return tile ? DefineManager.Instance.FindDefine(tile.name) : null; + } + + /// + /// 私有辅助方法:从指定的Tilemap层获取瓦片的通行信息。 + /// 可以确定瓦片是否导致不可通行,并返回其通行成本。 + /// + /// 要查询的Tilemap。 + /// 格子坐标。 + /// 一个元组,包含可空成本 (null表示无特定成本) 和是否不可通行。 + private (float? cost, bool isImpassable) _GetTileCostInfo(Tilemap tilemap, Vector3Int cellPosition) + { + var tile = tilemap.GetTile(cellPosition); + if (!tile) + { + return (null, false); // 该层无瓦片 + } + + var tileDef = DefineManager.Instance.FindDefine(tile.name); + if (tileDef == null) + { + // 如果瓦片存在但无定义,视为其不影响通行成本,也不导致路径阻塞。 + return (null, false); + } + + // 如果瓦片有碰撞体或者其定义通行成本已经达到或超过 1f,则该瓦片使得格子不可通行。 + if (tileDef.collider != Tile.ColliderType.None || tileDef.tileCost >= 1f) + { + return (1f, true); // 不可通行 + } + + return (tileDef.tileCost, false); // 可通行,并返回其成本 + } + /// /// 获取指定格子坐标上的瓦片状态,包括碰撞体类型和通行成本。 - /// 优先级:buildingTilemap > plantTilemap > baseTilemap。 + /// 优先级:buildingTilemap > plantTilemap > baseTilemap。 + /// 此函数经优化以减少GC。 /// /// 要查询的格子坐标。 /// 包含瓦片碰撞体类型和通行成本的TileState结构。 public TileState GetTileState(Vector3Int cellPosition) { - Tile.ColliderType finalColliderType = Tile.ColliderType.None; - float finalTravelCost = 0f; // 默认通行成本 + var buildingTileDef = GetTileDef(buildingTilemap, cellPosition); + var plantTileDef = GetTileDef(plantTilemap, cellPosition); + var baseTileDef = GetTileDef(baseTilemap, cellPosition); - // 瓦片层级优先级:Building > Plant > Base - // 存储查询到的瓦片定义及其所属Tilemap,用于后续决定通行成本 - Dictionary activeTiles = new Dictionary(); + var finalColliderType = Tile.ColliderType.None; + var finalTravelCost = 0f; - // 1. 尝试从 Building 层获取瓦片信息 - TileBase buildingTile = buildingTilemap.GetTile(cellPosition); - if (buildingTile != null && DefineManager.Instance != null) // 确保DefineManager已实例化 + // 确定最终的碰撞体类型 (优先级 Building > Plant > Base) + if (buildingTileDef != null && buildingTileDef.collider != Tile.ColliderType.None) { - TileDef buildingTileDef = DefineManager.Instance.FindDefine(buildingTile.name); - if (buildingTileDef != null) - { - activeTiles[buildingTilemap] = (buildingTile, buildingTileDef); - if (buildingTileDef.collider != Tile.ColliderType.None) - { - finalColliderType = buildingTileDef.collider; // Building层的碰撞体优先级最高 - } - } + finalColliderType = buildingTileDef.collider; + } + else if (plantTileDef != null && plantTileDef.collider != Tile.ColliderType.None) + { + finalColliderType = plantTileDef.collider; + } + else if (baseTileDef != null && baseTileDef.collider != Tile.ColliderType.None) + { + finalColliderType = baseTileDef.collider; } - // 2. 尝试从 Plant 层获取瓦片信息 (只有当 Building 层没有提供碰撞体时才考虑) - if (finalColliderType == Tile.ColliderType.None) - { - TileBase plantTile = plantTilemap.GetTile(cellPosition); - if (plantTile != null && DefineManager.Instance != null) - { - TileDef plantTileDef = DefineManager.Instance.FindDefine(plantTile.name); - if (plantTileDef != null) - { - activeTiles[plantTilemap] = (plantTile, plantTileDef); - if (plantTileDef.collider != Tile.ColliderType.None) - { - finalColliderType = plantTileDef.collider; // Plant层的碰撞体优先级次之 - } - } - } - } - - // 3. 尝试从 Base 层获取瓦片信息 (只有当 Building 和 Plant 层都没有提供碰撞体时才考虑) - if (finalColliderType == Tile.ColliderType.None) - { - TileBase baseTile = baseTilemap.GetTile(cellPosition); - if (baseTile != null && DefineManager.Instance != null) - { - TileDef baseTileDef = DefineManager.Instance.FindDefine(baseTile.name); - if (baseTileDef != null) - { - activeTiles[baseTilemap] = (baseTile, baseTileDef); - if (baseTileDef.collider != Tile.ColliderType.None) - { - finalColliderType = baseTileDef.collider; // Base层的碰撞体优先级最低 - } - } - } - } - - // 根据最终碰撞体类型确定通行成本 + // 确定最终的通行成本 if (finalColliderType != Tile.ColliderType.None) { - finalTravelCost = 1f; // 有碰撞体时,通行成本为1(不可通过) + finalTravelCost = 1f; // 有碰撞体,则通行成本为1 (不可通过) } else { // 如果没有碰撞体,则取优先级最高的瓦片的tileCost作为最终通行成本。 // 优先级 Building > Plant > Base - TileDef highestPriorityDefWithCost = null; - - if (activeTiles.ContainsKey(buildingTilemap)) + if (buildingTileDef != null) { - highestPriorityDefWithCost = activeTiles[buildingTilemap].def; + finalTravelCost = buildingTileDef.tileCost; } - else if (activeTiles.ContainsKey(plantTilemap)) + else if (plantTileDef != null) { - highestPriorityDefWithCost = activeTiles[plantTilemap].def; + finalTravelCost = plantTileDef.tileCost; } - else if (activeTiles.ContainsKey(baseTilemap)) + else if (baseTileDef != null) { - highestPriorityDefWithCost = activeTiles[baseTilemap].def; + finalTravelCost = baseTileDef.tileCost; } - - if (highestPriorityDefWithCost != null) - { - finalTravelCost = highestPriorityDefWithCost.tileCost; - } - // 如果任何层都没有有效瓦片(或DefineManager未实例化),则保持 finalTravelCost 为默认值 0f + // 如果没有任何有效的瓦片定义,finalTravelCost 保持默认值 0f } return new TileState(cellPosition, finalColliderType, finalTravelCost); } + + /// + /// 获取指定世界坐标上的瓦片状态,包括碰撞体类型和通行成本。 + /// + /// 要查询的世界坐标。 + /// 包含瓦片碰撞体类型和通行成本的TileState结构。 + public TileState GetTileState(Vector3 worldPosition) + { + var cellPosition = baseTilemap.WorldToCell(worldPosition); + return GetTileState(cellPosition); + } + + /// + /// 获取指定格子坐标的通行成本。 + /// 优先级:buildingTilemap > plantTilemap > baseTilemap。 + /// 区域外、存在碰撞体或通行成本达到1f的区域均视为不可通行 (返回1f)。 + /// 此函数为路径查找优化,避免GC。 + /// + /// 要查询的格子坐标。 + /// 通行成本(速度降低率),1f表示不可通行。 + public float GetTravelCost(Vector3Int cellPosition) + { + // 0. 检查格子是否在基本地图区域(baseTilemap.cellBounds)之外。 + // 假设baseTilemap.cellBounds定义了陆地的总体逻辑边界。 + if (!baseTilemap.cellBounds.Contains(cellPosition)) + { + return 1f; // 区域外始终为1 (不可通行) + } + + float? highestPriorityTraversableCost = null; // 用于存储最高优先级的可通行成本 + + // 1. 检查 Building 层 + var buildingResult = _GetTileCostInfo(buildingTilemap, cellPosition); + if (buildingResult.isImpassable) + { + return 1f; // Building 层导致不可通行 + } + + if (buildingResult.cost.HasValue) + { + highestPriorityTraversableCost = buildingResult.cost.Value; + } + + // 2. 检查 Plant 层 (仅当 Building 层未导致不可通行且未提供通行成本时) + if (!highestPriorityTraversableCost.HasValue) // Building层未提供有效成本时,才考虑Plant层 + { + var plantResult = _GetTileCostInfo(plantTilemap, cellPosition); + if (plantResult.isImpassable) + { + return 1f; // Plant 层导致不可通行 + } + + if (plantResult.cost.HasValue) + { + highestPriorityTraversableCost = plantResult.cost.Value; + } + } + + // 3. 检查 Base 层 (仅当 Building 和 Plant 层均未导致不可通行且未提供通行成本时) + if (!highestPriorityTraversableCost.HasValue) // Building和Plant层都未提供有效成本时,才考虑Base层 + { + var baseResult = _GetTileCostInfo(baseTilemap, cellPosition); + if (baseResult.isImpassable) + { + return 1f; // Base 层导致不可通行 + } + + if (baseResult.cost.HasValue) + { + highestPriorityTraversableCost = baseResult.cost.Value; + } + } + + // 如果没有发现不可通行的条件,返回最高优先级的可通行成本,如果都没有则为 0f (完全可通行)。 + var finalCost = highestPriorityTraversableCost ?? 0f; + // 再次确认最终成本,如果达到或超过1f,依然视为不可通行。 + if (finalCost >= 1f) + { + return 1f; + } + + return finalCost; + } + + public float GetTravelCost(Vector3 cellPosition) + { + return GetTravelCost(GetCellCoordinates(cellPosition)); + } + /// + /// 获取实体所占区域的通行成本。 + /// 如果区域内任何一个格子不可通行 (GetTravelCost返回1f),则整个区域不可通行 (返回1f)。 + /// 否则,取实体中心格子的通行成本。 + /// 此函数适用于具有体积的实体进行路径查找。 + /// + /// 实体的瓦片坐标。 + /// 实体的尺寸,以格子为单位 (例如:Vector3Int(2, 2, 1) 表示一个 2x2 的实体)。 + /// 区域的通行成本(速度降低率),1f表示不可通行。 + public float GetTravelCostForArea(Vector3Int worldPosition, Vector3Int size) + { + // 将传入的格子坐标视为实体的中心格子 + var entityCenterCell = worldPosition; + + var minX = entityCenterCell.x - size.x / 2; + var minY = entityCenterCell.y - size.y / 2; + + var maxX = minX + size.x; + var maxY = minY + size.y; + + // 遍历实体覆盖的所有格子 + for (var x = minX; x < maxX; x++) + { + for (var y = minY; y < maxY; y++) + { + // 对于当前遍历的每个格子,其Z坐标使用实体中心格子的Z坐标 + var currentCell = new Vector3Int(x, y, entityCenterCell.z); + + // 使用优化过的 GetTravelCost 函数判断每个格子的通行成本 + // 假设 GetTravelCost(Vector3Int cellPosition) 是最底层的、直接获取格子通行成本的函数 + var cellCost = GetTravelCost(currentCell); + if (cellCost >= 1f) + { + return 1f; // 区域内任何一个格子不可通行,则整个区域不可通行 (快速失败原则) + } + } + } + + // 如果所有覆盖的格子都可通行,则返回实体中心格子的通行成本 + return GetTravelCost(entityCenterCell); + } + + /// + /// 获取实体所占区域的通行成本。 + /// 如果区域内任何一个格子不可通行 (GetTravelCost返回1f),则整个区域不可通行 (返回1f)。 + /// 否则,取实体中心格子的通行成本。 + /// 此函数适用于具有体积的实体进行路径查找。 + /// + /// 实体的世界坐标 (假定为中心点)。 + /// 实体的尺寸,以格子为单位 (例如:Vector3Int(2, 2, 1) 表示一个 2x2 的实体)。 + /// 区域的通行成本(速度降低率),1f表示不可通行。 + public float GetTravelCostForArea(Vector3 worldPosition, Vector3Int size) + { + // 将实体的世界坐标转换为其所在的格子坐标,然后调用基于格子坐标的重载函数 + var entityCenterCell = baseTilemap.WorldToCell(worldPosition); + return GetTravelCostForArea(entityCenterCell, size); + } + + public TileBase SetBaseTile(TileBase tile, Vector3Int position) + { + var current=baseTilemap.GetTile(position); + baseTilemap.SetTile(position, tile); + return current; + } } } diff --git a/Client/Assets/Scripts/Parsing/ConditionFunctions.cs b/Client/Assets/Scripts/Parsing/ConditionFunctions.cs index 49e80c3..8d7df37 100644 --- a/Client/Assets/Scripts/Parsing/ConditionFunctions.cs +++ b/Client/Assets/Scripts/Parsing/ConditionFunctions.cs @@ -6,7 +6,7 @@ namespace Parsing { public static bool EntityHealth(Entity.Entity entity, int minHealth) { - return entity.attributes.health >= minHealth; + return entity.AttributesNow.health >= minHealth; } public static bool HasEnemyInSight(Entity.Entity entity) diff --git a/Client/Assets/Scripts/Prefab/BaseAnimator.cs b/Client/Assets/Scripts/Prefab/BaseAnimator.cs index 8d1f583..57b45f7 100644 --- a/Client/Assets/Scripts/Prefab/BaseAnimator.cs +++ b/Client/Assets/Scripts/Prefab/BaseAnimator.cs @@ -334,5 +334,6 @@ namespace Base /// /// 新的静态精灵。 public void SetStaticSprite(Sprite sprite) => _staticSprite = sprite; + } } diff --git a/Client/Assets/Scripts/Prefab/EntityPrefab.cs b/Client/Assets/Scripts/Prefab/EntityPrefab.cs index 42fed65..b850d4b 100644 --- a/Client/Assets/Scripts/Prefab/EntityPrefab.cs +++ b/Client/Assets/Scripts/Prefab/EntityPrefab.cs @@ -28,9 +28,9 @@ namespace Prefab public void Init(Data.EntityDef entityDef) { entity.Init(entityDef); - outline.Init(); outline.Hide(); + } public void DefaultInit() diff --git a/Client/Assets/Scripts/Prefab/RightMenuPrefab.cs b/Client/Assets/Scripts/Prefab/RightMenuPrefab.cs index 1e48ed4..f967d90 100644 --- a/Client/Assets/Scripts/Prefab/RightMenuPrefab.cs +++ b/Client/Assets/Scripts/Prefab/RightMenuPrefab.cs @@ -41,20 +41,10 @@ namespace Prefab // 创建一个新的回调函数,包含原始回调和隐藏菜单的操作 UnityAction wrappedCallback = () => { - try - { - // 执行原始回调 - callback?.Invoke(); - } - catch (System.Exception e) - { - Debug.LogError($"Error executing callback for button '{label}': {e.Message}"); - } - finally - { - // 隐藏菜单 - Hide(); - } + // 执行原始回调 + callback?.Invoke(); + // 隐藏菜单 + Hide(); }; // 添加包装后的回调 diff --git a/Client/Assets/Scripts/Prefab/SpriteAnimator.cs b/Client/Assets/Scripts/Prefab/SpriteAnimator.cs index ff2c774..4bac161 100644 --- a/Client/Assets/Scripts/Prefab/SpriteAnimator.cs +++ b/Client/Assets/Scripts/Prefab/SpriteAnimator.cs @@ -18,11 +18,13 @@ namespace Prefab protected override void SetDisplaySprite(Sprite sprite) { - if (_renderer) - { - _renderer.sprite = sprite; - } + _renderer.sprite = sprite; + } + + public void Flip(bool x, bool y) + { + _renderer.flipX = x; + _renderer.flipY = y; } - } } \ No newline at end of file diff --git a/Client/Assets/Scripts/Prefab/UIImageAnimator.cs b/Client/Assets/Scripts/Prefab/UIImageAnimator.cs index 9f9c183..4e7bdfa 100644 --- a/Client/Assets/Scripts/Prefab/UIImageAnimator.cs +++ b/Client/Assets/Scripts/Prefab/UIImageAnimator.cs @@ -25,17 +25,8 @@ namespace Prefab protected override void SetDisplaySprite(Sprite sprite) { - if (_image) - { - _image.sprite = sprite; - } + _image.sprite = sprite; } - // [可选] 如果UIImageAnimator需要任何Awake后特有的初始化逻辑,可以在这里重写 - // protected override void Awake() - // { - // base.Awake(); // 确保调用基类的Awake - // // 子类特有的初始化 - // } } } \ No newline at end of file diff --git a/Client/Assets/Scripts/Program.cs b/Client/Assets/Scripts/Program.cs index a34e0ba..37f6c7c 100644 --- a/Client/Assets/Scripts/Program.cs +++ b/Client/Assets/Scripts/Program.cs @@ -4,9 +4,12 @@ using System.Collections.Generic; using System.Linq; using Base; using Data; +using Entity; using Managers; using UnityEngine; +using UnityEngine.SceneManagement; using Utils; +using Random = UnityEngine.Random; /// /// Program 类作为单例模式的核心管理器,负责维护和管理游戏或应用中的维度(Dimension)实例和焦点状态。 @@ -91,7 +94,17 @@ public class Program : Singleton public bool CanOpenRightMenu => Setting.Instance.CurrentSettings.developerMode && !OnPlay; - public bool CanMoveCamera => CanOpenRightMenu; + public bool CanMoveCamera => CanOpenRightMenu && !UIInputControl.Instance.HasWindowOpen; + + public DimensionDef OutsidePlayDimension { get; private set; } = null; + + public int CoinCount + { + get => KeyValueArchiveManager.Instance.Get("coinCount"); + set => KeyValueArchiveManager.Instance.Set("coinCount", value); + } + + @@ -231,15 +244,36 @@ public class Program : Singleton OnFocusedEntityChanged?.Invoke(FocusedEntity); } - public void PlayGame(CharacterDef character) + public void SelectCharacterPlayGame(CharacterDef character) { CurrentCharacter = character; if (character == null) return; + PutPlayer(); + } + + public void PutPlayer() + { + if (FocusedEntity != null || CurrentCharacter == null) + return; var pos = CameraControl.CameraControl.Instance.Position; - var player = EntityManager.Instance.GenerateEntity(FocusedDimensionId, character, new Vector3(pos.x, pos.y)); - if(!player) + var player = + EntityManager.Instance.GenerateCharacterEntity(FocusedDimensionId, CurrentCharacter, + new Vector3(pos.x, pos.y)); + if (!player) return; player.entity.PlayerControlled = true; } + + public void StartPlayGame(DimensionDef dimension) + { + OutsidePlayDimension=dimension; + PerlinNoise.Instance.Reinitialize(Random.Range(int.MinValue, int.MaxValue)); + SceneManager.LoadScene("Play"); + } + + public void EndPlayGame() + { + OutsidePlayDimension = null; + } } diff --git a/Client/Assets/Scripts/UI/CoinCountUI.cs b/Client/Assets/Scripts/UI/CoinCountUI.cs index c747d5e..957c2de 100644 --- a/Client/Assets/Scripts/UI/CoinCountUI.cs +++ b/Client/Assets/Scripts/UI/CoinCountUI.cs @@ -1,4 +1,5 @@ using System; +using Entity; using TMPro; using UnityEngine; @@ -7,10 +8,21 @@ namespace UI public class CoinCountUI:MonoBehaviour { public TMP_Text text; + public int coinCount; private void Start() { - + text.text = coinCount.ToString(); + } + + private void Update() + { + var playerEntity = Program.Instance.FocusedEntity as Character; + if (!playerEntity || playerEntity.Coin == null) + return; + if (coinCount == playerEntity.Coin.Quantity) return; + coinCount = playerEntity.Coin.Quantity; + text.text = coinCount.ToString(); } } } \ No newline at end of file diff --git a/Client/Assets/Scripts/UI/DevMenuUI.cs b/Client/Assets/Scripts/UI/DevMenuUI.cs index 7877e03..1dc5605 100644 --- a/Client/Assets/Scripts/UI/DevMenuUI.cs +++ b/Client/Assets/Scripts/UI/DevMenuUI.cs @@ -176,9 +176,11 @@ namespace UI private void GenerateEntityCallback(EntityDef entityDef) { + if(entityDef==null) + return; entityPlacementUI.currentAction = () => { - Managers.EntityManager.Instance.GenerateEntity(Program.Instance.FocusedDimensionId, entityDef, Utils.MousePosition.GetWorldPosition()); + Managers.EntityManager.Instance.GenerateCharacterEntity(Program.Instance.FocusedDimensionId, entityDef, Utils.MousePosition.GetWorldPosition()); }; entityPlacementUI.Prompt = $"当前生成器:\n名称:{entityDef.label}\n描述:{entityDef.description}"; entityPlacementUI.snapEnabled = false; @@ -186,6 +188,8 @@ namespace UI } private void GenerateMonsterEntityCallback(MonsterDef monsterDef) { + if(monsterDef==null) + return; entityPlacementUI.currentAction = () => { Managers.EntityManager.Instance.GenerateMonsterEntity(Program.Instance.FocusedDimensionId, monsterDef, Utils.MousePosition.GetWorldPosition()); @@ -196,6 +200,8 @@ namespace UI } private void GenerateBuildingCallback(BuildingDef def) { + if(def==null) + return; entityPlacementUI.currentAction = () => { Managers.EntityManager.Instance.GenerateBuildingEntity(Program.Instance.FocusedDimensionId, def, Utils.MousePosition.GetSnappedWorldPosition()); @@ -206,6 +212,8 @@ namespace UI } private void GeneratePickupCallback(ItemDef itemDef) { + if(itemDef==null) + return; entityPlacementUI.currentAction = () => { Managers.EntityManager.Instance.GeneratePickupEntity(Program.Instance.FocusedDimensionId, itemDef, Utils.MousePosition.GetWorldPosition()); diff --git a/Client/Assets/Scripts/UI/EntityPlacementUI.cs b/Client/Assets/Scripts/UI/EntityPlacementUI.cs index 3090c82..9a6078c 100644 --- a/Client/Assets/Scripts/UI/EntityPlacementUI.cs +++ b/Client/Assets/Scripts/UI/EntityPlacementUI.cs @@ -22,8 +22,6 @@ namespace UI } public void TickUI() { - if (!IsVisible) - return; if (Input.GetKeyDown(KeyCode.Escape)) { Base.UIInputControl.Instance.Hide(this); @@ -48,12 +46,14 @@ namespace UI { base.Show(); focusBox.SetActive(true); + Clock.AddTickUI(this); } - override public void Hide() + public override void Hide() { base.Hide(); focusBox.SetActive(false); + Clock.RemoveTickUI(this); } } } \ No newline at end of file diff --git a/Client/Assets/Scripts/UI/EquipmentUI.cs b/Client/Assets/Scripts/UI/EquipmentUI.cs index 454dac1..ecc0d94 100644 --- a/Client/Assets/Scripts/UI/EquipmentUI.cs +++ b/Client/Assets/Scripts/UI/EquipmentUI.cs @@ -37,9 +37,9 @@ namespace UI Program.Instance.OnFocusedEntityChanged -= FocusEntityChanged; } // 如果聚焦实体及其背包存在,则取消订阅背包改变事件。 - if (focusedEntity != null && focusedEntity.Inventory != null) + if (focusedEntity != null && focusedEntity.PlayerInventory != null) { - focusedEntity.Inventory.OnInventoryChanged -= UpdateUI; + focusedEntity.PlayerInventory.OnInventoryChanged -= UpdateUI; } Clock.RemoveTick(this); } @@ -72,7 +72,7 @@ namespace UI // 如果存在旧的聚焦实体,则先取消订阅其背包改变事件。 if (focusedEntity) { - focusedEntity.Inventory.OnInventoryChanged -= UpdateUI; + focusedEntity.PlayerInventory.OnInventoryChanged -= UpdateUI; } // 设置新的聚焦实体,并尝试将其转换为 Character 类型。 @@ -81,7 +81,7 @@ namespace UI // 如果新的聚焦实体存在且是 Character 类型,则订阅其背包改变事件。 if (focusedEntity) { - focusedEntity.Inventory.OnInventoryChanged += UpdateUI; + focusedEntity.PlayerInventory.OnInventoryChanged += UpdateUI; } // 聚焦实体改变后更新 UI 显示。 @@ -102,7 +102,7 @@ namespace UI // 遍历角色的前三个装备槽(假设物品栏只显示前3个槽位)。 for (var i = 0; i < 3; i++) { - var slot = focusedEntity.Inventory.GetSlot(i); + var slot = focusedEntity.PlayerInventory.GetSlot(i); if (i == currentSelectedIndex) { diff --git a/Client/Assets/Scripts/UI/FullScreenUI.cs b/Client/Assets/Scripts/UI/FullScreenUI.cs index d7bb6a9..a5825e7 100644 --- a/Client/Assets/Scripts/UI/FullScreenUI.cs +++ b/Client/Assets/Scripts/UI/FullScreenUI.cs @@ -15,7 +15,6 @@ namespace UI private void OnEnable() { Clock.AddTickUI(this); - } private void OnDisable() @@ -25,8 +24,6 @@ namespace UI public virtual void TickUI() { - if(!IsVisible) - return; if (Input.GetKeyDown(KeyCode.Escape) || Input.GetKeyDown(actionButton)) UIInputControl.Instance.Hide(this); } diff --git a/Client/Assets/Scripts/UI/MapViewUI.cs b/Client/Assets/Scripts/UI/MapViewUI.cs new file mode 100644 index 0000000..228858e --- /dev/null +++ b/Client/Assets/Scripts/UI/MapViewUI.cs @@ -0,0 +1,24 @@ +using Data; +using Managers; +using TMPro; +using UnityEngine; +using UnityEngine.UI; + +namespace UI +{ + public class MapViewUI:MonoBehaviour + { + public TMP_Text text; + public Image icon; + public DimensionDef DimensionDefine; + + public void Init(DimensionDef dimensionDef) + { + if (dimensionDef == null) return; + text.text = $"{dimensionDef.label}\n{dimensionDef.description}"; + if (!string.IsNullOrEmpty(dimensionDef.icon)) + icon.sprite = PackagesImageManager.Instance.GetSprite(dimensionDef.icon); + DimensionDefine=dimensionDef; + } + } +} \ No newline at end of file diff --git a/Client/Assets/Scripts/UI/MapViewUI.cs.meta b/Client/Assets/Scripts/UI/MapViewUI.cs.meta new file mode 100644 index 0000000..493c393 --- /dev/null +++ b/Client/Assets/Scripts/UI/MapViewUI.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: a17823520b234a3297fea4642b69a4d7 +timeCreated: 1759363251 \ No newline at end of file diff --git a/Client/Assets/Scripts/UI/PlayerStateUI.cs b/Client/Assets/Scripts/UI/PlayerStateUI.cs index 575f7a6..0ea0c5c 100644 --- a/Client/Assets/Scripts/UI/PlayerStateUI.cs +++ b/Client/Assets/Scripts/UI/PlayerStateUI.cs @@ -6,7 +6,7 @@ using UnityEngine; namespace UI { - public class PlayerStateUI : MonoBehaviour, Base.ITick + public class PlayerStateUI : MonoBehaviour, ITick { [SerializeField] private BarUI focusedEntityHP; [SerializeField] private BarUI lastEntityHP; @@ -17,14 +17,14 @@ namespace UI [SerializeField] private BuffIconListUI focuseEntityBuffIconList; [SerializeField] private BuffIconListUI lastEntityBuffIconList; [SerializeField] private AttackModeUI attackMode; - + public void Tick() { var focusedEntity = Program.Instance.FocusedEntity; if (focusedEntity && focusedEntity.entityDef != null) { focusedEntityHP.Progress = - (float)focusedEntity.attributes.health / focusedEntity.entityDef.attributes.health; + (float)focusedEntity.AttributesNow.health / focusedEntity.entityDef.attributes.health; } } @@ -39,6 +39,8 @@ namespace UI focuseEntityBuffIconList.gameObject.SetActive(true); lastEntityBuffIconList.gameObject.SetActive(true); attackMode.gameObject.SetActive(true); + + Clock.AddTick(this); } public void Hide() @@ -52,11 +54,14 @@ namespace UI focuseEntityBuffIconList.gameObject.SetActive(false); lastEntityBuffIconList.gameObject.SetActive(false); attackMode.gameObject.SetActive(false); + + Clock.RemoveTick(this); } private void Start() { UIInputControl.Instance.OnWindowVisibilityChanged += UIChange; + Clock.AddTick(this); } private void OnDestroy() diff --git a/Client/Assets/Scripts/UI/SelectCharacterUI.cs b/Client/Assets/Scripts/UI/SelectCharacterUI.cs index 63ab8ea..7ac446a 100644 --- a/Client/Assets/Scripts/UI/SelectCharacterUI.cs +++ b/Client/Assets/Scripts/UI/SelectCharacterUI.cs @@ -238,7 +238,7 @@ namespace UI } gameObject.SetActive(false); - Program.Instance.PlayGame(SelectedCharacter); + Program.Instance.SelectCharacterPlayGame(SelectedCharacter); } } } \ No newline at end of file diff --git a/Client/Assets/Scripts/UI/SkillTreeNodeInformationUI.cs b/Client/Assets/Scripts/UI/SkillTreeNodeInformationUI.cs new file mode 100644 index 0000000..50ffb80 --- /dev/null +++ b/Client/Assets/Scripts/UI/SkillTreeNodeInformationUI.cs @@ -0,0 +1,62 @@ +using System.Linq; +using Base; +using Data; +using Managers; +using TMPro; +using UnityEngine; +using UnityEngine.UI; + +namespace UI +{ + public class SkillTreeNodeInformationUI:UIBase + { + public TMP_Text label; + public TMP_Text description; + public TMP_Text coin; + public Button purchaseButton; + + public SkillTreeNodeUI currentLink; + public SkillTreeDef SkillTreeDef => currentLink.SkillTreeDefine; + + public bool CanUnlock + { + get + { + if (SkillTreeDef.cost > Program.Instance.CoinCount) + return false; + var parent = SkillTreeManager.Instance.GetAllDirectParents(SkillTreeDef); + return parent.All(p => SkillTreeManager.Instance.IsSkillTreeUnlocked(p.defName)); + } + } + + public void Init(SkillTreeNodeUI nodeUI) + { + currentLink = nodeUI; + + label.text = SkillTreeDef.label; + description.text = SkillTreeDef.description; + coin.text = $"{SkillTreeDef.cost}/{Program.Instance.CoinCount}"; + if (CanUnlock) + { + coin.color = Color.white; + purchaseButton.interactable = true; + } + else + { + coin.color = Color.red; + purchaseButton.interactable = false; + } + } + public void Purchase() + { + SkillTreeManager.Instance.UnlockSkillTree(SkillTreeDef.defName); + OnHide(); + currentLink.Refresh(); + } + + public void OnHide() + { + UIInputControl.Instance.Hide(this); + } + } +} \ No newline at end of file diff --git a/Client/Assets/Scripts/UI/SkillTreeNodeInformationUI.cs.meta b/Client/Assets/Scripts/UI/SkillTreeNodeInformationUI.cs.meta new file mode 100644 index 0000000..1947c5c --- /dev/null +++ b/Client/Assets/Scripts/UI/SkillTreeNodeInformationUI.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 9440a85a9d4d43aab42d798468760e13 +timeCreated: 1759416081 \ No newline at end of file diff --git a/Client/Assets/Scripts/UI/SkillTreeNodeUI.cs b/Client/Assets/Scripts/UI/SkillTreeNodeUI.cs index e3df58b..05e3e3e 100644 --- a/Client/Assets/Scripts/UI/SkillTreeNodeUI.cs +++ b/Client/Assets/Scripts/UI/SkillTreeNodeUI.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using Base; using Data; using Managers; using UnityEngine; @@ -52,7 +53,7 @@ namespace UI [SerializeField] private Color unlockedColor; [SerializeField] private Color lockedColor; [SerializeField] private GameObject shader; - + public void Init(SkillTreeDef skillTreeDef) { @@ -163,16 +164,14 @@ namespace UI public void OnPointerClick(PointerEventData eventData) { - if (eventData.button == PointerEventData.InputButton.Left) + if (eventData.button != PointerEventData.InputButton.Left) return; + var window = UIInputControl.Instance.GetWindow("SkillTreeNodeInformation") as SkillTreeNodeInformationUI; + if (!window) { - SkillTreeManager.Instance.UnlockSkillTree(SkillTreeDefine.defName); - Refresh(); - } - else if (eventData.button == PointerEventData.InputButton.Right) - { - SkillTreeManager.Instance.LockSkillTree(SkillTreeDefine.defName); - Refresh(); + return; } + UIInputControl.Instance.Show(window); + window.Init(this); } } } diff --git a/Client/Assets/Scripts/UI/SkillTreePageUI.cs b/Client/Assets/Scripts/UI/SkillTreePageUI.cs index 3816912..2bb5226 100644 --- a/Client/Assets/Scripts/UI/SkillTreePageUI.cs +++ b/Client/Assets/Scripts/UI/SkillTreePageUI.cs @@ -524,7 +524,6 @@ namespace UI foreach (var node in layerNodes) { node.rectTransform.anchoredPosition = new Vector2(layerX, nodeY); - Debug.Log($"{layerX},{nodeY}"); nodeY += NODE_VERTICAL_SPACING + node.GetRequiredNodeHeight(Managers.SkillTreeManager.Instance .GetAllDirectParents(node.SkillTreeDefine).Count); diff --git a/Client/Assets/Scripts/UI/SkillTreeUI.cs b/Client/Assets/Scripts/UI/SkillTreeUI.cs index e49dcfa..4445020 100644 --- a/Client/Assets/Scripts/UI/SkillTreeUI.cs +++ b/Client/Assets/Scripts/UI/SkillTreeUI.cs @@ -1,175 +1,70 @@ using System; using System.Collections.Generic; +using System.Linq; +using Managers; using UnityEngine; namespace UI { - public class SkillTreeUI : FullScreenUI + public class SkillTreeUI : FullScreenUI { public SkillTreePageUI skillTreePageUIPrefab; public Transform skillTreePageUIParent; // 用于承载 SkillTreePageUI 实例的 Transform - - private List _skillTreePageUIs = new List(); - private int _currentPageIndex = 0; // 当前显示的页面索引 - // 动画相关 - private bool _isAnimating = false; - private float _animationProgress = 0f; // 0到1的进度 - [SerializeField] private float _animationDuration = 0.3f; // 动画持续时间 - private int _animationDirection = 0; // -1:左翻页, 1:右翻页 (或0表示无动画) - private SkillTreePageUI _currentMovingPage; // 当前正在移动的页面 - private SkillTreePageUI _targetMovingPage; // 正在移入的页面 - private float _pageWidth; // 页面的标准宽度,用于计算滑动位置 + + public List skillTreePages = new List(); + + private int _index = 0; + + public int Index + { + get => _index; + set + { + _index = value; + if (skillTreePages.Count == 0) + return; + while (_index < 0) + { + _index += skillTreePages.Count; + } + + while (_index >= skillTreePageUIParent.childCount) + { + _index -= skillTreePageUIParent.childCount; + } + } + } + + public SkillTreePageUI FocusedSkillTreePage => skillTreePages.Any() ? skillTreePages[Index] : null; + private void Start() { - // 获取所有技能树标签 - var allTags = Managers.SkillTreeManager.Instance.GetAllTag(); - if (allTags == null || allTags.Length == 0) - { - Debug.LogWarning("No skill tree tags found. SkillTreeUI will be empty."); - // 可以在这里禁用翻页按钮或显示提示 + var pageList = SkillTreeManager.Instance.GetAllTag(); + if (pageList == null) return; - } - // [改进] 动态获取页面的宽度 - // 为了准确获取 prefab 的尺寸,最好在编辑器中设置好 prefab 的 RectTransform, - // 或者在这里实例化一个临时对象来获取其 RectTransform 信息。 - var prefabRect = skillTreePageUIPrefab.GetComponent(); - if (prefabRect != null) + foreach (var page in pageList) { - _pageWidth = prefabRect.rect.width; - // 如果父级有LayoutGroup或者Canvas Scaler可能影响实际尺寸,需注意 - // 如果 prefab 是撑满 FullScreenUI 的,那 _pageWidth 应该等于 FullScreenUI 的宽度 - // 这里假设 SkillTreePageUI 会充满其父级,或者具有固定宽度。 - // 简单起见,我们也可以假设它充满父级,那么 _pageWidth = parent.GetComponent().rect.width; - if (skillTreePageUIParent != null) - { - _pageWidth = skillTreePageUIParent.GetComponent().rect.width; - } - } - else - { - Debug.LogError("SkillTreePageUI Prefab does not have a RectTransform!"); - _pageWidth = 1920; // fallback default - } - // 为每个标签实例化并初始化 SkillTreePageUI - foreach (var tag in allTags) - { - var newPage = Instantiate(skillTreePageUIPrefab, skillTreePageUIParent); - newPage.name = $"SkillTreePage_{tag}"; // 方便在 Hierarchy 中识别 - - // 设置 RectTransform 属性,确保页面正确布局 - var pageRectTransform = newPage.GetComponent(); - pageRectTransform.anchorMin = Vector2.zero; - pageRectTransform.anchorMax = Vector2.one; - pageRectTransform.pivot = new Vector2(0.5f, 0.5f); // 中心 - pageRectTransform.anchoredPosition = Vector2.zero; - pageRectTransform.sizeDelta = Vector2.zero; // 撑满父级 - newPage.GenerateAndLayoutAllSkillTrees(tag); - _skillTreePageUIs.Add(newPage); - // 初始状态下所有页面都先设为激活,通过位置控制显示 - newPage.gameObject.SetActive(true); - } - // 根据 _currentPageIndex 设置所有页面的初始位置 - // 只有当前页面在中央 (0,0),其他页面在屏幕外 - for (var i = 0; i < _skillTreePageUIs.Count; i++) - { - _skillTreePageUIs[i].GetComponent().anchoredPosition = - new Vector2(_pageWidth * (i - _currentPageIndex), 0); - } - // 确保当前页面在层级的最上方,防止被其他未隐藏的页面遮挡 - if (_skillTreePageUIs.Count > 0) - { - _skillTreePageUIs[_currentPageIndex].transform.SetAsLastSibling(); + var pageUI = Instantiate(skillTreePageUIPrefab, skillTreePageUIParent); + pageUI.GenerateAndLayoutAllSkillTrees(page); + skillTreePages.Add(pageUI); + pageUI.gameObject.SetActive(false); } + + FocusedSkillTreePage.gameObject.SetActive(true); } - // 实现翻页动画 - public override void TickUI() + + public void OnLeft() { - base.TickUI(); - if (_isAnimating) - { - _animationProgress += Time.deltaTime / _animationDuration; - _animationProgress = Mathf.Clamp01(_animationProgress); - // 计算当前页面的目标位置:从 0 移动到 -_pageWidth * _animationDirection - var currentX = Mathf.Lerp(0, -_pageWidth * _animationDirection, _animationProgress); - _currentMovingPage.GetComponent().anchoredPosition = new Vector2(currentX, 0); - // 计算目标页面的目标位置:从 _pageWidth * _animationDirection 移动到 0 - var targetX = Mathf.Lerp(_pageWidth * _animationDirection, 0, _animationProgress); - _targetMovingPage.GetComponent().anchoredPosition = new Vector2(targetX, 0); - if (_animationProgress >= 1f) - { - // 动画结束 - _isAnimating = false; - _animationDirection = 0; // 重置动画方向 - // 更新当前页面索引 (使用 _targetMovingPage 的索引) - _currentPageIndex = _skillTreePageUIs.IndexOf(_targetMovingPage); - // 确保新的当前页面在正确位置 (0,0) - _targetMovingPage.GetComponent().anchoredPosition = Vector2.zero; - // 隐藏所有非当前页面,将其放置到屏幕外,减少渲染负担 - for (var i = 0; i < _skillTreePageUIs.Count; i++) - { - if (i != _currentPageIndex) - { - // 将非当前页面放置到正确的位置,以便下次翻页时能从正确位置移入 - _skillTreePageUIs[i].GetComponent().anchoredPosition = - new Vector2(_pageWidth * (i - _currentPageIndex), 0); - } - } - // 确保新的当前页面在层级最上方 - _skillTreePageUIs[_currentPageIndex].transform.SetAsLastSibling(); - } - } + FocusedSkillTreePage.gameObject.SetActive(false); + Index--; + FocusedSkillTreePage.gameObject.SetActive(true); } - /// - /// 控制切换到上一页。 - /// - public void TurnPageLeft() + + public void OnRight() { - if (_isAnimating) return; // 动画进行中,忽略新的翻页请求 - // 检查是否已经到达第一页 - if (_currentPageIndex <= 0) - { - Debug.Log("SkillTreeUI: Already at the first page."); - return; - } - _animationDirection = -1; // 左翻页方向 - StartPageTurnAnimation(_currentPageIndex - 1); + FocusedSkillTreePage.gameObject.SetActive(false); + Index++; + FocusedSkillTreePage.gameObject.SetActive(true); } - /// - /// 控制切换到下一页。 - /// - public void TurnPageRight() - { - if (_isAnimating) return; // 动画进行中,忽略新的翻页请求 - // 检查是否已经到达最后一页 - if (_currentPageIndex >= _skillTreePageUIs.Count - 1) - { - Debug.Log("SkillTreeUI: Already at the last page."); - return; - } - _animationDirection = 1; // 右翻页方向 - StartPageTurnAnimation(_currentPageIndex + 1); - } - /// - /// 启动翻页动画的内部方法。 - /// - /// 目标页面的索引。 - private void StartPageTurnAnimation(int targetPageIndex) - { - _isAnimating = true; - _animationProgress = 0f; // 重置动画进度 - _currentMovingPage = _skillTreePageUIs[_currentPageIndex]; - _targetMovingPage = _skillTreePageUIs[targetPageIndex]; - // 确保参与动画的两个页面都是激活状态 - _currentMovingPage.gameObject.SetActive(true); - _targetMovingPage.gameObject.SetActive(true); - // 将目标页面初始位置设置在当前页的左侧或右侧 - // 例如,如果向右翻页 (_animationDirection = 1),目标页从右边 (_pageWidth) 滑入 - _targetMovingPage.GetComponent().anchoredPosition = - new Vector2(_pageWidth * _animationDirection, 0); - // 确保目标页面在当前页面之上,以便在滑动时覆盖旧页面 - _targetMovingPage.transform.SetAsLastSibling(); - } - // 可以添加一个 GoToPage(int pageIndex) 方法来直接跳转到某一页 - // 这里为了简化,只实现了左右翻页 } } \ No newline at end of file diff --git a/Client/Assets/Scripts/UI/StartPlayUI.cs b/Client/Assets/Scripts/UI/StartPlayUI.cs new file mode 100644 index 0000000..bb7805b --- /dev/null +++ b/Client/Assets/Scripts/UI/StartPlayUI.cs @@ -0,0 +1,83 @@ +using System; +using System.Collections.Generic; +using Data; +using Managers; +using UnityEngine; + +namespace UI +{ + public class StartPlayUI:FullScreenUI + { + public Transform iconList; + + private int _currentIndex; + + public int CurrentDimensionIndex + { + get => _currentIndex; + set + { + _currentIndex = value; + if (_currentIndex < 0) + { + _currentIndex += mapViewUIList.Count; + } + else if (_currentIndex >= mapViewUIList.Count) + { + _currentIndex %= mapViewUIList.Count; + } + } + } + + public DimensionDef CurrentDimension => mapViewUIList[CurrentDimensionIndex].DimensionDefine; + + public MapViewUI mapViewUIPrefab; + public List mapViewUIList = new List(); + + private void Start() + { + var dimensionDefs = DefineManager.Instance.QueryDefinesByType(); + if(dimensionDefs==null) + return; + foreach (var d in dimensionDefs) + { + if(!d.canSelect) + continue; + var newObj=Instantiate(mapViewUIPrefab,iconList); + mapViewUIList.Add(newObj); + newObj.Init(d); + newObj.gameObject.SetActive(false); + newObj.transform.localPosition = Vector3.zero; + } + + UpdateUI(); + } + + public void UpdateUI() + { + if (mapViewUIList == null) + return; + for (var i = 0; i < mapViewUIList.Count; i++) + { + mapViewUIList[i].gameObject.SetActive(i == CurrentDimensionIndex); + } + } + + public void OnStartGame() + { + Program.Instance.StartPlayGame(CurrentDimension); + } + + public void OnLeft() + { + CurrentDimensionIndex-=1; + UpdateUI(); + } + + public void OnRight() + { + CurrentDimensionIndex+=1; + UpdateUI(); + } + } +} \ No newline at end of file diff --git a/Client/Assets/Scripts/UI/StartPlayUI.cs.meta b/Client/Assets/Scripts/UI/StartPlayUI.cs.meta new file mode 100644 index 0000000..d5e21de --- /dev/null +++ b/Client/Assets/Scripts/UI/StartPlayUI.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 39c9e270bf6946c0a9fc963ce048ee32 +timeCreated: 1759334581 \ No newline at end of file diff --git a/Client/Assets/Scripts/UI/WaitStartUI.cs b/Client/Assets/Scripts/UI/WaitStartUI.cs new file mode 100644 index 0000000..6512236 --- /dev/null +++ b/Client/Assets/Scripts/UI/WaitStartUI.cs @@ -0,0 +1,55 @@ +using System; +using TMPro; +using UnityEngine; + +namespace UI +{ + public class WaitStartUI:MonoBehaviour + { + public TMP_Text text; + public string baseText; + + public int dotCount = 3; + public int dotCounter = 0; + + public float updateTime = 1; + private float timer = 0; + + private void Start() + { + if(string.IsNullOrEmpty(baseText)) + { + baseText = text.text; + } + else + { + text.text = baseText; + } + } + + private void Update() + { + timer+=Time.deltaTime; + if (this.timer >= updateTime) + { + timer-=updateTime; + var dots = ""; + for (var i = 0; i < dotCounter; i++) + { + dots += "."; + } + text.text = baseText + dots; + dotCounter += 1; + if (dotCounter > dotCount) + { + dotCounter = 0; + } + } + } + + public void Hide() + { + gameObject.SetActive(false); + } + } +} \ No newline at end of file diff --git a/Client/Assets/Scripts/UI/WaitStartUI.cs.meta b/Client/Assets/Scripts/UI/WaitStartUI.cs.meta new file mode 100644 index 0000000..4740f6b --- /dev/null +++ b/Client/Assets/Scripts/UI/WaitStartUI.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 8526602f31724cc39ebdf089255189da +timeCreated: 1759368694 \ No newline at end of file diff --git a/Client/Assets/Scripts/AI/BehaviorTree.cs b/Client/Assets/Scripts/Utils/BehaviorTreeUtils.cs similarity index 68% rename from Client/Assets/Scripts/AI/BehaviorTree.cs rename to Client/Assets/Scripts/Utils/BehaviorTreeUtils.cs index b1fa69d..62d96cb 100644 --- a/Client/Assets/Scripts/AI/BehaviorTree.cs +++ b/Client/Assets/Scripts/Utils/BehaviorTreeUtils.cs @@ -1,31 +1,21 @@ -using Data; using System; +using AI; +using Data; -namespace AI +namespace Utils { - public static class BehaviorTree + public static class BehaviorTreeUtils { /// /// 将行为树定义转换为 AIBase 类型。 /// /// 行为树定义。 /// 转换后的 AIBase 实例。 - public static AIBase ConvertToAIBase(BehaviorTreeDef behaviorTreeDef) + public static BehaviorTreeBase ConvertToAIBase(BehaviorTreeDef behaviorTreeDef) { if (behaviorTreeDef == null) return null; var aiBase = CreateAIBaseInstance(behaviorTreeDef.className); - aiBase.Init(behaviorTreeDef); - if (behaviorTreeDef.childTree != null) - { - foreach (var child in behaviorTreeDef.childTree) - { - if (child != null) - { - aiBase.children.Add(ConvertToAIBase(child)); - } - } - } return aiBase; } @@ -34,13 +24,13 @@ namespace AI /// /// 类名。 /// 创建的 AIBase 子类实例。 - private static AIBase CreateAIBaseInstance(string className) + private static BehaviorTreeBase CreateAIBaseInstance(string className) { if (string.IsNullOrEmpty(className)) throw new ArgumentException("className 不能为空"); if (className.Equals("AIBase", StringComparison.OrdinalIgnoreCase)) { - return (AIBase)Activator.CreateInstance(typeof(AIBase)); + return (BehaviorTreeBase)Activator.CreateInstance(typeof(BehaviorTreeBase)); } // 定义可能的命名空间列表 var possibleNamespaces = new[] { "AI" }; @@ -50,15 +40,15 @@ namespace AI try { // 获取当前程序集 - var assembly = typeof(AIBase).Assembly; + var assembly = typeof(BehaviorTreeBase).Assembly; // 尝试查找类型 var type = assembly.GetType($"{ns}.{className}"); - if (type != null && typeof(AIBase).IsAssignableFrom(type)) + if (type != null && typeof(BehaviorTreeBase).IsAssignableFrom(type)) { // 如果找到合适的类型,则创建实例并返回 - return (AIBase)Activator.CreateInstance(type); + return (BehaviorTreeBase)Activator.CreateInstance(type); } } catch diff --git a/Client/Assets/Scripts/AI/BehaviorTree.cs.meta b/Client/Assets/Scripts/Utils/BehaviorTreeUtils.cs.meta similarity index 100% rename from Client/Assets/Scripts/AI/BehaviorTree.cs.meta rename to Client/Assets/Scripts/Utils/BehaviorTreeUtils.cs.meta diff --git a/Client/Assets/Scripts/Utils/RotateTool.cs b/Client/Assets/Scripts/Utils/RotateTool.cs index e2914bc..4fbb009 100644 --- a/Client/Assets/Scripts/Utils/RotateTool.cs +++ b/Client/Assets/Scripts/Utils/RotateTool.cs @@ -6,16 +6,17 @@ namespace Utils { // 旋转对象到指定方向 - public static void RotateTransformToDirection(Transform transform, Vector3 targetDirection) + public static float RotateTransformToDirection(Transform transform, Vector3 targetDirection) { // 确保目标方向不是零向量 if (targetDirection == Vector3.zero) - return; + return 0; // 计算当前向上方向与目标方向之间的角度 var angle = Mathf.Atan2(targetDirection.y, targetDirection.x) * Mathf.Rad2Deg; // 应用旋转 transform.rotation = Quaternion.Euler(0f, 0f, angle); + return angle; } } } \ No newline at end of file diff --git a/Client/Assets/Scripts/Utils/StringUtils.cs b/Client/Assets/Scripts/Utils/StringUtils.cs index 3df97df..97c1dd4 100644 --- a/Client/Assets/Scripts/Utils/StringUtils.cs +++ b/Client/Assets/Scripts/Utils/StringUtils.cs @@ -9,7 +9,6 @@ namespace Utils { public static class StringUtils { - // 以下是你原始代码中未修改的部分,为了完整性列出 /// /// 尝试从字符串中解析出指定数量的浮点数组件。 /// 这是StringToVector2和StringToVector3的核心辅助方法。 @@ -28,15 +27,12 @@ namespace Utils parsedComponents = new float[expectedComponentCount]; if (string.IsNullOrWhiteSpace(source)) { - // 如果字符串为空或空白,则用默认值填充并失败 for (var i = 0; i < expectedComponentCount; i++) { parsedComponents[i] = defaultComponentValue; } - return false; } - // 移除所有可能存在的括号或方括号 // 采用Replace而不是Regex是因为简单字符替换的性能优势 var cleanedSource = source @@ -52,30 +48,24 @@ namespace Utils System.StringSplitOptions.RemoveEmptyEntries); if (componentStrings.Length < expectedComponentCount) { - // 如果组件数量不足,则用默认值填充并失败 for (var i = 0; i < expectedComponentCount; i++) { parsedComponents[i] = defaultComponentValue; } - return false; } - for (var i = 0; i < expectedComponentCount; i++) { // 尝试解析每个组件,并去除前后空格 if (!float.TryParse(componentStrings[i].Trim(), out parsedComponents[i])) { - // 如果任何一个组件解析失败,则用默认值填充所有组件并返回 false for (var j = 0; j < expectedComponentCount; j++) { parsedComponents[j] = defaultComponentValue; } - return false; } } - return true; // 所有组件都成功解析 } @@ -92,13 +82,11 @@ namespace Utils { defaultValue = Vector2.zero; // 如果未指定,则使用 Vector2.zero 作为默认值 } - - // 默认浮点值为0f,用于内部解析失败填充 if (TryParseVectorComponents(str, 2, out var components)) { return new Vector2(components[0], components[1]); } - + Debug.LogWarning($"将字符串 \"{str}\" 解析为 Vector2 失败。返回默认值 {defaultValue}。"); return defaultValue; } @@ -115,18 +103,14 @@ namespace Utils { defaultValue = Vector3.zero; // 如果未指定,则使用 Vector3.zero 作为默认值 } - - // 默认浮点值为0f,用于内部解析失败填充 if (TryParseVectorComponents(str, 3, out var components)) { return new Vector3(components[0], components[1], components[2]); } - + Debug.LogWarning($"将字符串 \"{str}\" 解析为 Vector3 失败。返回默认值 {defaultValue}。"); return defaultValue; } - // 原始代码结束 - // #region 新增代码 /// /// 尝试从字符串中解析出指定数量的整数组件。 /// 这是StringToVector3Int的核心辅助方法。 @@ -145,15 +129,12 @@ namespace Utils parsedComponents = new int[expectedComponentCount]; if (string.IsNullOrWhiteSpace(source)) { - // 如果字符串为空或空白,则用默认值填充并失败 for (var i = 0; i < expectedComponentCount; i++) { parsedComponents[i] = defaultComponentValue; } - return false; } - // 移除所有可能存在的括号或方括号 var cleanedSource = source .Replace("[", "") @@ -167,30 +148,24 @@ namespace Utils System.StringSplitOptions.RemoveEmptyEntries); if (componentStrings.Length < expectedComponentCount) { - // 如果组件数量不足,则用默认值填充并失败 for (var i = 0; i < expectedComponentCount; i++) { parsedComponents[i] = defaultComponentValue; } - return false; } - for (var i = 0; i < expectedComponentCount; i++) { // 尝试解析每个组件,并去除前后空格 if (!int.TryParse(componentStrings[i].Trim(), out parsedComponents[i])) { - // 如果任何一个组件解析失败,则用默认值填充所有组件并返回 false for (var j = 0; j < expectedComponentCount; j++) { parsedComponents[j] = defaultComponentValue; } - return false; } } - return true; // 所有组件都成功解析 } @@ -203,22 +178,19 @@ namespace Utils /// 转换后的 Vector3Int 值或默认值。 public static Vector3Int StringToVector3Int(string str, Vector3Int defaultValue = default) { - // C# 7.1 以上版本允许 'default' 用于值类型,对于引用类型为 null,对于值类型为所有成员的默认值(例如0), - // 所以 Vector3Int.zero 可以作为显式默认值。 if (defaultValue == default) { defaultValue = Vector3Int.zero; // 如果未指定,则使用 Vector3Int.zero 作为默认值 } - - // 默认整数值为0,用于内部解析失败填充 if (TryParseVectorIntComponents(str, 3, out var components)) { return new Vector3Int(components[0], components[1], components[2]); } - + Debug.LogWarning($"将字符串 \"{str}\" 解析为 Vector3Int 失败。返回默认值 {defaultValue}。"); return defaultValue; } + /// /// 根据类名字符串创建并返回一个继承自 MapGeneratorWorkClassBase 的实例。 /// diff --git a/Client/Assets/Settings/UniversalRenderPipelineGlobalSettings.asset b/Client/Assets/Settings/UniversalRenderPipelineGlobalSettings.asset index 2a5b23e..00fa1f1 100644 --- a/Client/Assets/Settings/UniversalRenderPipelineGlobalSettings.asset +++ b/Client/Assets/Settings/UniversalRenderPipelineGlobalSettings.asset @@ -63,7 +63,20 @@ MonoBehaviour: - rid: 8857653749874163719 - rid: 8927974581884682240 m_RuntimeSettings: - m_List: [] + m_List: + - rid: 6852985685364965378 + - rid: 6852985685364965379 + - rid: 6852985685364965380 + - rid: 6852985685364965381 + - rid: 6852985685364965384 + - rid: 6852985685364965385 + - rid: 6852985685364965392 + - rid: 6852985685364965394 + - rid: 8712630790384254976 + - rid: 8857653749874163713 + - rid: 8857653749874163715 + - rid: 8857653749874163716 + - rid: 8857653749874163719 m_AssetVersion: 8 m_ObsoleteDefaultVolumeProfile: {fileID: 0} m_RenderingLayerNames: diff --git a/Client/Assets/TextMesh Pro/Fonts/SIMHEI SDF.asset b/Client/Assets/TextMesh Pro/Fonts/SIMHEI SDF.asset index fb9dbad..6aaff2e 100644 --- a/Client/Assets/TextMesh Pro/Fonts/SIMHEI SDF.asset +++ b/Client/Assets/TextMesh Pro/Fonts/SIMHEI SDF.asset @@ -116,7 +116,7 @@ Material: - _OutlineSoftness: 0 - _OutlineUVSpeedX: 0 - _OutlineUVSpeedY: 0 - - _OutlineWidth: 0.2 + - _OutlineWidth: 0 - _PerspectiveFilter: 0.875 - _Reflectivity: 10 - _ScaleRatioA: 0.9 @@ -148,7 +148,7 @@ Material: - _FaceColor: {r: 1, g: 1, b: 1, a: 1} - _GlowColor: {r: 0, g: 1, b: 0, a: 0.5} - _MaskCoord: {r: 0, g: 0, b: 32767, a: 32767} - - _OutlineColor: {r: 0.5018867, g: 0.42985904, b: 0.22632252, a: 1} + - _OutlineColor: {r: 1, g: 1, b: 1, a: 1} - _ReflectFaceColor: {r: 0, g: 0, b: 0, a: 1} - _ReflectOutlineColor: {r: 0, g: 0, b: 0, a: 1} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} diff --git a/Client/Data/Core/Define/Building/FunctionalBuilding.xml b/Client/Data/Core/Define/Building/FunctionalBuilding.xml index 9d1202a..47bd6e1 100644 --- a/Client/Data/Core/Define/Building/FunctionalBuilding.xml +++ b/Client/Data/Core/Define/Building/FunctionalBuilding.xml @@ -5,7 +5,11 @@ Resources\Map\Outpost\Store.png - + + OutpostInitial + + Resources\Map\Outpost\OutpostInitial.png + OpenShopUI @@ -24,7 +28,18 @@ Event_OpenUI { - "uiName": "SkillTree" + "uiName": "SkillTreeUI" + } + + + + OpenStartGameUI + + 当玩家与起始点交互时打开开始游戏界面 + Event_OpenUI + + { + "uiName": "StartPlayUI" } @@ -73,4 +88,27 @@
  • OpenSkillTreeUI
  • + + + StartPoint + + 玩家的选择准备开始游戏的建筑 + + 500 + + player + Dynamic + + + +
  • OutpostInitial
  • +
    +
    +
    + 4,4 + 6 + +
  • OpenStartGameUI
  • +
    +
    \ No newline at end of file diff --git a/Client/Data/Core/Define/Entity/Character/Character.xml b/Client/Data/Core/Define/Entity/Character/Character.xml index 796e82b..4bfd021 100644 --- a/Client/Data/Core/Define/Entity/Character/Character.xml +++ b/Client/Data/Core/Define/Entity/Character/Character.xml @@ -132,14 +132,15 @@ - - - - - - + + + + - + + + + diff --git a/Client/Data/Core/Define/Entity/Monster.xml b/Client/Data/Core/Define/Entity/Monster.xml index 97abf54..19f4d5c 100644 --- a/Client/Data/Core/Define/Entity/Monster.xml +++ b/Client/Data/Core/Define/Entity/Monster.xml @@ -2,17 +2,15 @@ BasicMonsterBehavior - - - - - - - - + + + - + + testPawnAnimation + Resources\Character\test.png + chicken @@ -22,7 +20,7 @@ 1 2 - Claw + TestGun @@ -39,32 +37,5 @@ - - big - - BasicMonsterBehavior - monster - - 1 - 2 - - TestGun - - - -
  • testPawnAnimation_0
  • -
  • testPawnAnimation_1
  • -
  • testPawnAnimation_2
  • -
  • testPawnAnimation_3
  • -
  • testPawnAnimation_4
  • -
  • testPawnAnimation_3
  • -
  • testPawnAnimation_2
  • -
  • testPawnAnimation_1
  • -
    -
    -
    -
    - -
    diff --git a/Client/Data/Core/Define/Entity/MonsterTextures.xml b/Client/Data/Core/Define/Entity/MonsterTextures.xml deleted file mode 100644 index 8718d58..0000000 --- a/Client/Data/Core/Define/Entity/MonsterTextures.xml +++ /dev/null @@ -1,152 +0,0 @@ - - - - - MechanicalMonsterA1Texture - res:Texture/Monster/机械/A怪物1 - 1 - 1 - 1500 - - - MechanicalMonsterA2Texture - res:Texture/Monster/机械/A怪物2 - 1 - 1 - 1500 - - - MechanicalMonsterB1Texture - res:Texture/Monster/机械/B怪物1 - 1 - 1 - 1500 - - - MechanicalMonsterB2Texture - res:Texture/Monster/机械/B怪物2 - 1 - 1 - 1500 - - - MechanicalMonsterC1Texture - res:Texture/Monster/机械/C怪物1 - 1 - 1 - 1500 - - - MechanicalMonsterC2Texture - res:Texture/Monster/机械/C怪物2 - 1 - 1 - 1500 - - - - - HybridMonsterD1Texture - res:Texture/Monster/混合/D怪物1 - 1 - 1 - 1500 - - - HybridMonsterD2Texture - res:Texture/Monster/混合/D怪物2 - 1 - 1 - 1500 - - - HybridMonsterE1Texture - res:Texture/Monster/混合/E怪物1 - 1 - 1 - 1500 - - - HybridMonsterE2Texture - res:Texture/Monster/混合/E怪物2 - 1 - 1 - 1500 - - - HybridMonsterF1Texture - res:Texture/Monster/混合/F怪物1 - 1 - 1 - 1500 - - - HybridMonsterF2Texture - res:Texture/Monster/混合/F怪物2 - 1 - 1 - 1500 - - - - - BiologicalMaskMonster1Texture - res:Texture/Monster/生物/面具1 - 1 - 1 - 1500 - - - - BiologicalHologramMonster1Texture - res:Texture/Monster/生物/全息1 - 1 - 1 - 1500 - - - - BiologicalSnakeMonster1Texture - res:Texture/Monster/生物/蛇1 - 1 - 1 - 1500 - - - - - - GenericBulletTexture - res:Texture/Bullet/GenericBullet - 1 - 1 - 1500 - - - diff --git a/Client/Data/Core/Define/Event/GenerateEvent.xml b/Client/Data/Core/Define/Event/GenerateEvent.xml new file mode 100644 index 0000000..59a3172 --- /dev/null +++ b/Client/Data/Core/Define/Event/GenerateEvent.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Client/Data/Core/Define/Event/MessageEvent.xml b/Client/Data/Core/Define/Event/MessageEvent.xml new file mode 100644 index 0000000..4e5bd3a --- /dev/null +++ b/Client/Data/Core/Define/Event/MessageEvent.xml @@ -0,0 +1,10 @@ + + + + StarWait + + 怪物会在3秒后到达 + PassiveHint + 怪物会在3秒后到达,请做好准备 + + \ No newline at end of file diff --git a/Client/Data/Core/Define/Item/Coin.xml b/Client/Data/Core/Define/Item/Coin.xml new file mode 100644 index 0000000..8952425 --- /dev/null +++ b/Client/Data/Core/Define/Item/Coin.xml @@ -0,0 +1,15 @@ + + + Coin + + Resources\Item\粒子.png + + + Coin + + 可以用来购买物品 + +
  • Coin
  • +
    +
    +
    \ No newline at end of file diff --git a/Client/Data/Core/Define/Item/Weapon.xml b/Client/Data/Core/Define/Item/Weapon.xml index 2718ec6..82b340f 100644 --- a/Client/Data/Core/Define/Item/Weapon.xml +++ b/Client/Data/Core/Define/Item/Weapon.xml @@ -105,333 +105,5 @@ - - - - - Claw - 3 - 1 - 1 - 1 - 1 - - - - Claw - - Melee - 爪子 - Claw - - - - - MonsterA1Bullet - - 1 - 15 - - - - -
  • GenericBulletTexture
  • -
    -
    - - -
  • GenericBulletTexture
  • -
    -
    -
    -
    - - MonsterA2Bullet - - 1 - 18 - - - - -
  • GenericBulletTexture
  • -
    -
    - - -
  • GenericBulletTexture
  • -
    -
    -
    -
    - - MonsterD1Bullet - - 1 - 16 - - - - -
  • GenericBulletTexture
  • -
    -
    - - -
  • GenericBulletTexture
  • -
    -
    -
    -
    - - MonsterD2Bullet - - 1 - 19 - - - - -
  • GenericBulletTexture
  • -
    -
    - - -
  • GenericBulletTexture
  • -
    -
    -
    -
    - - BiologicalSnakeMonsterBullet - - 1 - 20 - - - - -
  • GenericBulletTexture
  • -
    -
    - - -
  • GenericBulletTexture
  • -
    -
    -
    -
    - - - - - Weapon_MonsterA1 - - Ranged - - 612 - 0.333 - 10 - - MonsterA1Bullet - - - Weapon_MonsterA2 - - Ranged - - 408 - 0.555 - 12 - - MonsterA2Bullet - - - Weapon_MonsterB1 - - Melee - - 1148 - 0.2 - 1.5 - - - - Weapon_MonsterB2 - - Melee - - 1045 - 0.222 - 1.5 - - - - Weapon_MonsterC1 - - Melee - - 728 - 0.5 - 2 - - - - Weapon_MonsterC2 - - Melee - - 1078 - 0.333 - 2 - - - - - Weapon_MonsterD1 - - Ranged - - 646 - 0.333 - 11 - - MonsterD1Bullet - - - Weapon_MonsterD2 - - Ranged - - 412 - 0.555 - 13 - - MonsterD2Bullet - - - Weapon_MonsterE1 - - Melee - - 1622 - 0.125 - 1.5 - - - - Weapon_MonsterE2 - - Melee - - 1875 - 0.125 - 1.5 - - - - Weapon_MonsterF1 - - Melee - - 2048 - 0.238 - 2.5 - - - - Weapon_MonsterF2 - - Melee - - 2254 - 0.222 - 2.5 - - - - - Weapon_MaskMonster - - Melee - - 389 - 0.333 - 1.2 - - - - Weapon_MaskMonsterElite - - Melee - - 728 - 0.385 - 1.2 - - - - Weapon_HologramMonster - - Melee - - 666 - 0.166 - 1.8 - - - - Weapon_HologramMonsterElite - - Melee - - 1666 - 0.166 - 1.8 - - - - Weapon_SnakeMonster - - Ranged - - 125 - 1 - 8 - - BiologicalSnakeMonsterBullet - - - Weapon_SnakeMonsterElite - - Ranged - - 246 - 1 - 10 - - BiologicalSnakeMonsterBullet - - - Weapon_RatMonster - - Melee - - 11 - 1 - 0.8 - - - - Weapon_RatMonsterElite - - Melee - - 22 - 0.5 - 0.8 - - - \ No newline at end of file diff --git a/Client/Data/Core/Define/Map/Dimension.xml b/Client/Data/Core/Define/Map/DefaultDimension.xml similarity index 79% rename from Client/Data/Core/Define/Map/Dimension.xml rename to Client/Data/Core/Define/Map/DefaultDimension.xml index b5c1478..4442186 100644 --- a/Client/Data/Core/Define/Map/Dimension.xml +++ b/Client/Data/Core/Define/Map/DefaultDimension.xml @@ -6,8 +6,9 @@ 默认外部维度地图的描述
  • DefaultMapGenerator
  • -
  • TreeGenerator
  • +
    + false DefaultInsideDimension @@ -15,8 +16,9 @@ 默认内部维度地图的描述
  • DefaultMapGenerator2
  • -
  • TreeGenerator
  • +
    + false
    DefaultBaseDimension @@ -25,8 +27,9 @@
  • BaseFloorFiller
  • BaseUpWallFiller
  • -
  • BaseDownWallFiller
  • +
  • BaseBuildingGenerator
  • + false
    \ No newline at end of file diff --git a/Client/Data/Core/Define/Map/GrassDimension.xml b/Client/Data/Core/Define/Map/GrassDimension.xml new file mode 100644 index 0000000..19c92ee --- /dev/null +++ b/Client/Data/Core/Define/Map/GrassDimension.xml @@ -0,0 +1,27 @@ + + + + GrassBase + + 一个简单的草地基础生成器,填充地图为草地 + BasicTerrainMapGenerator + + { + "tileDefName":"Grass", + "mapCellSizeX":100, + "mapCellSizeY":100, + "threshold":-1, + "Scale":7 + } + + + + Grass + + 草地地势平坦敌人少资源也少 + +
  • GrassBase
  • +
    + tileMap +
    +
    \ No newline at end of file diff --git a/Client/Data/Core/Define/Map/MapGenerator.xml b/Client/Data/Core/Define/Map/MapGenerator.xml index 5487c7e..324a792 100644 --- a/Client/Data/Core/Define/Map/MapGenerator.xml +++ b/Client/Data/Core/Define/Map/MapGenerator.xml @@ -9,10 +9,10 @@ { "tileDefName":"Water", "elseTileDefName":"Grassland", - "mapCellSizeX":100, - "mapCellSizeY":100, + "mapCellSizeX":50, + "mapCellSizeY":50, "threshold":0, - "Scale":7 + "Scale":3 } @@ -26,8 +26,8 @@ { "tileDefName":"Water", "elseTileDefName":"Grass", - "mapCellSizeX":100, - "mapCellSizeY":100, + "mapCellSizeX":50, + "mapCellSizeY":50, "threshold":0.3, "Scale":2, "offsetX":100, @@ -77,15 +77,16 @@ { "defName":"ConcreteWall", - "positionX":15, + "positionX":9, "positionY":20, "mapping": { 1:"ConcreteWall", - 2:"SkillTreeShop" + 2:"SkillTreeShop", + 3:"StartPoint" }, "pattern": [ - [2] + [2,0,0,0,0,0,0,0,0,0,0,0,0,3], ] } diff --git a/Client/Data/Core/Resources/Item/粒子.png b/Client/Data/Core/Resources/Item/粒子.png new file mode 100644 index 0000000000000000000000000000000000000000..68611a4b5f4e8a03bb59f338a8c86bbdde2739f9 GIT binary patch literal 424 zcmV;Z0ayNsP)P{N7#5tF z=){7aK2IMnsVZhAi6{VMW}3y&tOGOdv6*>@d(B4jSNZZkT$CZYB%;f)2jIDG3LsF` z!UqQpWdd+fbFLczz?>x!&CKLa18CI13?>mZKuu45=X9;h`Wg5r z;OH4hpvOCC)nI-w+L+)hP~`dc6xew=_Hb_L0#MHasp@6e6s=pHN{!FV^s2k0WqefR z9yW>Szfbb3UR*Pg_3mnHW+uyk0MNN^w`uj~QIQS596J@8pzrtFya5!gpX z;(@d7>i)PYP|_T95uxglkD2IrxMcC$B literal 0 HcmV?d00001 diff --git a/Client/ProjectSettings/ProjectSettings.asset b/Client/ProjectSettings/ProjectSettings.asset index 63e58c7..9a492fe 100644 --- a/Client/ProjectSettings/ProjectSettings.asset +++ b/Client/ProjectSettings/ProjectSettings.asset @@ -12,7 +12,7 @@ PlayerSettings: targetDevice: 2 useOnDemandResources: 0 accelerometerFrequency: 60 - companyName: DefaultCompany + companyName: Cell productName: CellDev_SkillTree defaultCursor: {fileID: 0} cursorHotspot: {x: 0, y: 0} @@ -140,7 +140,7 @@ PlayerSettings: loadStoreDebugModeEnabled: 0 visionOSBundleVersion: 1.0 tvOSBundleVersion: 1.0 - bundleVersion: 0.2a + bundleVersion: 0.2b preloadedAssets: - {fileID: -944628639613478452, guid: 052faaac586de48259a63d0c4782560b, type: 3} metroInputSource: 0 diff --git a/Client/Save/game_save.json b/Client/Save/game_save.json new file mode 100644 index 0000000..5265b6d --- /dev/null +++ b/Client/Save/game_save.json @@ -0,0 +1,8 @@ +{ + "SkillTreeManager.UnlockedSkillTrees": [ + "BranchB_Root", + "Root_Skill", + "Isolated_Discovery", + "LinearA_Node1" + ] +} \ No newline at end of file diff --git a/Client/app_config.json b/Client/app_config.json index 9f195da..9629aff 100644 --- a/Client/app_config.json +++ b/Client/app_config.json @@ -3,5 +3,6 @@ "OutsideDimension": "DefaultOutsideDimension", "InsideDimension": "DefaultInsideDimension", "BaseDimension": "DefaultBaseDimension", - "configVersion": 1 + "configVersion": 1, + "CoinItem": "Coin" } \ No newline at end of file