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 0000000..68611a4
Binary files /dev/null and b/Client/Data/Core/Resources/Item/粒子.png differ
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