diff --git a/.gitignore b/.gitignore index 5f825d7..aceb572 100644 --- a/.gitignore +++ b/.gitignore @@ -104,3 +104,4 @@ InitTestScene*.unity* /[Aa]ssets/RawResources.meta /.dotnet /.idea +~$*.xlsx \ No newline at end of file diff --git a/Assets/GameMain/DataTables/LevelPhase.txt b/Assets/GameMain/DataTables/LevelPhase.txt index 784028c..b3fa983 100644 --- a/Assets/GameMain/DataTables/LevelPhase.txt +++ b/Assets/GameMain/DataTables/LevelPhase.txt @@ -1,23 +1,23 @@ # Id 列1 DurationSeconds EndType EndParam # int int PhaseEndType string # 关卡阶段号 策划备注 波次持续时间 波次结束条件 结束参数 - 1001 平原1.1 60 TimeElapsed 60 - 1002 平原1.2 60 TimeElapsed 60 - 1003 平原1.3 60 TimeElapsed 60 - 1004 平原1.4 60 EnemiesCleared 60 + 1001 平原1.1 55 TimeElapsed 60 + 1002 平原1.2 55 TimeElapsed 60 + 1003 平原1.3 55 TimeElapsed 60 + 1004 平原1.4 55 EnemiesCleared 1005 平原1.* 0 - 2001 平原2.1 60 TimeElapsed 60 - 2002 平原2.2 60 TimeElapsed 60 - 2003 平原2.3 60 TimeElapsed 60 - 2004 平原2.4 60 EnemiesCleared 60 + 2001 平原2.1 55 TimeElapsed 60 + 2002 平原2.2 55 TimeElapsed 60 + 2003 平原2.3 55 TimeElapsed 60 + 2004 平原2.4 55 EnemiesCleared 2005 平原2.* 0 - 3001 平原3.1 60 TimeElapsed 60 - 3002 平原3.2 60 TimeElapsed 60 - 3003 平原3.3 60 TimeElapsed 60 - 3004 平原3.4 60 EnemiesCleared 60 + 3001 平原3.1 55 TimeElapsed 60 + 3002 平原3.2 55 TimeElapsed 60 + 3003 平原3.3 55 TimeElapsed 60 + 3004 平原3.4 55 EnemiesCleared 3005 平原3.* 0 - 4001 平原4.1 60 TimeElapsed 60 - 4002 平原4.2 60 TimeElapsed 60 - 4003 平原4.3 60 TimeElapsed 60 - 4004 平原4.4 60 TimeElapsed 60 + 4001 平原4.1 55 TimeElapsed 60 + 4002 平原4.2 55 TimeElapsed 60 + 4003 平原4.3 55 TimeElapsed 60 + 4004 平原4.4 55 TimeElapsed 60 4005 平原4.5 0 BossDead diff --git a/Assets/GameMain/DataTables/LevelSpawnEntry.txt b/Assets/GameMain/DataTables/LevelSpawnEntry.txt index 6e053ee..7596a12 100644 --- a/Assets/GameMain/DataTables/LevelSpawnEntry.txt +++ b/Assets/GameMain/DataTables/LevelSpawnEntry.txt @@ -1,33 +1,33 @@ # Id 列1 SpawnPointId StartTime EntryType EnemyId Count Interval Duration Gap # int int int EntryType int int float int float # 阶段条目号 策划备注 敌人出生口Id 相对时间 条目类型 敌人Id 单次出怪数量 出怪间隔 持续时间 单怪出生时间间隔 - 1001001 1 5 Stream 1 3 5 60 0.5 + 1001001 1 5 Stream 1 3 5 40 0.5 1001002 2 5 Burst 1 10 0 0 0.2 - 1002001 1 3 Stream 1 3 5 60 0.5 + 1002001 1 3 Stream 1 3 5 40 0.5 1002002 2 3 Burst 1 10 0 0 0.2 - 1003001 1 5 Stream 1 3 5 60 0.5 + 1003001 1 5 Stream 1 3 5 40 0.5 1003002 2 5 Burst 1 10 0 0 0.2 - 1004001 1 3 Stream 1 3 5 60 0.5 + 1004001 1 3 Stream 1 3 5 40 0.5 1004002 2 3 Burst 1 10 0 0 0.2 - 1005001 1 5 Stream 1 3 5 60 0.5 + 1005001 1 5 Stream 1 3 5 40 0.5 1005002 2 5 Burst 1 10 0 0 0.2 - 2001001 1 5 Stream 1 3 5 60 0.5 + 2001001 1 5 Stream 1 3 5 40 0.5 2002001 1 5 Burst 1 10 0 0 0.2 - 2003001 1 5 Stream 1 3 5 60 0.5 + 2003001 1 5 Stream 1 3 5 40 0.5 2004001 1 5 Burst 1 10 0 0 0.2 - 2005001 1 5 Stream 1 3 5 60 0.5 - 3001001 1 5 Stream 1 3 5 60 0.5 + 2005001 1 5 Stream 1 3 5 40 0.5 + 3001001 1 5 Stream 1 3 5 40 0.5 3001002 2 5 Burst 1 10 0 0 0.2 - 3002001 1 3 Stream 1 3 5 60 0.5 + 3002001 1 3 Stream 1 3 5 40 0.5 3002002 2 3 Burst 1 10 0 0 0.2 - 3003001 1 5 Stream 1 3 5 60 0.5 + 3003001 1 5 Stream 1 3 5 40 0.5 3003002 2 5 Burst 1 10 0 0 0.2 - 3004001 1 3 Stream 1 3 5 60 0.5 + 3004001 1 3 Stream 1 3 5 40 0.5 3004002 2 3 Burst 1 10 0 0 0.2 - 3005001 1 5 Stream 1 3 5 60 0.5 + 3005001 1 5 Stream 1 3 5 40 0.5 3005002 2 5 Burst 1 10 0 0 0.2 - 4001001 1 5 Stream 1 3 5 60 0.5 + 4001001 1 5 Stream 1 3 5 40 0.5 4002001 1 5 Burst 1 10 0 0 0.2 - 4003001 1 5 Stream 1 3 5 60 0.5 + 4003001 1 5 Stream 1 3 5 40 0.5 4004001 1 5 Burst 1 10 0 0 0.2 - 4005001 1 5 Boss 2 1 5 60 0 + 4005001 1 5 Boss 2 1 5 40 0 diff --git a/Assets/GameMain/DataTables/Scene.txt b/Assets/GameMain/DataTables/Scene.txt index 06e39b7..6aecfae 100644 --- a/Assets/GameMain/DataTables/Scene.txt +++ b/Assets/GameMain/DataTables/Scene.txt @@ -4,4 +4,4 @@ # 场景编号 备注 资源名称 背景音乐编号 1 菜单场景 Menu 1 2 战斗场景 Main 2 - 3 压力测试场景 StressTest 0 + 3 压力测试场景 StressTest 0 diff --git a/Assets/GameMain/DataTables/UIForm.txt b/Assets/GameMain/DataTables/UIForm.txt index 6eae9c6..836c032 100644 --- a/Assets/GameMain/DataTables/UIForm.txt +++ b/Assets/GameMain/DataTables/UIForm.txt @@ -7,9 +7,10 @@ 102 关于 AboutForm Medium False True 110 主界面 MainForm Medium False True 111 仓库UI RepoForm Medium False True - 112 详细信息 ItemDescForm Medium True False - 113 奖励选择UI RewardSelectForm Medium False True - 130 事件UI EventForm Medium False False + 112 大地图UI NodeMapForm Medium False True + 113 详细信息 ItemDescForm Medium True False + 114 奖励选择UI RewardSelectForm Medium False True + 130 事件UI EventForm Medium False True 140 战斗信息UI CombatInfoForm Medium False False 141 战斗结束UI CombatFinishForm Medium False True 142 战斗选择UI CombatSelectForm Overlay False False diff --git a/Assets/GameMain/Scenes/Main.unity b/Assets/GameMain/Scenes/Main.unity index 675287d..92a919d 100644 --- a/Assets/GameMain/Scenes/Main.unity +++ b/Assets/GameMain/Scenes/Main.unity @@ -371,7 +371,7 @@ Transform: m_GameObject: {fileID: 961739749} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1, z: -10} + m_LocalPosition: {x: 0, y: 0, z: -10} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] diff --git a/Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatNodeComponent.cs b/Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatNodeComponent.cs index e27de0c..868ed7a 100644 --- a/Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatNodeComponent.cs +++ b/Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatNodeComponent.cs @@ -174,7 +174,7 @@ namespace GeometryTD.CustomComponent EnsureCombatRuntimeInitialized(); } - public void StartCombat() + public void StartCombat(int levelId = 0) { if (!EnsureCombatRuntimeInitialized()) { @@ -182,9 +182,14 @@ namespace GeometryTD.CustomComponent return; } - if (!TrySelectRandomLevel(out DRLevel selectedLevel)) + bool hasLevel = levelId > 0 + ? TryGetLevelById(levelId, out DRLevel selectedLevel) + : TrySelectRandomLevel(out selectedLevel); + if (!hasLevel) { - Log.Warning("CombatNodeComponent has no level cache. Call OnInit(levelThemeType) first."); + Log.Warning( + "CombatNodeComponent start failed. LevelId={0}. Missing cached level data or invalid level id.", + levelId); return; } @@ -348,6 +353,17 @@ namespace GeometryTD.CustomComponent return _levelsById.TryGetValue(selectedLevelId, out level); } + private bool TryGetLevelById(int levelId, out DRLevel level) + { + level = null; + if (levelId <= 0) + { + return false; + } + + return _levelsById.TryGetValue(levelId, out level); + } + private int CountPhases() { int count = 0; diff --git a/Assets/GameMain/Scripts/CustomComponent/EventNodeComponent.cs b/Assets/GameMain/Scripts/CustomComponent/EventNodeComponent.cs index d8f0315..702c86c 100644 --- a/Assets/GameMain/Scripts/CustomComponent/EventNodeComponent.cs +++ b/Assets/GameMain/Scripts/CustomComponent/EventNodeComponent.cs @@ -15,7 +15,6 @@ namespace GeometryTD.CustomComponent private readonly List _eventItems = new List(); private EventFormUseCase _eventFormUseCase; - private EventFormController _eventFormController; private bool _initialized; public void OnInit() @@ -42,11 +41,7 @@ namespace GeometryTD.CustomComponent _eventFormUseCase = new EventFormUseCase(); } - if (_eventFormController == null) - { - _eventFormController = new EventFormController(); - _eventFormController.BindUseCase(_eventFormUseCase); - } + GameEntry.UIRouter.BindUIUseCase(UIFormType.EventForm, _eventFormUseCase); _initialized = true; Log.Info("EventNodeComponent initialized with {0} events.", _eventItems.Count); @@ -68,14 +63,14 @@ namespace GeometryTD.CustomComponent int index = Random.Range(0, _eventItems.Count); EventItem randomEvent = _eventItems[index]; - if (_eventFormUseCase == null || _eventFormController == null) + if (_eventFormUseCase == null) { Log.Warning("EventNodeComponent StartEvent failed. Event form is not initialized."); return; } _eventFormUseCase.SetCurrentEvent(randomEvent); - _eventFormController.OpenUI(); + GameEntry.UIRouter.OpenUI(UIFormType.EventForm); GameEntry.Event.Fire(this, NodeEnterEventArgs.Create()); } @@ -177,4 +172,4 @@ namespace GeometryTD.CustomComponent return effects.ToArray(); } } -} \ No newline at end of file +} diff --git a/Assets/GameMain/Scripts/DataTable/DRUIForm.cs b/Assets/GameMain/Scripts/DataTable/DRUIForm.cs index dcf397f..a17e73c 100644 --- a/Assets/GameMain/Scripts/DataTable/DRUIForm.cs +++ b/Assets/GameMain/Scripts/DataTable/DRUIForm.cs @@ -1,19 +1,5 @@ -//------------------------------------------------------------ -// Game Framework -// Copyright © 2013-2021 Jiang Yin. All rights reserved. -// Homepage: https://gameframework.cn/ -// Feedback: mailto:ellan@gameframework.cn -//------------------------------------------------------------ -// 此文件由工具自动生成,请勿直接修改。 -// 生成时间:2021-06-16 21:54:35.652 -//------------------------------------------------------------ - -using GameFramework; -using System; -using System.Collections.Generic; -using System.IO; +using System.IO; using System.Text; -using UnityEngine; using UnityGameFramework.Runtime; namespace GeometryTD.DataTable @@ -28,49 +14,27 @@ namespace GeometryTD.DataTable /// /// 获取界面编号。 /// - public override int Id - { - get - { - return m_Id; - } - } + public override int Id => m_Id; /// /// 获取资源名称。 /// - public string AssetName - { - get; - private set; - } + public string AssetName { get; private set; } /// /// 获取界面组名称。 /// - public string UIGroupName - { - get; - private set; - } + public string UIGroupName { get; private set; } /// /// 获取是否允许多个界面实例。 /// - public bool AllowMultiInstance - { - get; - private set; - } + public bool AllowMultiInstance { get; private set; } /// /// 获取是否暂停被其覆盖的界面。 /// - public bool PauseCoveredUIForm - { - get; - private set; - } + public bool PauseCoveredUIForm { get; private set; } public override bool ParseDataRow(string dataRowString, object userData) { diff --git a/Assets/GameMain/Scripts/Definition/Enum/UIFormType.cs b/Assets/GameMain/Scripts/Definition/Enum/UIFormType.cs index 016e486..3d7553f 100644 --- a/Assets/GameMain/Scripts/Definition/Enum/UIFormType.cs +++ b/Assets/GameMain/Scripts/Definition/Enum/UIFormType.cs @@ -37,15 +37,20 @@ /// RepoForm = 111, + /// + /// 节点地图界面。 + /// + NodeMapForm = 112, + /// /// 道具详细信息界面。 /// - ItemDescForm = 112, + ItemDescForm = 113, /// /// 奖励三选一界面。 /// - RewardSelectForm = 113, + RewardSelectForm = 114, /// /// 事件节点界面。 @@ -77,4 +82,4 @@ /// TestMenuForm = 200, } -} +} \ No newline at end of file diff --git a/Assets/GameMain/Scripts/Event/Game/NodeMapNodeClickEventArgs.cs b/Assets/GameMain/Scripts/Event/Game/NodeMapNodeClickEventArgs.cs new file mode 100644 index 0000000..8b3fb8e --- /dev/null +++ b/Assets/GameMain/Scripts/Event/Game/NodeMapNodeClickEventArgs.cs @@ -0,0 +1,26 @@ +using GameFramework; +using GameFramework.Event; + +namespace GeometryTD.CustomEvent +{ + public sealed class NodeMapNodeClickEventArgs : GameEventArgs + { + public static int EventId => typeof(NodeMapNodeClickEventArgs).GetHashCode(); + + public override int Id => EventId; + + public int SequenceIndex { get; private set; } + + public static NodeMapNodeClickEventArgs Create(int sequenceIndex) + { + NodeMapNodeClickEventArgs args = ReferencePool.Acquire(); + args.SequenceIndex = sequenceIndex; + return args; + } + + public override void Clear() + { + SequenceIndex = -1; + } + } +} diff --git a/Assets/GameMain/Scripts/Event/Game/NodeMapNodeClickEventArgs.cs.meta b/Assets/GameMain/Scripts/Event/Game/NodeMapNodeClickEventArgs.cs.meta new file mode 100644 index 0000000..210c981 --- /dev/null +++ b/Assets/GameMain/Scripts/Event/Game/NodeMapNodeClickEventArgs.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f16aabf150fd6f640ad6e2ab01705d4f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/Event/Game/NodeMapNodeEnterRequestedEventArgs.cs b/Assets/GameMain/Scripts/Event/Game/NodeMapNodeEnterRequestedEventArgs.cs new file mode 100644 index 0000000..064a930 --- /dev/null +++ b/Assets/GameMain/Scripts/Event/Game/NodeMapNodeEnterRequestedEventArgs.cs @@ -0,0 +1,43 @@ +using GameFramework; +using GameFramework.Event; +using GeometryTD.Procedure; + +namespace GeometryTD.CustomEvent +{ + public sealed class NodeMapNodeEnterRequestedEventArgs : GameEventArgs + { + public static int EventId => typeof(NodeMapNodeEnterRequestedEventArgs).GetHashCode(); + + public override int Id => EventId; + + public string RunId { get; private set; } + + public int NodeId { get; private set; } + + public RunNodeType NodeType { get; private set; } + + public int SequenceIndex { get; private set; } + + public static NodeMapNodeEnterRequestedEventArgs Create( + string runId, + int nodeId, + RunNodeType nodeType, + int sequenceIndex) + { + NodeMapNodeEnterRequestedEventArgs args = ReferencePool.Acquire(); + args.RunId = runId; + args.NodeId = nodeId; + args.NodeType = nodeType; + args.SequenceIndex = sequenceIndex; + return args; + } + + public override void Clear() + { + RunId = null; + NodeId = 0; + NodeType = RunNodeType.None; + SequenceIndex = -1; + } + } +} diff --git a/Assets/GameMain/Scripts/Event/Game/NodeMapNodeEnterRequestedEventArgs.cs.meta b/Assets/GameMain/Scripts/Event/Game/NodeMapNodeEnterRequestedEventArgs.cs.meta new file mode 100644 index 0000000..163266a --- /dev/null +++ b/Assets/GameMain/Scripts/Event/Game/NodeMapNodeEnterRequestedEventArgs.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ef66951469c024d49a35903ac4c6eb13 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/Event/Menu.meta b/Assets/GameMain/Scripts/Event/Menu.meta new file mode 100644 index 0000000..a6eccfe --- /dev/null +++ b/Assets/GameMain/Scripts/Event/Menu.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6892232c51df8e1439ccc908fb93307b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/Event/Menu/MenuExitRequestedEventArgs.cs b/Assets/GameMain/Scripts/Event/Menu/MenuExitRequestedEventArgs.cs new file mode 100644 index 0000000..ec44241 --- /dev/null +++ b/Assets/GameMain/Scripts/Event/Menu/MenuExitRequestedEventArgs.cs @@ -0,0 +1,21 @@ +using GameFramework; +using GameFramework.Event; + +namespace GeometryTD.CustomEvent +{ + public class MenuExitRequestedEventArgs : GameEventArgs + { + public static int EventId => typeof(MenuExitRequestedEventArgs).GetHashCode(); + + public override int Id => EventId; + + public static MenuExitRequestedEventArgs Create() + { + return ReferencePool.Acquire(); + } + + public override void Clear() + { + } + } +} diff --git a/Assets/GameMain/Scripts/Event/Menu/MenuExitRequestedEventArgs.cs.meta b/Assets/GameMain/Scripts/Event/Menu/MenuExitRequestedEventArgs.cs.meta new file mode 100644 index 0000000..cee062c --- /dev/null +++ b/Assets/GameMain/Scripts/Event/Menu/MenuExitRequestedEventArgs.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f6b431184ddeace4489032ecdd5996b8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/Event/Menu/MenuSettingsRequestedEventArgs.cs b/Assets/GameMain/Scripts/Event/Menu/MenuSettingsRequestedEventArgs.cs new file mode 100644 index 0000000..6d9db5e --- /dev/null +++ b/Assets/GameMain/Scripts/Event/Menu/MenuSettingsRequestedEventArgs.cs @@ -0,0 +1,21 @@ +using GameFramework; +using GameFramework.Event; + +namespace GeometryTD.CustomEvent +{ + public class MenuSettingsRequestedEventArgs : GameEventArgs + { + public static int EventId => typeof(MenuSettingsRequestedEventArgs).GetHashCode(); + + public override int Id => EventId; + + public static MenuSettingsRequestedEventArgs Create() + { + return ReferencePool.Acquire(); + } + + public override void Clear() + { + } + } +} diff --git a/Assets/GameMain/Scripts/Event/Menu/MenuSettingsRequestedEventArgs.cs.meta b/Assets/GameMain/Scripts/Event/Menu/MenuSettingsRequestedEventArgs.cs.meta new file mode 100644 index 0000000..10f9436 --- /dev/null +++ b/Assets/GameMain/Scripts/Event/Menu/MenuSettingsRequestedEventArgs.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3b9028de1ea48854caaafc4c9022319a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/Event/Menu/MenuStartRequestedEventArgs.cs b/Assets/GameMain/Scripts/Event/Menu/MenuStartRequestedEventArgs.cs new file mode 100644 index 0000000..76ffb38 --- /dev/null +++ b/Assets/GameMain/Scripts/Event/Menu/MenuStartRequestedEventArgs.cs @@ -0,0 +1,21 @@ +using GameFramework; +using GameFramework.Event; + +namespace GeometryTD.CustomEvent +{ + public class MenuStartRequestedEventArgs : GameEventArgs + { + public static int EventId => typeof(MenuStartRequestedEventArgs).GetHashCode(); + + public override int Id => EventId; + + public static MenuStartRequestedEventArgs Create() + { + return ReferencePool.Acquire(); + } + + public override void Clear() + { + } + } +} diff --git a/Assets/GameMain/Scripts/Event/Menu/MenuStartRequestedEventArgs.cs.meta b/Assets/GameMain/Scripts/Event/Menu/MenuStartRequestedEventArgs.cs.meta new file mode 100644 index 0000000..78c48a2 --- /dev/null +++ b/Assets/GameMain/Scripts/Event/Menu/MenuStartRequestedEventArgs.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b6605592d400a4b478c9380e0c97ad3a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/Procedure/Base.meta b/Assets/GameMain/Scripts/Procedure/Base.meta new file mode 100644 index 0000000..2db4635 --- /dev/null +++ b/Assets/GameMain/Scripts/Procedure/Base.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d17e5e91c45a8814c954edf31b063100 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureBase.cs b/Assets/GameMain/Scripts/Procedure/Base/ProcedureBase.cs similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedureBase.cs rename to Assets/GameMain/Scripts/Procedure/Base/ProcedureBase.cs diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureBase.cs.meta b/Assets/GameMain/Scripts/Procedure/Base/ProcedureBase.cs.meta similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedureBase.cs.meta rename to Assets/GameMain/Scripts/Procedure/Base/ProcedureBase.cs.meta diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureChangeScene.cs b/Assets/GameMain/Scripts/Procedure/Base/ProcedureChangeScene.cs similarity index 98% rename from Assets/GameMain/Scripts/Procedure/ProcedureChangeScene.cs rename to Assets/GameMain/Scripts/Procedure/Base/ProcedureChangeScene.cs index 9326daa..9b96bee 100644 --- a/Assets/GameMain/Scripts/Procedure/ProcedureChangeScene.cs +++ b/Assets/GameMain/Scripts/Procedure/Base/ProcedureChangeScene.cs @@ -86,7 +86,7 @@ namespace GeometryTD.Procedure ChangeState(procedureOwner); break; case SceneType.Main: - ChangeState(procedureOwner); + ChangeState(procedureOwner); break; default: Log.Debug($"Scene {sceneType.ToString()} don't configure a procedure"); @@ -146,4 +146,4 @@ namespace GeometryTD.Procedure ne.DependencyAssetName, ne.LoadedCount.ToString(), ne.TotalCount.ToString()); } } -} \ No newline at end of file +} diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureChangeScene.cs.meta b/Assets/GameMain/Scripts/Procedure/Base/ProcedureChangeScene.cs.meta similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedureChangeScene.cs.meta rename to Assets/GameMain/Scripts/Procedure/Base/ProcedureChangeScene.cs.meta diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureCheckResources.cs b/Assets/GameMain/Scripts/Procedure/Base/ProcedureCheckResources.cs similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedureCheckResources.cs rename to Assets/GameMain/Scripts/Procedure/Base/ProcedureCheckResources.cs diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureCheckResources.cs.meta b/Assets/GameMain/Scripts/Procedure/Base/ProcedureCheckResources.cs.meta similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedureCheckResources.cs.meta rename to Assets/GameMain/Scripts/Procedure/Base/ProcedureCheckResources.cs.meta diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureCheckVersion.cs b/Assets/GameMain/Scripts/Procedure/Base/ProcedureCheckVersion.cs similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedureCheckVersion.cs rename to Assets/GameMain/Scripts/Procedure/Base/ProcedureCheckVersion.cs diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureCheckVersion.cs.meta b/Assets/GameMain/Scripts/Procedure/Base/ProcedureCheckVersion.cs.meta similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedureCheckVersion.cs.meta rename to Assets/GameMain/Scripts/Procedure/Base/ProcedureCheckVersion.cs.meta diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureInitResources.cs b/Assets/GameMain/Scripts/Procedure/Base/ProcedureInitResources.cs similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedureInitResources.cs rename to Assets/GameMain/Scripts/Procedure/Base/ProcedureInitResources.cs diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureInitResources.cs.meta b/Assets/GameMain/Scripts/Procedure/Base/ProcedureInitResources.cs.meta similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedureInitResources.cs.meta rename to Assets/GameMain/Scripts/Procedure/Base/ProcedureInitResources.cs.meta diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureLaunch.cs b/Assets/GameMain/Scripts/Procedure/Base/ProcedureLaunch.cs similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedureLaunch.cs rename to Assets/GameMain/Scripts/Procedure/Base/ProcedureLaunch.cs diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureLaunch.cs.meta b/Assets/GameMain/Scripts/Procedure/Base/ProcedureLaunch.cs.meta similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedureLaunch.cs.meta rename to Assets/GameMain/Scripts/Procedure/Base/ProcedureLaunch.cs.meta diff --git a/Assets/GameMain/Scripts/Procedure/ProcedurePreload.cs b/Assets/GameMain/Scripts/Procedure/Base/ProcedurePreload.cs similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedurePreload.cs rename to Assets/GameMain/Scripts/Procedure/Base/ProcedurePreload.cs diff --git a/Assets/GameMain/Scripts/Procedure/ProcedurePreload.cs.meta b/Assets/GameMain/Scripts/Procedure/Base/ProcedurePreload.cs.meta similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedurePreload.cs.meta rename to Assets/GameMain/Scripts/Procedure/Base/ProcedurePreload.cs.meta diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureSplash.cs b/Assets/GameMain/Scripts/Procedure/Base/ProcedureSplash.cs similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedureSplash.cs rename to Assets/GameMain/Scripts/Procedure/Base/ProcedureSplash.cs diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureSplash.cs.meta b/Assets/GameMain/Scripts/Procedure/Base/ProcedureSplash.cs.meta similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedureSplash.cs.meta rename to Assets/GameMain/Scripts/Procedure/Base/ProcedureSplash.cs.meta diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureUpdateResources.cs b/Assets/GameMain/Scripts/Procedure/Base/ProcedureUpdateResources.cs similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedureUpdateResources.cs rename to Assets/GameMain/Scripts/Procedure/Base/ProcedureUpdateResources.cs diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureUpdateResources.cs.meta b/Assets/GameMain/Scripts/Procedure/Base/ProcedureUpdateResources.cs.meta similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedureUpdateResources.cs.meta rename to Assets/GameMain/Scripts/Procedure/Base/ProcedureUpdateResources.cs.meta diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureUpdateVersion.cs b/Assets/GameMain/Scripts/Procedure/Base/ProcedureUpdateVersion.cs similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedureUpdateVersion.cs rename to Assets/GameMain/Scripts/Procedure/Base/ProcedureUpdateVersion.cs diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureUpdateVersion.cs.meta b/Assets/GameMain/Scripts/Procedure/Base/ProcedureUpdateVersion.cs.meta similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedureUpdateVersion.cs.meta rename to Assets/GameMain/Scripts/Procedure/Base/ProcedureUpdateVersion.cs.meta diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureVerifyResources.cs b/Assets/GameMain/Scripts/Procedure/Base/ProcedureVerifyResources.cs similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedureVerifyResources.cs rename to Assets/GameMain/Scripts/Procedure/Base/ProcedureVerifyResources.cs diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureVerifyResources.cs.meta b/Assets/GameMain/Scripts/Procedure/Base/ProcedureVerifyResources.cs.meta similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedureVerifyResources.cs.meta rename to Assets/GameMain/Scripts/Procedure/Base/ProcedureVerifyResources.cs.meta diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureMain.cs b/Assets/GameMain/Scripts/Procedure/ProcedureMain.cs new file mode 100644 index 0000000..78439b5 --- /dev/null +++ b/Assets/GameMain/Scripts/Procedure/ProcedureMain.cs @@ -0,0 +1,213 @@ +using GameFramework.Event; +using GameFramework.Fsm; +using GameFramework.Procedure; +using GeometryTD.CustomEvent; +using GeometryTD.Definition; +using GeometryTD.UI; +using UnityGameFramework.Runtime; + +namespace GeometryTD.Procedure +{ + public class ProcedureMain : ProcedureBase + { + public override bool UseNativeDialog => false; + + private RepoFormUseCase _repoFormUseCase; + private NodeMapFormUseCase _nodeMapFormUseCase; + private RunState _currentRunState; + + #region FSM + + protected override void OnEnter(IFsm procedureOwner) + { + base.OnEnter(procedureOwner); + + GameEntry.Event.Subscribe(CombatFailureReturnEventArgs.EventId, OnCombatFailureReturn); + GameEntry.Event.Subscribe(NodeCompleteEventArgs.EventId, OnNodeComplete); + GameEntry.Event.Subscribe(NodeEnterEventArgs.EventId, OnNodeEnter); + GameEntry.Event.Subscribe(NodeMapNodeEnterRequestedEventArgs.EventId, OnNodeMapNodeEnterRequested); + + GameEntry.EventNode.OnInit(); + GameEntry.CombatNode.OnInit(LevelThemeType.Plain); + GameEntry.ShopNode.OnInit(); + GameEntry.PlayerInventory?.OnInit(); + + _currentRunState = RunStateFactory.CreateFixedRun( + LevelThemeType.Plain, + GameEntry.PlayerInventory != null + ? GameEntry.PlayerInventory.GetInventorySnapshot() + : null); + + _repoFormUseCase = new RepoFormUseCase(); + GameEntry.UIRouter.BindUIUseCase(UIFormType.RepoForm, _repoFormUseCase); + + _nodeMapFormUseCase = new NodeMapFormUseCase(); + _nodeMapFormUseCase.SetRunState(_currentRunState); + GameEntry.UIRouter.BindUIUseCase(UIFormType.NodeMapForm, _nodeMapFormUseCase); + + OpenHubUI(); + } + + protected override void OnUpdate(IFsm procedureOwner, float elapseSeconds, + float realElapseSeconds) + { + base.OnUpdate(procedureOwner, elapseSeconds, realElapseSeconds); + + GameEntry.CombatNode.OnUpdate(elapseSeconds, realElapseSeconds); + } + + protected override void OnLeave(IFsm procedureOwner, bool isShutdown) + { + GameEntry.CombatNode.OnShutdown(); + GameEntry.Event.Unsubscribe(NodeMapNodeEnterRequestedEventArgs.EventId, OnNodeMapNodeEnterRequested); + GameEntry.Event.Unsubscribe(CombatFailureReturnEventArgs.EventId, OnCombatFailureReturn); + GameEntry.Event.Unsubscribe(NodeEnterEventArgs.EventId, OnNodeEnter); + GameEntry.Event.Unsubscribe(NodeCompleteEventArgs.EventId, OnNodeComplete); + GameEntry.UIRouter.CloseUI(UIFormType.RepoForm); + GameEntry.UIRouter.CloseUI(UIFormType.NodeMapForm); + GameEntry.UIRouter.CloseUI(UIFormType.MainForm); + _repoFormUseCase = null; + _nodeMapFormUseCase = null; + _currentRunState = null; + + base.OnLeave(procedureOwner, isShutdown); + } + + #endregion + + + private void OnNodeEnter(object sender, GameEventArgs e) + { + if (!(e is NodeEnterEventArgs)) + { + return; + } + + GameEntry.UIRouter.CloseUI(UIFormType.NodeMapForm); + GameEntry.UIRouter.CloseUI(UIFormType.MainForm); + } + + private void OnNodeComplete(object sender, GameEventArgs e) + { + if (!(e is NodeCompleteEventArgs args)) + { + return; + } + + BackpackInventoryData snapshot = args.InventorySnapshotAfterNode; + if (snapshot == null && GameEntry.PlayerInventory != null) + { + snapshot = GameEntry.PlayerInventory.GetInventorySnapshot(); + } + + AdvanceRunState(true, snapshot); + OpenHubUI(); + } + + private void OnCombatFailureReturn(object sender, GameEventArgs e) + { + if (!(e is CombatFailureReturnEventArgs)) + { + return; + } + + BackpackInventoryData snapshot = GameEntry.PlayerInventory != null + ? GameEntry.PlayerInventory.GetInventorySnapshot() + : null; + AdvanceRunState(false, snapshot); + OpenHubUI(); + } + + private void OnNodeMapNodeEnterRequested(object sender, GameEventArgs e) + { + if (!(sender is NodeMapForm) || !(e is NodeMapNodeEnterRequestedEventArgs args)) + { + return; + } + + RunNodeState currentNode = _currentRunState?.CurrentNode; + if (_currentRunState == null || !_currentRunState.CanEnterCurrentNode || currentNode == null) + { + Log.Warning("ProcedureMain.OnNodeMapNodeEnterRequested() ignored. Current run has no enterable node."); + return; + } + + if (args.SequenceIndex != currentNode.SequenceIndex || args.NodeType != currentNode.NodeType) + { + Log.Warning( + "ProcedureMain.OnNodeMapNodeEnterRequested() ignored. Requested={0}#{1}, CurrentNode={2}#{3}.", + args.NodeType, + args.SequenceIndex, + currentNode.NodeType, + currentNode.SequenceIndex); + return; + } + + switch (currentNode.NodeType) + { + case RunNodeType.Combat: + case RunNodeType.BossCombat: + if (!HasAvailableParticipantTower()) + { + Log.Warning("ProcedureMain blocked combat start. No participant tower is available."); + return; + } + + GameEntry.CombatNode.StartCombat(currentNode.LinkedLevelId); + return; + case RunNodeType.Event: + GameEntry.EventNode.StartEvent(); + return; + case RunNodeType.Shop: + GameEntry.ShopNode.StartShop(); + return; + default: + Log.Warning("ProcedureMain.OnNodeMapNodeEnterRequested() encountered unsupported node type: {0}.", currentNode.NodeType); + return; + } + } + + private void AdvanceRunState(bool succeeded, BackpackInventoryData snapshot) + { + if (_currentRunState == null) + { + return; + } + + if (!RunStateAdvanceService.TryCompleteCurrentNode(_currentRunState, succeeded, snapshot)) + { + return; + } + + if (_currentRunState.IsCompleted) + { + Log.Info("ProcedureMain run completed. RunId={0}", _currentRunState.RunId); + return; + } + + RunNodeState nextNode = _currentRunState.CurrentNode; + if (nextNode != null) + { + Log.Info( + "ProcedureMain advanced run. RunId={0}, NextNodeType={1}, SequenceIndex={2}, LevelId={3}.", + _currentRunState.RunId, + nextNode.NodeType, + nextNode.SequenceIndex, + nextNode.LinkedLevelId); + } + } + + private static bool HasAvailableParticipantTower() + { + return GameEntry.PlayerInventory != null && + GameEntry.PlayerInventory.GetParticipantTowerSnapshot().Count > 0; + } + + private void OpenHubUI() + { + _nodeMapFormUseCase?.SetRunState(_currentRunState); + GameEntry.UIRouter.OpenUI(UIFormType.MainForm); + GameEntry.UIRouter.OpenUI(UIFormType.NodeMapForm); + } + } +} diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureMain.cs.meta b/Assets/GameMain/Scripts/Procedure/ProcedureMain.cs.meta new file mode 100644 index 0000000..146c46d --- /dev/null +++ b/Assets/GameMain/Scripts/Procedure/ProcedureMain.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e6f092ddfab48b74d8e8cc338e4742e4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureMenu.cs b/Assets/GameMain/Scripts/Procedure/ProcedureMenu.cs index 8427f02..dd9354c 100644 --- a/Assets/GameMain/Scripts/Procedure/ProcedureMenu.cs +++ b/Assets/GameMain/Scripts/Procedure/ProcedureMenu.cs @@ -1,7 +1,5 @@ -using GameFramework.Event; using GameFramework.Fsm; using GameFramework.Procedure; -using GeometryTD.CustomEvent; using GeometryTD.Definition; using GeometryTD.UI; using UnityGameFramework.Runtime; @@ -14,7 +12,7 @@ namespace GeometryTD.Procedure public bool GameStart { get; set; } - private RepoFormUseCase _repoFormUseCase; + private MenuFormUseCase _menuFormUseCase; #region FSM @@ -27,22 +25,11 @@ namespace GeometryTD.Procedure { base.OnEnter(procedureOwner); - GameEntry.Event.Subscribe(CombatFailureReturnEventArgs.EventId, OnCombatFailureReturn); - GameEntry.Event.Subscribe(NodeCompleteEventArgs.EventId, OnNodeComplete); - GameEntry.Event.Subscribe(NodeEnterEventArgs.EventId, OnNodeEnter); - GameStart = false; - GameEntry.EventNode.OnInit(); - GameEntry.CombatNode.OnInit(LevelThemeType.Plain); - GameEntry.ShopNode.OnInit(); - GameEntry.PlayerInventory?.OnInit(); - - _repoFormUseCase = new RepoFormUseCase(); - GameEntry.UIRouter.BindUIUseCase(UIFormType.RepoForm, _repoFormUseCase); - - GameEntry.UIRouter.OpenUI(UIFormType.MainForm); - GameEntry.UIRouter.OpenUI(UIFormType.TestMenuForm); + _menuFormUseCase = new MenuFormUseCase(); + GameEntry.UIRouter.BindUIUseCase(UIFormType.MenuForm, _menuFormUseCase); + GameEntry.UIRouter.OpenUI(UIFormType.MenuForm); } protected override void OnUpdate(IFsm procedureOwner, float elapseSeconds, @@ -57,44 +44,16 @@ namespace GeometryTD.Procedure return; } - GameEntry.CombatNode.OnUpdate(elapseSeconds, realElapseSeconds); } protected override void OnLeave(IFsm procedureOwner, bool isShutdown) { - GameEntry.CombatNode.OnShutdown(); - GameEntry.Event.Unsubscribe(CombatFailureReturnEventArgs.EventId, OnCombatFailureReturn); - GameEntry.Event.Unsubscribe(NodeEnterEventArgs.EventId, OnNodeEnter); - GameEntry.Event.Unsubscribe(NodeCompleteEventArgs.EventId, OnNodeComplete); - _repoFormUseCase = null; + GameEntry.UIRouter.CloseUI(UIFormType.MenuForm); + _menuFormUseCase = null; base.OnLeave(procedureOwner, isShutdown); } #endregion - - private void OnNodeEnter(object sender, GameEventArgs e) - { - if (!(e is NodeEnterEventArgs)) return; - - GameEntry.UIRouter.CloseUI(UIFormType.TestMenuForm); - GameEntry.UIRouter.CloseUI(UIFormType.MainForm); - } - - private void OnNodeComplete(object sender, GameEventArgs e) - { - if (!(e is NodeCompleteEventArgs)) return; - - GameEntry.UIRouter.OpenUI(UIFormType.TestMenuForm); - GameEntry.UIRouter.OpenUI(UIFormType.MainForm); - } - - private void OnCombatFailureReturn(object sender, GameEventArgs e) - { - if (!(e is CombatFailureReturnEventArgs)) return; - - GameEntry.UIRouter.OpenUI(UIFormType.TestMenuForm); - GameEntry.UIRouter.OpenUI(UIFormType.MainForm); - } } } diff --git a/Assets/GameMain/Scripts/UI/Game/Context/NodeItemContext.cs b/Assets/GameMain/Scripts/UI/Game/Context/NodeItemContext.cs new file mode 100644 index 0000000..391abc8 --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Game/Context/NodeItemContext.cs @@ -0,0 +1,16 @@ +using GeometryTD.Procedure; + +namespace GeometryTD.UI +{ + public sealed class NodeItemContext : UIContext + { + public int NodeId; + public int SequenceIndex; + public RunNodeType NodeType; + public bool IsLocked; + public bool IsCurrent; + public bool IsCompleted; + public bool IsFailed; + public bool CanClick; + } +} diff --git a/Assets/GameMain/Scripts/UI/Game/Context/NodeItemContext.cs.meta b/Assets/GameMain/Scripts/UI/Game/Context/NodeItemContext.cs.meta new file mode 100644 index 0000000..6c7658b --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Game/Context/NodeItemContext.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: da34e789554bd744e913db9fa3615322 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/UI/Game/Context/NodeMapFormContext.cs b/Assets/GameMain/Scripts/UI/Game/Context/NodeMapFormContext.cs new file mode 100644 index 0000000..ece9752 --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Game/Context/NodeMapFormContext.cs @@ -0,0 +1,11 @@ +namespace GeometryTD.UI +{ + public sealed class NodeMapFormContext : UIContext + { + public string Title; + public string ProgressText; + public string CurrentNodeText; + public bool IsRunCompleted; + public NodeItemContext[] NodeItems; + } +} diff --git a/Assets/GameMain/Scripts/UI/Game/Context/NodeMapFormContext.cs.meta b/Assets/GameMain/Scripts/UI/Game/Context/NodeMapFormContext.cs.meta new file mode 100644 index 0000000..65595a9 --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Game/Context/NodeMapFormContext.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bb4720747caac9641b0bf06abbdad70f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/UI/Game/Controller/NodeMapFormController.cs b/Assets/GameMain/Scripts/UI/Game/Controller/NodeMapFormController.cs new file mode 100644 index 0000000..327beb8 --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Game/Controller/NodeMapFormController.cs @@ -0,0 +1,162 @@ +using GeometryTD.CustomEvent; +using GeometryTD.Definition; +using GeometryTD.Procedure; +using GameFramework.Event; +using UnityEngine; +using UnityGameFramework.Runtime; + +namespace GeometryTD.UI +{ + public sealed class NodeMapFormController : UIFormControllerCommonBase + { + private NodeMapFormUseCase _useCase; + + protected override UIFormType UIFormTypeId => UIFormType.NodeMapForm; + + protected override void RefreshUI(NodeMapForm form, NodeMapFormContext context) + { + form.RefreshUI(context); + } + + protected override void SubscribeCustomEvents() + { + GameEntry.Event.Subscribe(NodeMapNodeClickEventArgs.EventId, OnNodeClicked); + } + + protected override void UnsubscribeCustomEvents() + { + GameEntry.Event.Unsubscribe(NodeMapNodeClickEventArgs.EventId, OnNodeClicked); + } + + public override int? OpenUI(object userData = null) + { + if (userData is NodeMapFormContext context) + { + return OpenUIInternal(context); + } + + if (userData is NodeMapFormRawData rawDataFromUserData) + { + return OpenUI(rawDataFromUserData); + } + + if (userData != null) + { + Log.Warning("NodeMapFormController.OpenUI() userData type is invalid."); + return null; + } + + if (_useCase == null) + { + Log.Error("NodeMapFormController.OpenUI() useCase is null."); + return null; + } + + return OpenUI(_useCase.CreateInitialModel()); + } + + public int? OpenUI(NodeMapFormRawData rawData) + { + return OpenUIInternal(BuildContext(rawData)); + } + + public override void BindUseCase(IUIUseCase useCase) + { + if (!(useCase is NodeMapFormUseCase nodeMapFormUseCase)) + { + Log.Error("NodeMapFormController.BindUseCase() useCase is invalid."); + return; + } + + _useCase = nodeMapFormUseCase; + } + + private void OnNodeClicked(object sender, GameEventArgs e) + { + if (!IsEventFromCurrentForm(sender) || !(e is NodeMapNodeClickEventArgs args) || _useCase == null) + { + return; + } + + if (!_useCase.TryRequestEnterNode(args.SequenceIndex, out NodeMapNodeRawData selectedNode, out NodeMapFormRawData latestRawData)) + { + if (latestRawData != null) + { + SetContext(BuildContext(latestRawData)); + RefreshCurrentUI(); + } + + return; + } + + if (latestRawData != null) + { + SetContext(BuildContext(latestRawData)); + RefreshCurrentUI(); + } + + if (Form != null && selectedNode != null) + { + GameEntry.Event.Fire(Form, NodeMapNodeEnterRequestedEventArgs.Create( + selectedNode.RunId, + selectedNode.NodeId, + selectedNode.NodeType, + selectedNode.SequenceIndex)); + } + } + + private bool IsEventFromCurrentForm(object sender) + { + if (Form == null) + { + return false; + } + + if (ReferenceEquals(sender, Form)) + { + return true; + } + + if (sender is Component component) + { + NodeMapForm ownerForm = component.GetComponentInParent(); + return ownerForm == Form; + } + + return false; + } + + private static NodeMapFormContext BuildContext(NodeMapFormRawData rawData) + { + NodeItemContext[] nodeItemContexts = System.Array.Empty(); + if (rawData?.Nodes != null && rawData.Nodes.Count > 0) + { + nodeItemContexts = new NodeItemContext[rawData.Nodes.Count]; + for (int i = 0; i < rawData.Nodes.Count; i++) + { + NodeMapNodeRawData node = rawData.Nodes[i]; + nodeItemContexts[i] = new NodeItemContext + { + NodeId = node?.NodeId ?? 0, + SequenceIndex = node?.SequenceIndex ?? i, + NodeType = node?.NodeType ?? RunNodeType.None, + IsLocked = node != null && node.Status == RunNodeStatus.Locked, + IsCurrent = node != null && node.IsCurrentNode, + IsCompleted = node != null && node.Status == RunNodeStatus.Completed, + IsFailed = node != null && node.Status == RunNodeStatus.Failed, + CanClick = node != null && node.CanEnter + }; + } + } + + return new NodeMapFormContext + { + Title = rawData?.Title ?? "节点地图", + ProgressText = rawData?.ProgressText ?? "0 / 0", + CurrentNodeText = rawData?.CurrentNodeText ?? "当前节点: 无", + IsRunCompleted = rawData != null && rawData.IsRunCompleted, + NodeItems = nodeItemContexts + }; + } + } +} diff --git a/Assets/GameMain/Scripts/UI/Game/Controller/NodeMapFormController.cs.meta b/Assets/GameMain/Scripts/UI/Game/Controller/NodeMapFormController.cs.meta new file mode 100644 index 0000000..11a1ef7 --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Game/Controller/NodeMapFormController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e24f8a016c2dd9b4b9e7aa34a24185a0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/UI/Game/RawData/NodeMapFormRawData.cs b/Assets/GameMain/Scripts/UI/Game/RawData/NodeMapFormRawData.cs new file mode 100644 index 0000000..30ac6b8 --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Game/RawData/NodeMapFormRawData.cs @@ -0,0 +1,28 @@ +using System.Collections.Generic; +using GeometryTD.Procedure; + +namespace GeometryTD.UI +{ + public sealed class NodeMapFormRawData + { + public string RunId; + public string Title; + public string ProgressText; + public string CurrentNodeText; + public bool IsRunCompleted; + public List Nodes; + } + + public sealed class NodeMapNodeRawData + { + public string RunId; + public int NodeId; + public int SequenceIndex; + public RunNodeType NodeType; + public RunNodeStatus Status; + public bool IsCurrentNode; + public bool CanEnter; + public string Title; + public string StatusText; + } +} diff --git a/Assets/GameMain/Scripts/UI/Game/RawData/NodeMapFormRawData.cs.meta b/Assets/GameMain/Scripts/UI/Game/RawData/NodeMapFormRawData.cs.meta new file mode 100644 index 0000000..4dc0f9d --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Game/RawData/NodeMapFormRawData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 933dea9978c15484aab9df1bd8f32276 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/UI/Game/UseCase/NodeMapFormUseCase.cs b/Assets/GameMain/Scripts/UI/Game/UseCase/NodeMapFormUseCase.cs new file mode 100644 index 0000000..eb5408b --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Game/UseCase/NodeMapFormUseCase.cs @@ -0,0 +1,156 @@ +using System.Collections.Generic; +using GeometryTD.Procedure; + +namespace GeometryTD.UI +{ + public sealed class NodeMapFormUseCase : IUIUseCase + { + private RunState _runState; + + public void SetRunState(RunState runState) + { + _runState = runState; + } + + public NodeMapFormRawData CreateInitialModel() + { + return BuildRawData(_runState); + } + + public bool TryRequestEnterNode(int sequenceIndex, out NodeMapNodeRawData selectedNode, out NodeMapFormRawData latestRawData) + { + latestRawData = BuildRawData(_runState); + selectedNode = null; + + if (_runState == null || _runState.IsCompleted) + { + return false; + } + + RunNodeState currentNode = _runState.CurrentNode; + if (currentNode == null || currentNode.SequenceIndex != sequenceIndex || !_runState.CanEnterCurrentNode) + { + return false; + } + + RunNodeState targetNode = _runState.GetNodeBySequenceIndex(sequenceIndex); + if (targetNode == null || targetNode.Status != RunNodeStatus.Available) + { + return false; + } + + selectedNode = BuildNodeRawData(_runState.RunId, targetNode, currentNode.SequenceIndex); + return selectedNode != null && selectedNode.CanEnter; + } + + private static NodeMapFormRawData BuildRawData(RunState runState) + { + if (runState == null) + { + return new NodeMapFormRawData + { + Title = "节点地图", + ProgressText = "0 / 0", + CurrentNodeText = "当前节点: 无", + IsRunCompleted = true, + Nodes = new List() + }; + } + + List nodes = new List(runState.NodeCount); + int currentSequenceIndex = runState.CurrentNode != null ? runState.CurrentNode.SequenceIndex : -1; + foreach (RunNodeState node in runState.Nodes) + { + NodeMapNodeRawData nodeRawData = BuildNodeRawData(runState.RunId, node, currentSequenceIndex); + if (nodeRawData != null) + { + nodes.Add(nodeRawData); + } + } + + string currentNodeText = runState.IsCompleted + ? "当前节点: 已完成" + : $"当前节点: {BuildNodeTitle(runState.CurrentNode)}"; + + return new NodeMapFormRawData + { + RunId = runState.RunId, + Title = "节点地图", + ProgressText = $"{runState.CompletedNodeCount} / {runState.NodeCount}", + CurrentNodeText = currentNodeText, + IsRunCompleted = runState.IsCompleted, + Nodes = nodes + }; + } + + private static NodeMapNodeRawData BuildNodeRawData(string runId, RunNodeState node, int currentSequenceIndex) + { + if (node == null) + { + return null; + } + + bool isCurrentNode = node.SequenceIndex == currentSequenceIndex; + bool canEnter = isCurrentNode && node.Status == RunNodeStatus.Available; + + return new NodeMapNodeRawData + { + RunId = runId, + NodeId = node.NodeId, + SequenceIndex = node.SequenceIndex, + NodeType = node.NodeType, + Status = node.Status, + IsCurrentNode = isCurrentNode, + CanEnter = canEnter, + Title = BuildNodeTitle(node), + StatusText = BuildStatusText(node.Status, canEnter) + }; + } + + private static string BuildNodeTitle(RunNodeState node) + { + return node == null ? "未知节点" : BuildNodeTitle(node.NodeType); + } + + private static string BuildNodeTitle(RunNodeType nodeType) + { + switch (nodeType) + { + case RunNodeType.Combat: + return "战斗"; + case RunNodeType.Event: + return "事件"; + case RunNodeType.Shop: + return "商店"; + case RunNodeType.BossCombat: + return "Boss"; + default: + return "未知节点"; + } + } + + private static string BuildStatusText(RunNodeStatus status, bool canEnter) + { + if (canEnter) + { + return "当前"; + } + + switch (status) + { + case RunNodeStatus.Locked: + return "未解锁"; + case RunNodeStatus.Available: + return "可进入"; + case RunNodeStatus.Completed: + return "已完成"; + case RunNodeStatus.Failed: + return "失败"; + case RunNodeStatus.Skipped: + return "跳过"; + default: + return string.Empty; + } + } + } +} diff --git a/Assets/GameMain/Scripts/UI/Game/UseCase/NodeMapFormUseCase.cs.meta b/Assets/GameMain/Scripts/UI/Game/UseCase/NodeMapFormUseCase.cs.meta new file mode 100644 index 0000000..8d07ff1 --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Game/UseCase/NodeMapFormUseCase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e35c4c20ae9d48a4c8e9878e79b7d346 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/UI/Game/View/NodeItem.cs b/Assets/GameMain/Scripts/UI/Game/View/NodeItem.cs new file mode 100644 index 0000000..bc8a3b9 --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Game/View/NodeItem.cs @@ -0,0 +1,121 @@ +using UnityEngine; +using UnityEngine.UI; +using GeometryTD.CustomEvent; +using GeometryTD.Procedure; + +namespace GeometryTD.UI +{ + public class NodeItem : MonoBehaviour + { + private const string CombatIconAssetName = "Combat"; + private const string EventIconAssetName = "Event"; + private const string ShopIconAssetName = "Shop"; + private const string BossIconAssetName = "BossCombat"; + + [SerializeField] private Image _icon; + [SerializeField] private Image _bg; + [SerializeField] private CommonButton _button; + + [SerializeField] private Color _lockedColor = Color.gray; + [SerializeField] private Color _activeColor = Color.cyan; + [SerializeField] private Color _passedColor = Color.green; + [SerializeField] private Color _failedColor = Color.red; + [SerializeField] private Color _defaultIconColor = Color.white; + [SerializeField] private Color _lockedIconColor = Color.gray; + + private NodeItemContext _context; + private string _requestedIconAssetName; + + public void RefreshUI(NodeItemContext context) + { + _context = context; + + if (_button != null) + { + _button.Interactive = context != null && context.CanClick; + } + + Color targetColor = _lockedColor; + if (context == null) + { + targetColor = _lockedColor; + } + else if (context.IsCompleted) + { + targetColor = _passedColor; + } + else if (context.IsFailed) + { + targetColor = _failedColor; + } + else if (context.IsCurrent) + { + targetColor = _activeColor; + } + + if (_bg != null) + { + _bg.color = targetColor; + } + + if (_icon != null) + { + RefreshIcon(context != null ? context.NodeType : RunNodeType.None); + _icon.color = context != null && !context.IsLocked ? _defaultIconColor : _lockedIconColor; + } + } + + public void OnClick() + { + if (_context == null || !_context.CanClick) + { + return; + } + + GameEntry.Event.Fire(this, NodeMapNodeClickEventArgs.Create(_context.SequenceIndex)); + } + + private void RefreshIcon(RunNodeType nodeType) + { + if (_icon == null) + { + return; + } + + string assetName = ResolveIconAssetName(nodeType); + _requestedIconAssetName = assetName; + if (string.IsNullOrWhiteSpace(assetName) || GameEntry.SpriteCache == null) + { + _icon.sprite = null; + return; + } + + GameEntry.SpriteCache.GetSprite(assetName, sprite => + { + if (_icon == null || _requestedIconAssetName != assetName) + { + return; + } + + _icon.sprite = sprite; + }); + } + + private static string ResolveIconAssetName(RunNodeType nodeType) + { + switch (nodeType) + { + case RunNodeType.Combat: + return CombatIconAssetName; + case RunNodeType.Event: + return EventIconAssetName; + case RunNodeType.Shop: + return ShopIconAssetName; + case RunNodeType.BossCombat: + return BossIconAssetName; + default: + return null; + } + } + } +} diff --git a/Assets/GameMain/Scripts/UI/Game/View/NodeItem.cs.meta b/Assets/GameMain/Scripts/UI/Game/View/NodeItem.cs.meta new file mode 100644 index 0000000..b52920e --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Game/View/NodeItem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d370c24f0bca1cd49b1163c3765e0f4c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/UI/Game/View/NodeMapForm.cs b/Assets/GameMain/Scripts/UI/Game/View/NodeMapForm.cs new file mode 100644 index 0000000..0d08bad --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Game/View/NodeMapForm.cs @@ -0,0 +1,89 @@ +using TMPro; +using UnityEngine; +using UnityGameFramework.Runtime; + +namespace GeometryTD.UI +{ + public class NodeMapForm : UGuiForm + { + [SerializeField] private TMP_Text _titleText; + [SerializeField] private TMP_Text _progressText; + [SerializeField] private TMP_Text _currentNodeText; + [SerializeField] private NodeItem[] _nodeItems; + + private NodeMapFormContext _context; + + public void RefreshUI(NodeMapFormContext context) + { + _context = context; + if (_titleText != null) + { + _titleText.text = context?.Title ?? string.Empty; + } + + if (_progressText != null) + { + _progressText.text = context?.ProgressText ?? string.Empty; + } + + if (_currentNodeText != null) + { + _currentNodeText.text = context?.CurrentNodeText ?? string.Empty; + } + + if (_nodeItems == null) + { + return; + } + + for (int i = 0; i < _nodeItems.Length; i++) + { + NodeItemContext itemContext = + context?.NodeItems != null && i < context.NodeItems.Length ? context.NodeItems[i] : null; + _nodeItems[i]?.RefreshUI(itemContext); + } + } + + protected override void OnOpen(object userData) + { + base.OnOpen(userData); + + if (userData is NodeMapFormContext context) + { + RefreshUI(context); + return; + } + + Log.Warning("NodeMapForm requires NodeMapFormContext as userData."); + } + + protected override void OnClose(bool isShutdown, object userData) + { + _context = null; + if (_titleText != null) + { + _titleText.text = string.Empty; + } + + if (_progressText != null) + { + _progressText.text = string.Empty; + } + + if (_currentNodeText != null) + { + _currentNodeText.text = string.Empty; + } + + if (_nodeItems != null) + { + for (int i = 0; i < _nodeItems.Length; i++) + { + _nodeItems[i]?.RefreshUI(null); + } + } + + base.OnClose(isShutdown, userData); + } + } +} diff --git a/Assets/GameMain/Scripts/UI/Game/View/NodeMapForm.cs.meta b/Assets/GameMain/Scripts/UI/Game/View/NodeMapForm.cs.meta new file mode 100644 index 0000000..7b86d3f --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Game/View/NodeMapForm.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 16f09225744e9ed45ba3ed24c27f9602 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/UI/Menu/Context/MenuFormContext.cs b/Assets/GameMain/Scripts/UI/Menu/Context/MenuFormContext.cs new file mode 100644 index 0000000..8ce0643 --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Menu/Context/MenuFormContext.cs @@ -0,0 +1,13 @@ +namespace GeometryTD.UI +{ + public class MenuFormContext : UIContext + { + public string TitleText { get; set; } + + public string StartButtonText { get; set; } + + public string SettingsButtonText { get; set; } + + public string ExitButtonText { get; set; } + } +} diff --git a/Assets/GameMain/Scripts/UI/Menu/Context/MenuFormContext.cs.meta b/Assets/GameMain/Scripts/UI/Menu/Context/MenuFormContext.cs.meta new file mode 100644 index 0000000..9efbddc --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Menu/Context/MenuFormContext.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8b608c268739c144990195981f1c4465 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/UI/Menu/Context/TestMenuFormContext.cs b/Assets/GameMain/Scripts/UI/Menu/Context/TestMenuFormContext.cs index 05f50b6..4dc8ae6 100644 --- a/Assets/GameMain/Scripts/UI/Menu/Context/TestMenuFormContext.cs +++ b/Assets/GameMain/Scripts/UI/Menu/Context/TestMenuFormContext.cs @@ -1,6 +1,9 @@ +using GeometryTD.Procedure; + namespace GeometryTD.UI { public class TestMenuFormContext : UIContext { + public RunNodeType CurrentNodeType { get; set; } } } diff --git a/Assets/GameMain/Scripts/UI/Menu/Controller/MenuFormController.cs b/Assets/GameMain/Scripts/UI/Menu/Controller/MenuFormController.cs new file mode 100644 index 0000000..5cdb8a5 --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Menu/Controller/MenuFormController.cs @@ -0,0 +1,129 @@ +using GeometryTD.CustomEvent; +using GeometryTD.Definition; +using GeometryTD.Procedure; +using GameFramework.Event; +using UnityGameFramework.Runtime; + +namespace GeometryTD.UI +{ + public class MenuFormController : UIFormControllerCommonBase + { + private MenuFormUseCase _useCase; + + protected override UIFormType UIFormTypeId => UIFormType.MenuForm; + + protected override void RefreshUI(MenuForm form, MenuFormContext context) + { + form.RefreshUI(context); + } + + protected override void SubscribeCustomEvents() + { + GameEntry.Event.Subscribe(MenuStartRequestedEventArgs.EventId, OnStartRequested); + GameEntry.Event.Subscribe(MenuSettingsRequestedEventArgs.EventId, OnSettingsRequested); + GameEntry.Event.Subscribe(MenuExitRequestedEventArgs.EventId, OnExitRequested); + } + + protected override void UnsubscribeCustomEvents() + { + GameEntry.Event.Unsubscribe(MenuStartRequestedEventArgs.EventId, OnStartRequested); + GameEntry.Event.Unsubscribe(MenuSettingsRequestedEventArgs.EventId, OnSettingsRequested); + GameEntry.Event.Unsubscribe(MenuExitRequestedEventArgs.EventId, OnExitRequested); + } + + public override int? OpenUI(object userData = null) + { + if (userData is MenuFormContext context) + { + return OpenUIInternal(context); + } + + if (userData is MenuFormRawData rawDataFromUserData) + { + return OpenUI(rawDataFromUserData); + } + + if (userData != null) + { + Log.Warning("MenuFormController.OpenUI() userData type is invalid."); + return null; + } + + if (_useCase == null) + { + Log.Error("MenuFormController.OpenUI() useCase is null."); + return null; + } + + return OpenUI(_useCase.CreateInitialModel()); + } + + public int? OpenUI(MenuFormRawData rawData) + { + return OpenUIInternal(BuildContext(rawData)); + } + + public override void BindUseCase(IUIUseCase useCase) + { + if (!(useCase is MenuFormUseCase menuFormUseCase)) + { + Log.Error("MenuFormController.BindUseCase() useCase is invalid."); + return; + } + + _useCase = menuFormUseCase; + } + + private void OnStartRequested(object sender, GameEventArgs e) + { + if (!IsCurrentFormEvent(sender) || !(e is MenuStartRequestedEventArgs)) + { + return; + } + + if (GameEntry.Procedure.CurrentProcedure is ProcedureMenu procedureMenu) + { + procedureMenu.GameStart = true; + return; + } + + Log.Warning("MenuFormController received start request outside ProcedureMenu."); + } + + private void OnSettingsRequested(object sender, GameEventArgs e) + { + if (!IsCurrentFormEvent(sender) || !(e is MenuSettingsRequestedEventArgs)) + { + return; + } + + Log.Warning("Menu settings button click is TODO."); + } + + private void OnExitRequested(object sender, GameEventArgs e) + { + if (!IsCurrentFormEvent(sender) || !(e is MenuExitRequestedEventArgs)) + { + return; + } + + UnityGameFramework.Runtime.GameEntry.Shutdown(ShutdownType.Quit); + } + + private bool IsCurrentFormEvent(object sender) + { + return Form != null && ReferenceEquals(sender, Form); + } + + private static MenuFormContext BuildContext(MenuFormRawData rawData) + { + return new MenuFormContext + { + TitleText = rawData?.TitleText ?? string.Empty, + StartButtonText = rawData?.StartButtonText ?? string.Empty, + SettingsButtonText = rawData?.SettingsButtonText ?? string.Empty, + ExitButtonText = rawData?.ExitButtonText ?? string.Empty + }; + } + } +} diff --git a/Assets/GameMain/Scripts/UI/Menu/Controller/MenuFormController.cs.meta b/Assets/GameMain/Scripts/UI/Menu/Controller/MenuFormController.cs.meta new file mode 100644 index 0000000..0cc306e --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Menu/Controller/MenuFormController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3ec06b97e6bc9d743a6340377ab7cd8b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/UI/Menu/Controller/TestMenuFormController.cs b/Assets/GameMain/Scripts/UI/Menu/Controller/TestMenuFormController.cs index 9f4f093..eea3db3 100644 --- a/Assets/GameMain/Scripts/UI/Menu/Controller/TestMenuFormController.cs +++ b/Assets/GameMain/Scripts/UI/Menu/Controller/TestMenuFormController.cs @@ -1,6 +1,6 @@ using GeometryTD.CustomEvent; using GeometryTD.Definition; -using GameFramework.Event; +using GeometryTD.Procedure; using UnityGameFramework.Runtime; namespace GeometryTD.UI @@ -16,12 +16,10 @@ namespace GeometryTD.UI protected override void SubscribeCustomEvents() { - GameEntry.Event.Subscribe(TestMenuNodeClickEventArgs.EventId, OnNodeClick); } protected override void UnsubscribeCustomEvents() { - GameEntry.Event.Unsubscribe(TestMenuNodeClickEventArgs.EventId, OnNodeClick); } public override int? OpenUI(object userData = null) @@ -50,36 +48,10 @@ namespace GeometryTD.UI private static TestMenuFormContext BuildDefaultContext() { - return new TestMenuFormContext(); + return new TestMenuFormContext + { + CurrentNodeType = RunNodeType.None + }; } - - private void OnNodeClick(object sender, GameEventArgs e) - { - if (!(sender is TestMenuForm form)) - { - return; - } - - if (!(e is TestMenuNodeClickEventArgs args)) - { - return; - } - - switch (args.NodeType) - { - case TestMenuNodeType.Combat: - GameEntry.CombatNode.StartCombat(); - return; - case TestMenuNodeType.Event: - GameEntry.EventNode.StartEvent(); - return; - case TestMenuNodeType.Shop: - GameEntry.ShopNode.StartShop(); - return; - default: - return; - } - } - } -} \ No newline at end of file +} diff --git a/Assets/GameMain/Scripts/UI/Menu/RawData/MenuFormRawData.cs b/Assets/GameMain/Scripts/UI/Menu/RawData/MenuFormRawData.cs new file mode 100644 index 0000000..4e865ab --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Menu/RawData/MenuFormRawData.cs @@ -0,0 +1,13 @@ +namespace GeometryTD.UI +{ + public class MenuFormRawData + { + public string TitleText { get; set; } + + public string StartButtonText { get; set; } + + public string SettingsButtonText { get; set; } + + public string ExitButtonText { get; set; } + } +} diff --git a/Assets/GameMain/Scripts/UI/Menu/RawData/MenuFormRawData.cs.meta b/Assets/GameMain/Scripts/UI/Menu/RawData/MenuFormRawData.cs.meta new file mode 100644 index 0000000..238b4b9 --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Menu/RawData/MenuFormRawData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5dc8f63e892ff6745aed855ae42cfd88 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/UI/Menu/UseCase/MenuFormUseCase.cs b/Assets/GameMain/Scripts/UI/Menu/UseCase/MenuFormUseCase.cs new file mode 100644 index 0000000..f3cdaae --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Menu/UseCase/MenuFormUseCase.cs @@ -0,0 +1,16 @@ +namespace GeometryTD.UI +{ + public class MenuFormUseCase : IUIUseCase + { + public MenuFormRawData CreateInitialModel() + { + return new MenuFormRawData + { + TitleText = "GeometryTD", + StartButtonText = "Start", + SettingsButtonText = "Settings", + ExitButtonText = "Exit" + }; + } + } +} diff --git a/Assets/GameMain/Scripts/UI/Menu/UseCase/MenuFormUseCase.cs.meta b/Assets/GameMain/Scripts/UI/Menu/UseCase/MenuFormUseCase.cs.meta new file mode 100644 index 0000000..4fff258 --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Menu/UseCase/MenuFormUseCase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1fc5bfbd1fcf533448f2669b0eda64bf +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/UI/Menu/View/MenuForm.cs b/Assets/GameMain/Scripts/UI/Menu/View/MenuForm.cs new file mode 100644 index 0000000..5f1c55e --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Menu/View/MenuForm.cs @@ -0,0 +1,76 @@ +using GeometryTD.CustomEvent; +using TMPro; +using UnityEngine; +using UnityGameFramework.Runtime; + +namespace GeometryTD.UI +{ + public class MenuForm : UGuiForm + { + [SerializeField] private TMP_Text _titleText; + [SerializeField] private TMP_Text _startButtonText; + [SerializeField] private TMP_Text _settingsButtonText; + [SerializeField] private TMP_Text _exitButtonText; + + private MenuFormContext _context; + + public void RefreshUI(MenuFormContext context) + { + _context = context; + if (_context == null) + { + return; + } + + SetText(_titleText, _context.TitleText); + SetText(_startButtonText, _context.StartButtonText); + SetText(_settingsButtonText, _context.SettingsButtonText); + SetText(_exitButtonText, _context.ExitButtonText); + } + + public void OnStartButtonClick() + { + GameEntry.Event.Fire(this, MenuStartRequestedEventArgs.Create()); + } + + public void OnSettingsButtonClick() + { + GameEntry.Event.Fire(this, MenuSettingsRequestedEventArgs.Create()); + } + + public void OnExitButtonClick() + { + GameEntry.Event.Fire(this, MenuExitRequestedEventArgs.Create()); + } + + protected override void OnOpen(object userData) + { + base.OnOpen(userData); + + if (userData is MenuFormContext context) + { + RefreshUI(context); + return; + } + + Log.Warning("MenuForm requires MenuFormContext as userData."); + } + + protected override void OnClose(bool isShutdown, object userData) + { + _context = null; + + base.OnClose(isShutdown, userData); + } + + private static void SetText(TMP_Text textComponent, string value) + { + if (textComponent == null) + { + return; + } + + textComponent.text = value ?? string.Empty; + } + } +} diff --git a/Assets/GameMain/Scripts/UI/Menu/View/MenuForm.cs.meta b/Assets/GameMain/Scripts/UI/Menu/View/MenuForm.cs.meta new file mode 100644 index 0000000..8d84250 --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Menu/View/MenuForm.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fdf317aa70fe94f44a332b6ee6ef5bbc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/UI/Menu/View/TestMenuForm.cs b/Assets/GameMain/Scripts/UI/Menu/View/TestMenuForm.cs index 2fd2ae9..2c60bc4 100644 --- a/Assets/GameMain/Scripts/UI/Menu/View/TestMenuForm.cs +++ b/Assets/GameMain/Scripts/UI/Menu/View/TestMenuForm.cs @@ -1,10 +1,16 @@ using GeometryTD.CustomEvent; +using GeometryTD.Procedure; +using UnityEngine; using UnityGameFramework.Runtime; namespace GeometryTD.UI { public class TestMenuForm : UGuiForm { + [SerializeField] private GameObject combatButtonObject; + [SerializeField] private GameObject eventButtonObject; + [SerializeField] private GameObject shopButtonObject; + private TestMenuFormContext _context; public void RefreshUI(TestMenuFormContext context) @@ -12,8 +18,17 @@ namespace GeometryTD.UI _context = context; if (_context == null) { + SetButtonVisible(combatButtonObject, false); + SetButtonVisible(eventButtonObject, false); + SetButtonVisible(shopButtonObject, false); return; } + + SetButtonVisible( + combatButtonObject, + _context.CurrentNodeType == RunNodeType.Combat || _context.CurrentNodeType == RunNodeType.BossCombat); + SetButtonVisible(eventButtonObject, _context.CurrentNodeType == RunNodeType.Event); + SetButtonVisible(shopButtonObject, _context.CurrentNodeType == RunNodeType.Shop); } public void OnCombatButtonClick() @@ -47,8 +62,19 @@ namespace GeometryTD.UI protected override void OnClose(bool isShutdown, object userData) { _context = null; + SetButtonVisible(combatButtonObject, false); + SetButtonVisible(eventButtonObject, false); + SetButtonVisible(shopButtonObject, false); base.OnClose(isShutdown, userData); } + + private static void SetButtonVisible(GameObject buttonObject, bool visible) + { + if (buttonObject != null) + { + buttonObject.SetActive(visible); + } + } } -} \ No newline at end of file +} diff --git a/Assets/GameMain/Textures/BossCombat.png b/Assets/GameMain/Textures/BossCombat.png new file mode 100644 index 0000000..3c02ecb Binary files /dev/null and b/Assets/GameMain/Textures/BossCombat.png differ diff --git a/Assets/GameMain/Textures/BossCombat.png.meta b/Assets/GameMain/Textures/BossCombat.png.meta new file mode 100644 index 0000000..e0e9fc6 --- /dev/null +++ b/Assets/GameMain/Textures/BossCombat.png.meta @@ -0,0 +1,127 @@ +fileFormatVersion: 2 +guid: c40f3ef20f4b7934aad143765274d7bb +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Textures/Combat.png b/Assets/GameMain/Textures/Combat.png new file mode 100644 index 0000000..3d8da34 Binary files /dev/null and b/Assets/GameMain/Textures/Combat.png differ diff --git a/Assets/GameMain/Textures/Combat.png.meta b/Assets/GameMain/Textures/Combat.png.meta new file mode 100644 index 0000000..80950fd --- /dev/null +++ b/Assets/GameMain/Textures/Combat.png.meta @@ -0,0 +1,127 @@ +fileFormatVersion: 2 +guid: 34b43696f3cbf38409bb2d040e96ee86 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Textures/Event.png b/Assets/GameMain/Textures/Event.png new file mode 100644 index 0000000..a2aa129 Binary files /dev/null and b/Assets/GameMain/Textures/Event.png differ diff --git a/Assets/GameMain/Textures/Event.png.meta b/Assets/GameMain/Textures/Event.png.meta new file mode 100644 index 0000000..e0f0305 --- /dev/null +++ b/Assets/GameMain/Textures/Event.png.meta @@ -0,0 +1,127 @@ +fileFormatVersion: 2 +guid: 048acf1176eaa5f48a12485e8991aa96 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Textures/Shop.png b/Assets/GameMain/Textures/Shop.png new file mode 100644 index 0000000..24b1bf3 Binary files /dev/null and b/Assets/GameMain/Textures/Shop.png differ diff --git a/Assets/GameMain/Textures/Shop.png.meta b/Assets/GameMain/Textures/Shop.png.meta new file mode 100644 index 0000000..835d056 --- /dev/null +++ b/Assets/GameMain/Textures/Shop.png.meta @@ -0,0 +1,127 @@ +fileFormatVersion: 2 +guid: cdef6ec8b51831a4abf9688dde8e2281 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/UI/UIForms/MenuForm.prefab b/Assets/GameMain/UI/UIForms/MenuForm.prefab new file mode 100644 index 0000000..7e9a8c7 --- /dev/null +++ b/Assets/GameMain/UI/UIForms/MenuForm.prefab @@ -0,0 +1,720 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1485660147845521821 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3442204668286505931} + - component: {fileID: 7247274277813398792} + - component: {fileID: 5832248750743189576} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3442204668286505931 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1485660147845521821} + 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: 3471644370828071279} + 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: 450} + m_SizeDelta: {x: 1000, y: 200} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7247274277813398792 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1485660147845521821} + m_CullTransparentMesh: 1 +--- !u!114 &5832248750743189576 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1485660147845521821} + 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: Geometry + 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: 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: 100 + m_fontSizeBase: 100 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 1 + 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_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 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 &6351599272186829672 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3471644370828071279} + - component: {fileID: 1596541747939020788} + m_Layer: 5 + m_Name: MenuForm + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3471644370828071279 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6351599272186829672} + 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: 3442204668286505931} + - {fileID: 2124736747478720832} + - {fileID: 8167974608901112604} + - {fileID: 7693594745400141304} + 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 &1596541747939020788 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6351599272186829672} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fdf317aa70fe94f44a332b6ee6ef5bbc, type: 3} + m_Name: + m_EditorClassIdentifier: + _titleText: {fileID: 5832248750743189576} + _startButtonText: {fileID: 4147629153443456746} + _settingsButtonText: {fileID: 6172671250818335926} + _exitButtonText: {fileID: 5635940221953385042} +--- !u!1001 &2533297389376661431 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 3471644370828071279} + m_Modifications: + - target: {fileID: 770565994539545022, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_Name + value: StartButton + objectReference: {fileID: 0} + - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_text + value: "\u5F00\u59CB\u6E38\u620F" + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 1596541747939020788} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 1596541747939020788} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 1596541747939020788} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName + value: OnStartButtonClick + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_TargetAssemblyTypeName + value: GeometryTD.UI.MenuForm, Assembly-CSharp + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_SizeDelta.x + value: 400 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_SizeDelta.y + value: 80 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 150 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 2307f223279813546a43b221ddd496cc, type: 3} +--- !u!224 &2124736747478720832 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + m_PrefabInstance: {fileID: 2533297389376661431} + m_PrefabAsset: {fileID: 0} +--- !u!114 &4147629153443456746 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + m_PrefabInstance: {fileID: 2533297389376661431} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &5696765442475836907 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 3471644370828071279} + m_Modifications: + - target: {fileID: 770565994539545022, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_Name + value: SettingsButton + objectReference: {fileID: 0} + - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_text + value: "\u6E38\u620F\u8BBE\u7F6E" + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 1596541747939020788} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 1596541747939020788} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 1596541747939020788} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName + value: OnSettingsButtonClick + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_TargetAssemblyTypeName + value: GeometryTD.UI.MenuForm, Assembly-CSharp + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_SizeDelta.x + value: 400 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_SizeDelta.y + value: 80 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 2307f223279813546a43b221ddd496cc, type: 3} +--- !u!114 &6172671250818335926 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + m_PrefabInstance: {fileID: 5696765442475836907} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &8167974608901112604 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + m_PrefabInstance: {fileID: 5696765442475836907} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &6093832046355637007 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 3471644370828071279} + m_Modifications: + - target: {fileID: 770565994539545022, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_Name + value: ExitButton + objectReference: {fileID: 0} + - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_text + value: "\u9000\u51FA\u6E38\u620F" + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 1596541747939020788} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 1596541747939020788} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 1596541747939020788} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName + value: OnExitButtonClick + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_TargetAssemblyTypeName + value: GeometryTD.UI.MenuForm, Assembly-CSharp + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_SizeDelta.x + value: 400 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_SizeDelta.y + value: 80 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -150 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 2307f223279813546a43b221ddd496cc, type: 3} +--- !u!114 &5635940221953385042 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + m_PrefabInstance: {fileID: 6093832046355637007} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &7693594745400141304 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + m_PrefabInstance: {fileID: 6093832046355637007} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/GameMain/UI/UIForms/MenuForm.prefab.meta b/Assets/GameMain/UI/UIForms/MenuForm.prefab.meta new file mode 100644 index 0000000..b3f82c0 --- /dev/null +++ b/Assets/GameMain/UI/UIForms/MenuForm.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9307a2d7191791348b6eaef1fbebf4cf +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/UI/UIForms/NodeMapForm.prefab b/Assets/GameMain/UI/UIForms/NodeMapForm.prefab new file mode 100644 index 0000000..15adfd6 --- /dev/null +++ b/Assets/GameMain/UI/UIForms/NodeMapForm.prefab @@ -0,0 +1,2051 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2236041345382337146 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 922934795576347983} + - component: {fileID: 6837590822495378204} + - component: {fileID: 4979270378593961630} + m_Layer: 5 + m_Name: CurrentNodeText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &922934795576347983 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2236041345382337146} + 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: 8242293742256433523} + 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: 400, y: -275} + m_SizeDelta: {x: 800, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6837590822495378204 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2236041345382337146} + m_CullTransparentMesh: 1 +--- !u!114 &4979270378593961630 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2236041345382337146} + 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: 'CurrentNode:' + 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: 4278519045 + m_fontColor: {r: 0.019607844, g: 0.019607844, b: 0.019607844, 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: 50 + m_fontSizeBase: 50 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 1 + m_HorizontalAlignment: 1 + 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_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 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 &2535225513627916256 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8242293742256433523} + - component: {fileID: 7283867484231763511} + - component: {fileID: 4805351471214359968} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8242293742256433523 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2535225513627916256} + 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: 1637083674392264047} + - {fileID: 2132470739264901798} + - {fileID: 922934795576347983} + - {fileID: 3583070692309943494} + m_Father: {fileID: 6947172419113945376} + 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 &7283867484231763511 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2535225513627916256} + m_CullTransparentMesh: 1 +--- !u!114 &4805351471214359968 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2535225513627916256} + 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.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &2787322074212207936 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2132470739264901798} + - component: {fileID: 1857064941803404492} + - component: {fileID: 7509393958380784646} + m_Layer: 5 + m_Name: ProgressText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2132470739264901798 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2787322074212207936} + 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: 8242293742256433523} + 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: -275} + m_SizeDelta: {x: 800, y: 100} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &1857064941803404492 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2787322074212207936} + m_CullTransparentMesh: 1 +--- !u!114 &7509393958380784646 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2787322074212207936} + 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: 'Progress: ' + 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: 4278519045 + m_fontColor: {r: 0.019607844, g: 0.019607844, b: 0.019607844, 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: 50 + m_fontSizeBase: 50 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 1 + m_HorizontalAlignment: 1 + 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_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 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 &3216580919242808685 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3583070692309943494} + m_Layer: 5 + m_Name: Nodes + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3583070692309943494 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3216580919242808685} + 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: 5505438436700190872} + - {fileID: 6771197692057054118} + - {fileID: 704942745518313653} + - {fileID: 4506426388347863678} + - {fileID: 6247174972852701292} + - {fileID: 1431306299780175350} + - {fileID: 4740252980947722747} + - {fileID: 6240611274682527709} + - {fileID: 7498786908887636296} + - {fileID: 2246347047042530621} + m_Father: {fileID: 8242293742256433523} + 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: -125} + m_SizeDelta: {x: -400, y: -450} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &3326466614698677232 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6947172419113945376} + - component: {fileID: 809390486919404248} + m_Layer: 5 + m_Name: NodeMapForm + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6947172419113945376 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3326466614698677232} + 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: 8242293742256433523} + 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 &809390486919404248 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3326466614698677232} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 16f09225744e9ed45ba3ed24c27f9602, type: 3} + m_Name: + m_EditorClassIdentifier: + _titleText: {fileID: 301711657670358600} + _progressText: {fileID: 7509393958380784646} + _currentNodeText: {fileID: 4979270378593961630} + _nodeItems: + - {fileID: 3184682408043299068} + - {fileID: 4444310373139600322} + - {fileID: 7610249257945868497} + - {fileID: 6836312762234927642} + - {fileID: 3956148775445606408} + - {fileID: 8325037704773217682} + - {fileID: 2422301256143903135} + - {fileID: 3949206296056518585} + - {fileID: 595730959170036012} + - {fileID: 9185615275182458201} +--- !u!1 &5191940055044151408 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1637083674392264047} + - component: {fileID: 4349516100757004026} + - component: {fileID: 301711657670358600} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1637083674392264047 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5191940055044151408} + 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: 8242293742256433523} + 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: -150} + m_SizeDelta: {x: 500, y: 150} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4349516100757004026 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5191940055044151408} + m_CullTransparentMesh: 1 +--- !u!114 &301711657670358600 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5191940055044151408} + 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: Map + 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: 4278519045 + m_fontColor: {r: 0.019607844, g: 0.019607844, b: 0.019607844, 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: 100 + m_fontSizeBase: 100 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 1 + 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_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 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!1001 &1271109512820773181 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 3583070692309943494} + m_Modifications: + - target: {fileID: 1139814490629641939, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Name + value: Node 1 (8) + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_SizeDelta.x + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 2097.8003 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -600 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8781361341733077650, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 809390486919404248} + - target: {fileID: 8781361341733077650, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 809390486919404248} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, type: 3} +--- !u!114 &595730959170036012 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1866624916103966737, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + m_PrefabInstance: {fileID: 1271109512820773181} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d370c24f0bca1cd49b1163c3765e0f4c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &7498786908887636296 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + m_PrefabInstance: {fileID: 1271109512820773181} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &2615124379101881299 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 3583070692309943494} + m_Modifications: + - target: {fileID: 1139814490629641939, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Name + value: Node 1 (1) + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_SizeDelta.x + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 370.2 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -600 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8781361341733077650, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 809390486919404248} + - target: {fileID: 8781361341733077650, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 809390486919404248} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, type: 3} +--- !u!114 &4444310373139600322 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1866624916103966737, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + m_PrefabInstance: {fileID: 2615124379101881299} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d370c24f0bca1cd49b1163c3765e0f4c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &6771197692057054118 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + m_PrefabInstance: {fileID: 2615124379101881299} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3386853298346459161 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 3583070692309943494} + m_Modifications: + - target: {fileID: 1139814490629641939, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Name + value: Node 1 (4) + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_SizeDelta.x + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 1050 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -120 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8781361341733077650, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 809390486919404248} + - target: {fileID: 8781361341733077650, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 809390486919404248} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, type: 3} +--- !u!114 &3956148775445606408 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1866624916103966737, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + m_PrefabInstance: {fileID: 3386853298346459161} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d370c24f0bca1cd49b1163c3765e0f4c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &6247174972852701292 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + m_PrefabInstance: {fileID: 3386853298346459161} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3398514899296085928 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 3583070692309943494} + m_Modifications: + - target: {fileID: 1139814490629641939, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Name + value: Node 1 (7) + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_SizeDelta.x + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 1851.0001 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -120 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8781361341733077650, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 809390486919404248} + - target: {fileID: 8781361341733077650, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 809390486919404248} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, type: 3} +--- !u!114 &3949206296056518585 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1866624916103966737, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + m_PrefabInstance: {fileID: 3398514899296085928} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d370c24f0bca1cd49b1163c3765e0f4c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &6240611274682527709 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + m_PrefabInstance: {fileID: 3398514899296085928} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3879242766800023789 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 3583070692309943494} + m_Modifications: + - target: {fileID: 1139814490629641939, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Name + value: Node 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_SizeDelta.x + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 123.4 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -120 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8781361341733077650, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 809390486919404248} + - target: {fileID: 8781361341733077650, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 809390486919404248} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, type: 3} +--- !u!114 &3184682408043299068 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1866624916103966737, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + m_PrefabInstance: {fileID: 3879242766800023789} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d370c24f0bca1cd49b1163c3765e0f4c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &5505438436700190872 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + m_PrefabInstance: {fileID: 3879242766800023789} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &4069612836856637838 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 3583070692309943494} + m_Modifications: + - target: {fileID: 1139814490629641939, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Name + value: Node 1 (6) + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_SizeDelta.x + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 1604.2001 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -600 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8781361341733077650, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 809390486919404248} + - target: {fileID: 8781361341733077650, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 809390486919404248} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, type: 3} +--- !u!114 &2422301256143903135 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1866624916103966737, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + m_PrefabInstance: {fileID: 4069612836856637838} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d370c24f0bca1cd49b1163c3765e0f4c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &4740252980947722747 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + m_PrefabInstance: {fileID: 4069612836856637838} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &5132101656774593035 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 3583070692309943494} + m_Modifications: + - target: {fileID: 1139814490629641939, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Name + value: Node 1 (3) + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_SizeDelta.x + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 863.80005 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -600 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8781361341733077650, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 809390486919404248} + - target: {fileID: 8781361341733077650, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 809390486919404248} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, type: 3} +--- !u!224 &4506426388347863678 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + m_PrefabInstance: {fileID: 5132101656774593035} + m_PrefabAsset: {fileID: 0} +--- !u!114 &6836312762234927642 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1866624916103966737, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + m_PrefabInstance: {fileID: 5132101656774593035} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d370c24f0bca1cd49b1163c3765e0f4c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &7394427989743777096 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 3583070692309943494} + m_Modifications: + - target: {fileID: 1139814490629641939, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Name + value: Node 1 (9) + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_SizeDelta.x + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 2344.6 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -120 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8781361341733077650, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 809390486919404248} + - target: {fileID: 8781361341733077650, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 809390486919404248} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, type: 3} +--- !u!224 &2246347047042530621 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + m_PrefabInstance: {fileID: 7394427989743777096} + m_PrefabAsset: {fileID: 0} +--- !u!114 &9185615275182458201 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1866624916103966737, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + m_PrefabInstance: {fileID: 7394427989743777096} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d370c24f0bca1cd49b1163c3765e0f4c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &7669609101079911811 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 3583070692309943494} + m_Modifications: + - target: {fileID: 1139814490629641939, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Name + value: Node 1 (5) + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_SizeDelta.x + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 1400 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -120 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8781361341733077650, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 809390486919404248} + - target: {fileID: 8781361341733077650, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 809390486919404248} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, type: 3} +--- !u!224 &1431306299780175350 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + m_PrefabInstance: {fileID: 7669609101079911811} + m_PrefabAsset: {fileID: 0} +--- !u!114 &8325037704773217682 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1866624916103966737, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + m_PrefabInstance: {fileID: 7669609101079911811} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d370c24f0bca1cd49b1163c3765e0f4c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &8104962113636538560 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 3583070692309943494} + m_Modifications: + - target: {fileID: 1139814490629641939, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Name + value: Node 1 (2) + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_SizeDelta.x + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 617 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -120 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8781361341733077650, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 809390486919404248} + - target: {fileID: 8781361341733077650, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 809390486919404248} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, type: 3} +--- !u!224 &704942745518313653 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + m_PrefabInstance: {fileID: 8104962113636538560} + m_PrefabAsset: {fileID: 0} +--- !u!114 &7610249257945868497 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1866624916103966737, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + m_PrefabInstance: {fileID: 8104962113636538560} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d370c24f0bca1cd49b1163c3765e0f4c, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/GameMain/UI/UIForms/NodeMapForm.prefab.meta b/Assets/GameMain/UI/UIForms/NodeMapForm.prefab.meta new file mode 100644 index 0000000..ab165cb --- /dev/null +++ b/Assets/GameMain/UI/UIForms/NodeMapForm.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c97f2161a8ca2064ca526daab5af3c12 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/UI/UIForms/ShopForm.prefab b/Assets/GameMain/UI/UIForms/ShopForm.prefab index 49c0366..d389407 100644 --- a/Assets/GameMain/UI/UIForms/ShopForm.prefab +++ b/Assets/GameMain/UI/UIForms/ShopForm.prefab @@ -9,6 +9,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 5415218784008833447} + - component: {fileID: 5196229321978622645} m_Layer: 5 m_Name: GoodsArea m_TagString: Untagged @@ -29,16 +30,42 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 8151958057702917095} - - {fileID: 7688139928625067640} - - {fileID: 5680695134824055502} - - {fileID: 7356148158948538594} + - {fileID: 3590466499647340283} + - {fileID: 1901628129711676341} + - {fileID: 7273079084572676742} m_Father: {fileID: 1205117627678350677} 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: -200, y: -600} + m_SizeDelta: {x: -200, y: -400} m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &5196229321978622645 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2241808423083193139} + 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: 3 + m_Spacing: 30 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 --- !u!1 &3049846567690401185 GameObject: m_ObjectHideFlags: 0 @@ -148,8 +175,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 100, y: -150} - m_SizeDelta: {x: 1200, y: 150} + m_AnchoredPosition: {x: 100, y: -100} + m_SizeDelta: {x: 1200, y: 100} m_Pivot: {x: 0, y: 0.5} --- !u!222 &8192625378894433324 CanvasRenderer: @@ -207,8 +234,8 @@ MonoBehaviour: m_faceColor: serializedVersion: 2 rgba: 4294967295 - m_fontSize: 80 - m_fontSizeBase: 80 + m_fontSize: 50 + m_fontSizeBase: 50 m_fontWeight: 400 m_enableAutoSizing: 0 m_fontSizeMin: 18 @@ -305,9 +332,270 @@ MonoBehaviour: _goldText: {fileID: 6733122308210092107} _goldItems: - {fileID: 4011540134222967855} - - {fileID: 3187293301768225200} - - {fileID: 603388849832031494} - - {fileID: 2349754275062894378} + - {fileID: 8600096917386053939} + - {fileID: 6695085058778983549} + - {fileID: 2478495138848318798} +--- !u!1001 &85294096454229121 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 5415218784008833447} + m_Modifications: + - target: {fileID: 245224001821693249, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_Name + value: GoodsItem 1 + objectReference: {fileID: 0} + - target: {fileID: 669693094614527628, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -0.00012207031 + objectReference: {fileID: 0} + - target: {fileID: 761798453953883578, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.x + value: 525 + objectReference: {fileID: 0} + - target: {fileID: 761798453953883578, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 761798453953883578, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -380 + objectReference: {fileID: 0} + - target: {fileID: 915593545797210867, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 4898781408420543685} + - target: {fileID: 915593545797210867, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 4898781408420543685} + - target: {fileID: 1859538258681759610, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_fontSize + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 1859538258681759610, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_fontSizeBase + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 2007177356427953005, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.y + value: 60 + objectReference: {fileID: 0} + - target: {fileID: 2007177356427953005, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 200 + objectReference: {fileID: 0} + - target: {fileID: 2007177356427953005, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -60 + objectReference: {fileID: 0} + - target: {fileID: 2732971145639930164, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.x + value: 120 + objectReference: {fileID: 0} + - target: {fileID: 2732971145639930164, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.y + value: 120 + objectReference: {fileID: 0} + - target: {fileID: 2824363281443248115, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.x + value: 525 + objectReference: {fileID: 0} + - target: {fileID: 2824363281443248115, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2824363281443248115, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 170 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.x + value: 645 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4208371627915977171, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.x + value: 525 + objectReference: {fileID: 0} + - target: {fileID: 4208371627915977171, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.y + value: 450 + objectReference: {fileID: 0} + - target: {fileID: 4208371627915977171, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6823666478257055882, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.y + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 6823666478257055882, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 200 + objectReference: {fileID: 0} + - target: {fileID: 6823666478257055882, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -130 + objectReference: {fileID: 0} + - target: {fileID: 8198028867451079023, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_fontSize + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 8198028867451079023, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_fontSizeBase + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 8536194946006111666, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: _index + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 27e7c069820f8034e958e539232ac639, type: 3} +--- !u!224 &3590466499647340283 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + m_PrefabInstance: {fileID: 85294096454229121} + m_PrefabAsset: {fileID: 0} +--- !u!114 &8600096917386053939 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8536194946006111666, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + m_PrefabInstance: {fileID: 85294096454229121} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f1bbd7ef0a6648a45b413b62d3fcea48, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1001 &955635360829419302 PrefabInstance: m_ObjectHideFlags: 0 @@ -335,7 +623,7 @@ PrefabInstance: - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, type: 3} propertyPath: m_fontSize - value: 80 + value: 50 objectReference: {fileID: 0} - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, type: 3} @@ -355,7 +643,7 @@ PrefabInstance: - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, type: 3} propertyPath: m_fontSizeBase - value: 80 + value: 50 objectReference: {fileID: 0} - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, type: 3} @@ -435,7 +723,7 @@ PrefabInstance: - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, type: 3} propertyPath: m_SizeDelta.y - value: 150 + value: 80 objectReference: {fileID: 0} - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, type: 3} @@ -475,12 +763,12 @@ PrefabInstance: - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, type: 3} propertyPath: m_AnchoredPosition.x - value: -380 + value: -400 objectReference: {fileID: 0} - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, type: 3} propertyPath: m_AnchoredPosition.y - value: -150 + value: -100 objectReference: {fileID: 0} - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, type: 3} @@ -508,7 +796,7 @@ RectTransform: type: 3} m_PrefabInstance: {fileID: 955635360829419302} m_PrefabAsset: {fileID: 0} ---- !u!1001 &4746075394203509149 +--- !u!1001 &3071191544911772111 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 @@ -519,7 +807,27 @@ PrefabInstance: - target: {fileID: 245224001821693249, guid: 27e7c069820f8034e958e539232ac639, type: 3} propertyPath: m_Name - value: GoodsItem 0 + value: GoodsItem 2 + objectReference: {fileID: 0} + - target: {fileID: 669693094614527628, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -0.00012207031 + objectReference: {fileID: 0} + - target: {fileID: 761798453953883578, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.x + value: 525 + objectReference: {fileID: 0} + - target: {fileID: 761798453953883578, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 761798453953883578, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -380 objectReference: {fileID: 0} - target: {fileID: 915593545797210867, guid: 27e7c069820f8034e958e539232ac639, type: 3} @@ -531,6 +839,56 @@ PrefabInstance: propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target value: objectReference: {fileID: 4898781408420543685} + - target: {fileID: 1859538258681759610, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_fontSize + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 1859538258681759610, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_fontSizeBase + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 2007177356427953005, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.y + value: 60 + objectReference: {fileID: 0} + - target: {fileID: 2007177356427953005, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 200 + objectReference: {fileID: 0} + - target: {fileID: 2007177356427953005, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -60 + objectReference: {fileID: 0} + - target: {fileID: 2732971145639930164, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.x + value: 120 + objectReference: {fileID: 0} + - target: {fileID: 2732971145639930164, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.y + value: 120 + objectReference: {fileID: 0} + - target: {fileID: 2824363281443248115, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.x + value: 525 + objectReference: {fileID: 0} + - target: {fileID: 2824363281443248115, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2824363281443248115, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 170 + objectReference: {fileID: 0} - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} propertyPath: m_Pivot.x @@ -549,7 +907,7 @@ PrefabInstance: - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} @@ -559,7 +917,7 @@ PrefabInstance: - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} @@ -569,7 +927,7 @@ PrefabInstance: - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} propertyPath: m_SizeDelta.y - value: 1013.25 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} @@ -609,12 +967,12 @@ PrefabInstance: - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} propertyPath: m_AnchoredPosition.x - value: 322.5 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} propertyPath: m_AnchoredPosition.y - value: -506.625 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} @@ -631,6 +989,307 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} + - target: {fileID: 4208371627915977171, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.x + value: 525 + objectReference: {fileID: 0} + - target: {fileID: 4208371627915977171, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.y + value: 450 + objectReference: {fileID: 0} + - target: {fileID: 4208371627915977171, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6823666478257055882, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.y + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 6823666478257055882, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 200 + objectReference: {fileID: 0} + - target: {fileID: 6823666478257055882, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -130 + objectReference: {fileID: 0} + - target: {fileID: 8198028867451079023, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_fontSize + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 8198028867451079023, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_fontSizeBase + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 8536194946006111666, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: _index + value: 2 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 27e7c069820f8034e958e539232ac639, type: 3} +--- !u!224 &1901628129711676341 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + m_PrefabInstance: {fileID: 3071191544911772111} + m_PrefabAsset: {fileID: 0} +--- !u!114 &6695085058778983549 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8536194946006111666, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + m_PrefabInstance: {fileID: 3071191544911772111} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f1bbd7ef0a6648a45b413b62d3fcea48, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &4746075394203509149 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 5415218784008833447} + m_Modifications: + - target: {fileID: 245224001821693249, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_Name + value: GoodsItem 0 + objectReference: {fileID: 0} + - target: {fileID: 669693094614527628, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -0.00012207031 + objectReference: {fileID: 0} + - target: {fileID: 761798453953883578, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.x + value: 525 + objectReference: {fileID: 0} + - target: {fileID: 761798453953883578, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 761798453953883578, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -380 + objectReference: {fileID: 0} + - target: {fileID: 915593545797210867, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 4898781408420543685} + - target: {fileID: 915593545797210867, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 4898781408420543685} + - target: {fileID: 1859538258681759610, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_fontSize + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 1859538258681759610, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_fontSizeBase + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 2007177356427953005, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.y + value: 60 + objectReference: {fileID: 0} + - target: {fileID: 2007177356427953005, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 200 + objectReference: {fileID: 0} + - target: {fileID: 2007177356427953005, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -60 + objectReference: {fileID: 0} + - target: {fileID: 2732971145639930164, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.x + value: 120 + objectReference: {fileID: 0} + - target: {fileID: 2732971145639930164, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.y + value: 120 + objectReference: {fileID: 0} + - target: {fileID: 2824363281443248115, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.x + value: 525 + objectReference: {fileID: 0} + - target: {fileID: 2824363281443248115, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2824363281443248115, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 170 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.x + value: 645 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4208371627915977171, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.x + value: 525 + objectReference: {fileID: 0} + - target: {fileID: 4208371627915977171, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.y + value: 450 + objectReference: {fileID: 0} + - target: {fileID: 4208371627915977171, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6823666478257055882, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.y + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 6823666478257055882, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 200 + objectReference: {fileID: 0} + - target: {fileID: 6823666478257055882, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -130 + objectReference: {fileID: 0} + - target: {fileID: 8198028867451079023, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_fontSize + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 8198028867451079023, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_fontSizeBase + value: 50 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -654,7 +1313,7 @@ RectTransform: type: 3} m_PrefabInstance: {fileID: 4746075394203509149} m_PrefabAsset: {fileID: 0} ---- !u!1001 &6263004066066569880 +--- !u!1001 &6058408170495930620 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 @@ -667,6 +1326,26 @@ PrefabInstance: propertyPath: m_Name value: GoodsItem 3 objectReference: {fileID: 0} + - target: {fileID: 669693094614527628, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -0.00012207031 + objectReference: {fileID: 0} + - target: {fileID: 761798453953883578, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.x + value: 525 + objectReference: {fileID: 0} + - target: {fileID: 761798453953883578, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 761798453953883578, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -380 + objectReference: {fileID: 0} - target: {fileID: 915593545797210867, guid: 27e7c069820f8034e958e539232ac639, type: 3} propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target @@ -677,6 +1356,56 @@ PrefabInstance: propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target value: objectReference: {fileID: 4898781408420543685} + - target: {fileID: 1859538258681759610, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_fontSize + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 1859538258681759610, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_fontSizeBase + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 2007177356427953005, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.y + value: 60 + objectReference: {fileID: 0} + - target: {fileID: 2007177356427953005, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 200 + objectReference: {fileID: 0} + - target: {fileID: 2007177356427953005, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -60 + objectReference: {fileID: 0} + - target: {fileID: 2732971145639930164, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.x + value: 120 + objectReference: {fileID: 0} + - target: {fileID: 2732971145639930164, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.y + value: 120 + objectReference: {fileID: 0} + - target: {fileID: 2824363281443248115, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.x + value: 525 + objectReference: {fileID: 0} + - target: {fileID: 2824363281443248115, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2824363281443248115, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 170 + objectReference: {fileID: 0} - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} propertyPath: m_Pivot.x @@ -695,7 +1424,7 @@ PrefabInstance: - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} @@ -705,7 +1434,7 @@ PrefabInstance: - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} @@ -715,7 +1444,7 @@ PrefabInstance: - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} propertyPath: m_SizeDelta.y - value: 1013.25 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} @@ -755,12 +1484,12 @@ PrefabInstance: - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} propertyPath: m_AnchoredPosition.x - value: 2347.5 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} propertyPath: m_AnchoredPosition.y - value: -506.625 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} @@ -777,6 +1506,46 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} + - target: {fileID: 4208371627915977171, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.x + value: 525 + objectReference: {fileID: 0} + - target: {fileID: 4208371627915977171, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.y + value: 450 + objectReference: {fileID: 0} + - target: {fileID: 4208371627915977171, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6823666478257055882, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.y + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 6823666478257055882, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 200 + objectReference: {fileID: 0} + - target: {fileID: 6823666478257055882, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -130 + objectReference: {fileID: 0} + - target: {fileID: 8198028867451079023, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_fontSize + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 8198028867451079023, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_fontSizeBase + value: 50 + objectReference: {fileID: 0} - target: {fileID: 8536194946006111666, guid: 27e7c069820f8034e958e539232ac639, type: 3} propertyPath: _index @@ -787,11 +1556,11 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 27e7c069820f8034e958e539232ac639, type: 3} ---- !u!114 &2349754275062894378 stripped +--- !u!114 &2478495138848318798 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 8536194946006111666, guid: 27e7c069820f8034e958e539232ac639, type: 3} - m_PrefabInstance: {fileID: 6263004066066569880} + m_PrefabInstance: {fileID: 6058408170495930620} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 0} m_Enabled: 1 @@ -799,162 +1568,11 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: f1bbd7ef0a6648a45b413b62d3fcea48, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!224 &7356148158948538594 stripped +--- !u!224 &7273079084572676742 stripped RectTransform: m_CorrespondingSourceObject: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} - m_PrefabInstance: {fileID: 6263004066066569880} - m_PrefabAsset: {fileID: 0} ---- !u!1001 &6506894752150803458 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 5415218784008833447} - m_Modifications: - - target: {fileID: 245224001821693249, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_Name - value: GoodsItem 1 - objectReference: {fileID: 0} - - target: {fileID: 915593545797210867, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target - value: - objectReference: {fileID: 4898781408420543685} - - target: {fileID: 915593545797210867, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target - value: - objectReference: {fileID: 4898781408420543685} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_AnchorMax.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_AnchorMax.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_AnchorMin.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_SizeDelta.x - value: 645 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_SizeDelta.y - value: 1013.25 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 997.5 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_AnchoredPosition.y - value: -506.625 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8536194946006111666, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: _index - value: 1 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 27e7c069820f8034e958e539232ac639, type: 3} ---- !u!114 &3187293301768225200 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 8536194946006111666, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - m_PrefabInstance: {fileID: 6506894752150803458} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f1bbd7ef0a6648a45b413b62d3fcea48, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!224 &7688139928625067640 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - m_PrefabInstance: {fileID: 6506894752150803458} + m_PrefabInstance: {fileID: 6058408170495930620} m_PrefabAsset: {fileID: 0} --- !u!1001 &6787368018900032306 PrefabInstance: @@ -983,7 +1601,7 @@ PrefabInstance: - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, type: 3} propertyPath: m_fontSize - value: 80 + value: 50 objectReference: {fileID: 0} - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, type: 3} @@ -1003,7 +1621,7 @@ PrefabInstance: - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, type: 3} propertyPath: m_fontSizeBase - value: 80 + value: 50 objectReference: {fileID: 0} - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, type: 3} @@ -1058,22 +1676,22 @@ PrefabInstance: - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, type: 3} propertyPath: m_AnchorMax.x - value: 0.5 + value: 1 objectReference: {fileID: 0} - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, type: 3} propertyPath: m_AnchorMax.y - value: 0.5 + value: 0 objectReference: {fileID: 0} - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, type: 3} propertyPath: m_AnchorMin.x - value: 0.5 + value: 1 objectReference: {fileID: 0} - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, type: 3} propertyPath: m_AnchorMin.y - value: 0.5 + value: 0 objectReference: {fileID: 0} - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, type: 3} @@ -1083,7 +1701,7 @@ PrefabInstance: - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, type: 3} propertyPath: m_SizeDelta.y - value: 100 + value: 80 objectReference: {fileID: 0} - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, type: 3} @@ -1123,12 +1741,12 @@ PrefabInstance: - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, type: 3} propertyPath: m_AnchoredPosition.x - value: 1020 + value: -400 objectReference: {fileID: 0} - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, type: 3} propertyPath: m_AnchoredPosition.y - value: -659 + value: 80 objectReference: {fileID: 0} - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, type: 3} @@ -1156,154 +1774,3 @@ RectTransform: type: 3} m_PrefabInstance: {fileID: 6787368018900032306} m_PrefabAsset: {fileID: 0} ---- !u!1001 &9090800509245628596 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 5415218784008833447} - m_Modifications: - - target: {fileID: 245224001821693249, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_Name - value: GoodsItem 2 - objectReference: {fileID: 0} - - target: {fileID: 915593545797210867, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target - value: - objectReference: {fileID: 4898781408420543685} - - target: {fileID: 915593545797210867, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target - value: - objectReference: {fileID: 4898781408420543685} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_AnchorMax.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_AnchorMax.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_AnchorMin.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_SizeDelta.x - value: 645 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_SizeDelta.y - value: 1013.25 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 1672.5 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_AnchoredPosition.y - value: -506.625 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8536194946006111666, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: _index - value: 2 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 27e7c069820f8034e958e539232ac639, type: 3} ---- !u!114 &603388849832031494 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 8536194946006111666, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - m_PrefabInstance: {fileID: 9090800509245628596} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f1bbd7ef0a6648a45b413b62d3fcea48, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!224 &5680695134824055502 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - m_PrefabInstance: {fileID: 9090800509245628596} - m_PrefabAsset: {fileID: 0} diff --git a/Assets/GameMain/UI/UIForms/TestMenuForm.prefab b/Assets/GameMain/UI/UIForms/TestMenuForm.prefab index d19877f..9e30227 100644 --- a/Assets/GameMain/UI/UIForms/TestMenuForm.prefab +++ b/Assets/GameMain/UI/UIForms/TestMenuForm.prefab @@ -49,6 +49,9 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d1cfd203143c34c4e853705bdc409e04, type: 3} m_Name: m_EditorClassIdentifier: + combatButtonObject: {fileID: 4510397703366314199} + eventButtonObject: {fileID: 6875912589832396601} + shopButtonObject: {fileID: 8107616822249026203} --- !u!1 &6790072542047644883 GameObject: m_ObjectHideFlags: 0 @@ -353,6 +356,12 @@ RectTransform: type: 3} m_PrefabInstance: {fileID: 3758745783397349737} m_PrefabAsset: {fileID: 0} +--- !u!1 &4510397703366314199 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 770565994539545022, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + m_PrefabInstance: {fileID: 3758745783397349737} + m_PrefabAsset: {fileID: 0} --- !u!1001 &6187312163487411847 PrefabInstance: m_ObjectHideFlags: 0 @@ -586,6 +595,12 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 2307f223279813546a43b221ddd496cc, type: 3} +--- !u!1 &6875912589832396601 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 770565994539545022, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + m_PrefabInstance: {fileID: 6187312163487411847} + m_PrefabAsset: {fileID: 0} --- !u!224 &7748794988612724848 stripped RectTransform: m_CorrespondingSourceObject: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, @@ -831,3 +846,9 @@ RectTransform: type: 3} m_PrefabInstance: {fileID: 8806106529173603109} m_PrefabAsset: {fileID: 0} +--- !u!1 &8107616822249026203 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 770565994539545022, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + m_PrefabInstance: {fileID: 8806106529173603109} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/GameMain/UI/UIItems/NodeItem.prefab b/Assets/GameMain/UI/UIItems/NodeItem.prefab new file mode 100644 index 0000000..35071ce --- /dev/null +++ b/Assets/GameMain/UI/UIItems/NodeItem.prefab @@ -0,0 +1,330 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1139814490629641939 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8769328334771685493} + - component: {fileID: 2051869934177668487} + - component: {fileID: 1866624916103966737} + m_Layer: 5 + m_Name: NodeItem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8769328334771685493 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1139814490629641939} + 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: 9221979297406254555} + - {fileID: 1404818474728967281} + 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: -1200, y: 180} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2051869934177668487 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1139814490629641939} + m_CullTransparentMesh: 1 +--- !u!114 &1866624916103966737 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1139814490629641939} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d370c24f0bca1cd49b1163c3765e0f4c, type: 3} + m_Name: + m_EditorClassIdentifier: + _icon: {fileID: 5671637636532677122} + _bg: {fileID: 5994609020701889777} + _button: {fileID: 8781361341733077650} + _lockedColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + _activeColor: {r: 0, g: 1, b: 1, a: 1} + _passedColor: {r: 0, g: 1, b: 0, a: 1} + _failedColor: {r: 1, g: 0, b: 0, a: 1} + _defaultIconColor: {r: 1, g: 1, b: 1, a: 1} + _lockedIconColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} +--- !u!1 &4536174452495825529 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1404818474728967281} + - component: {fileID: 1379735801209342601} + - component: {fileID: 5671637636532677122} + m_Layer: 5 + m_Name: icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1404818474728967281 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4536174452495825529} + 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: 8769328334771685493} + 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 &1379735801209342601 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4536174452495825529} + m_CullTransparentMesh: 1 +--- !u!114 &5671637636532677122 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4536174452495825529} + 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.6039216, b: 0.5176471, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 56b8df63bbad60749a69e38bc687fadf, 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!1001 &4733156844748389164 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 8769328334771685493} + m_Modifications: + - target: {fileID: 770565994539545022, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_Name + value: CommonButton + objectReference: {fileID: 0} + - target: {fileID: 1341699087252484061, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: 9f847ec5e66e03e4ead1d3c5f7b510e8, + type: 3} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 1866624916103966737} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName + value: OnClick + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_TargetAssemblyTypeName + value: GeometryTD.UI.NodeItem, Assembly-CSharp + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7888786393168201163, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_Name + value: bg + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: + - {fileID: 7607456171798064113, guid: 2307f223279813546a43b221ddd496cc, type: 3} + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 2307f223279813546a43b221ddd496cc, type: 3} +--- !u!114 &5994609020701889777 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1341699087252484061, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + m_PrefabInstance: {fileID: 4733156844748389164} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &8781361341733077650 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + m_PrefabInstance: {fileID: 4733156844748389164} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a5079836f95c2a44b96fa331487ebb70, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &9221979297406254555 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + m_PrefabInstance: {fileID: 4733156844748389164} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/GameMain/UI/UIItems/NodeItem.prefab.meta b/Assets/GameMain/UI/UIItems/NodeItem.prefab.meta new file mode 100644 index 0000000..384819c --- /dev/null +++ b/Assets/GameMain/UI/UIItems/NodeItem.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 94e1f0fbe373d4649aa3cb6748d9e95e +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Launcher.unity b/Assets/Launcher.unity index 6905868..7db504e 100644 --- a/Assets/Launcher.unity +++ b/Assets/Launcher.unity @@ -348,7 +348,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 11405216, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3} propertyPath: m_AvailableProcedureTypeNames.Array.size - value: 12 + value: 13 objectReference: {fileID: 0} - target: {fileID: 11405216, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3} propertyPath: m_AvailableProcedureTypeNames.Array.data[0] @@ -372,35 +372,35 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 11405216, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3} propertyPath: m_AvailableProcedureTypeNames.Array.data[5] - value: GeometryTD.Procedure.ProcedureMenu + value: GeometryTD.Procedure.ProcedureMain objectReference: {fileID: 0} - target: {fileID: 11405216, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3} propertyPath: m_AvailableProcedureTypeNames.Array.data[6] - value: GeometryTD.Procedure.ProcedurePreload + value: GeometryTD.Procedure.ProcedureMenu objectReference: {fileID: 0} - target: {fileID: 11405216, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3} propertyPath: m_AvailableProcedureTypeNames.Array.data[7] - value: GeometryTD.Procedure.ProcedureSplash + value: GeometryTD.Procedure.ProcedurePreload objectReference: {fileID: 0} - target: {fileID: 11405216, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3} propertyPath: m_AvailableProcedureTypeNames.Array.data[8] - value: GeometryTD.Procedure.ProcedureTest + value: GeometryTD.Procedure.ProcedureSplash objectReference: {fileID: 0} - target: {fileID: 11405216, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3} propertyPath: m_AvailableProcedureTypeNames.Array.data[9] - value: GeometryTD.Procedure.ProcedureUpdateResources + value: GeometryTD.Procedure.ProcedureTest objectReference: {fileID: 0} - target: {fileID: 11405216, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3} propertyPath: m_AvailableProcedureTypeNames.Array.data[10] - value: GeometryTD.Procedure.ProcedureUpdateVersion + value: GeometryTD.Procedure.ProcedureUpdateResources objectReference: {fileID: 0} - target: {fileID: 11405216, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3} propertyPath: m_AvailableProcedureTypeNames.Array.data[11] - value: GeometryTD.Procedure.ProcedureVerifyResources + value: GeometryTD.Procedure.ProcedureUpdateVersion objectReference: {fileID: 0} - target: {fileID: 11405216, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3} propertyPath: m_AvailableProcedureTypeNames.Array.data[12] - value: Procedure.ProcedureVerifyResources + value: GeometryTD.Procedure.ProcedureVerifyResources objectReference: {fileID: 0} - target: {fileID: 11413340, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3} propertyPath: m_AudioMixer diff --git a/docs/CodeX-TODO.md b/docs/CodeX-TODO.md index 33c1eab..afb1565 100644 --- a/docs/CodeX-TODO.md +++ b/docs/CodeX-TODO.md @@ -1,39 +1,37 @@ # CodeX TODO -最后更新:2026-03-07 +最后更新:2026-03-08 ## 当前目标 -按 `docs/TODO.md` 的 M1 现状推进最小可玩闭环。当前代码已经具备: -- 基础战斗节点玩法 -- 事件节点基础占位 -- 仓库/组装 UI 骨架 -- 局内掉落与战斗结算的一部分 +按 `docs/TODO.md` 的 M1 目标推进最小可玩闭环,并以“能从开始游戏一路推进到 Boss 结算”为准检查当前实现。 -但离“可从开始游戏一路完成一个大关”的 M1 验收还有明显缺口。后续重点是: -- 补真正的单局 Run 流程,而不是继续依赖 `TestMenuForm` 手动点节点。 -- 把 10 节点固定大关、节点推进、Boss 终点串成闭环。 -- 把组装、品质、Tag、耐久从“有数据结构/有 UI”补成“实际影响战斗结果”的规则闭环。 -- 补商店节点真实实现,否则 M1 主流程无法跑通。 +和上一版相比,仓库已经把 Run 相关基础件进一步接到了 `ProcedureMain`,因此这份清单不再把重点放在“有没有 Run 模型”,而是聚焦下面这几个真实阻塞项: -## 已完成 +- 已有 `ProcedureMain + TestMenuForm` 的临时 Run 推进闭环,但还没有正式节点地图 / 节点面板。 +- 固定 10 节点顺序已经开始驱动战斗 / 事件 / 商店入口,但节点事件上下文仍然是空载版本。 +- 出战入口已有“至少有参战塔”的最小校验,但还没收口成严格的最终合法性约束。 +- 品质 / Tag / 耐久仍然停留在部分实现状态,尚未和 M1 范围完全对齐。 + +## 当前已完成 ### 1. 战斗主链路已经能独立跑通一场 -- `CombatNodeComponent` 能加载关卡、阶段和出怪表,并启动 `CombatScheduler`。 -- `CombatScheduler` 已经具备加载地图、推进 phase、结算与返回的基础流程。 -- 战斗内已有基地血量、建塔花费、敌人到家扣血、胜负结束等基础逻辑。 + +- `CombatNodeComponent` 能加载关卡、阶段、出怪表并启动 `CombatScheduler`。 +- `CombatScheduler` 已具备加载地图、推进 phase、结算、失败返回等基础流程。 +- 战斗内已有基地血量、建塔消耗、敌人到家扣血、胜负结束等基础规则。 关键文件: - `Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatNodeComponent.cs` - `Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatScheduler/CombatScheduler.cs` - `Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatScheduler/CombatStates/` - `Assets/GameMain/Scripts/Entity/EntityLogic/MapEntity.cs` -- `Assets/GameMain/Scripts/Scene/Map/` ### 2. 战斗结算、掉落与奖励选择已有基础实现 -- 战斗内敌人被击败后,已能发放 coin / gold / 组件掉落。 -- `CombatInRunResourceManager` 已维护本场奖励背包快照。 -- 结算链已经包含奖励计算、奖励选择 UI、FinishForm 返回等基础骨架。 + +- 敌人被击败后已能发放 coin / gold / 组件掉落。 +- `CombatInRunResourceManager` 维护局内资源与奖励背包快照。 +- 结算链已包含奖励计算、奖励选择 UI、FinishForm 返回等基础骨架。 关键文件: - `Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatScheduler/CombatInRunResourceManager.cs` @@ -41,11 +39,12 @@ - `Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatScheduler/CombatSettlementFlowService.cs` - `Assets/GameMain/Scripts/UI/Combat/` -### 3. 背包与组装基础能力已经存在 -- `PlayerInventoryComponent` 已有库存快照、金币读写、参战塔名单、组装塔入口。 +### 3. 背包、参战区与组装基础能力已经存在 + +- `PlayerInventoryComponent` 已支持库存快照、金币读写、参战塔名单、组装塔入口。 - `RepoForm` 已能展示组件、塔、参战区和组装区。 -- `CombineArea` 已有三槽约束,只有枪口/轴承/底座齐备时才会发起组合请求。 -- `PlayerInventoryTowerAssemblyService` 已能基于三组件生成 `TowerItemData` 与 `TowerStatsData`。 +- `CombineArea` 已有三槽约束,只有枪口 / 轴承 / 底座齐备时才会发起组合请求。 +- `PlayerInventoryTowerAssemblyService` 已能基于三组件生成 `TowerItemData` 和 `TowerStatsData`。 关键文件: - `Assets/GameMain/Scripts/CustomComponent/PlayerInventory/PlayerInventoryComponent.cs` @@ -54,70 +53,110 @@ - `Assets/GameMain/Scripts/UI/Game/View/CombineArea.cs` - `Assets/GameMain/Scripts/UI/Game/Controller/RepoFormController.cs` -### 4. 事件节点有基础占位实现 -- `EventNodeComponent` 已能读取 `Event.txt`,解析事件选项并随机打开一个事件。 -- 事件完成后会发出 `NodeCompleteEventArgs` 返回上层流程。 +### 4. 事件节点已有可进入、可结算的基础实现 + +- `EventNodeComponent` 能读取 `Event.txt`,解析事件选项并随机打开事件。 +- `EventForm` 的打开 / 关闭现已统一走 `UIRouter`,不再混用私有 controller。 +- 事件完成后会关闭 UI 并发出 `NodeCompleteEventArgs`。 关键文件: - `Assets/GameMain/Scripts/CustomComponent/EventNodeComponent.cs` - `Assets/GameMain/Scripts/UI/Game/UseCase/EventFormUseCase.cs` - `Assets/GameMain/Scripts/UI/Game/Controller/EventFormController.cs` -## 还没完成 +### 5. Run 模型和 10 节点固定序列已经落地到代码与测试 -### 1. M1 真正的 Run 流程还不存在 -- 当前入口仍是 `ProcedureMenu` 里打开 `MainForm + TestMenuForm`。 -- 玩家目前是手动点击 `战斗 / 事件 / 商店` 按钮进入节点,不是通过单局大关顺序推进。 -- 代码里没有明确的“当前节点 / 节点列表 / 节点索引 / 大关完成”运行时模型。 -- `docs/TODO.md` 的 `P0-04 / P0-05 / P0-06` 从验收标准看都还没有完整落地。 - -直接证据: -- `ProcedureMenu` 进入后直接打开测试菜单。 -- `TestMenuFormController` 直接转发到 `StartCombat / StartEvent / StartShop`。 +- 已有 `RunNodeType / RunNodeStatus / RunState / RunNodeState` 等运行时模型。 +- 已有 `RunStateFactory` 和 `RunStateAdvanceService` 处理节点创建、推进、失败和完成。 +- 已有 `FixedRunNodeSequenceBuilder`,Plain 主题下固定生成 10 节点,并且第 10 节点是 `BossCombat`。 +- 已有 Editor 测试覆盖 `RunState` 创建、节点推进、Boss 节点和固定 10 节点序列。 关键文件: -- `Assets/GameMain/Scripts/Procedure/ProcedureMenu.cs` -- `Assets/GameMain/Scripts/UI/Menu/Controller/TestMenuFormController.cs` +- `Assets/GameMain/Scripts/Procedure/RunModel.cs` +- `Assets/GameMain/Scripts/Procedure/RunStateFactory.cs` +- `Assets/GameMain/Scripts/Procedure/RunStateAdvanceService.cs` +- `Assets/GameMain/Scripts/Procedure/FixedRunNodeSequenceBuilder.cs` +- `Assets/GameMain/Tests/Editor/RunStateTests.cs` -### 2. 10 节点地图生成与 Boss 终点未实现 -- 当前没有发现“固定 10 节点”或“第 10 节点固定 Boss”的节点生成器。 -- `CombatNodeComponent.StartCombat()` 仍是从当前主题关卡池里随机抽一个 `DRLevel` 开战。 -- 现有 Boss 相关逻辑只存在于战斗内部的 `EntryType.Boss / BossDead`,不是大关节点层面的第 10 节点约束。 +### 6. 商店节点已经有最小可用实现 -关键文件: -- `Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatNodeComponent.cs` -- `Assets/GameMain/Scripts/CustomComponent/CombatNode/EnemyManager/EnemySpawnDirector.cs` -- `Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatScheduler/PhaseEndConditions/BossDeadPhaseEndCondition.cs` - -### 3. 商店节点基本未实现,当前是主流程硬缺口 -- `ShopNodeComponent.StartShop()` 仍然是空方法。 -- 旧版 `ShopFormUseCase / ShopFormController / ShopForm` 基本都是整文件注释状态,不能视为可用实现。 -- 因此 `战斗 -> 事件 -> 商店 -> 组装 -> 下一节点` 这条 M1 主链路实际上卡在商店节点。 +- `ShopNodeComponent.StartShop()` 已不再是空方法。 +- 新版 `ShopFormUseCase` 已能随机生成 4 个组件商品。 +- 已支持购买、扣金、把组件写回 `PlayerInventory`、退出商店。 关键文件: - `Assets/GameMain/Scripts/CustomComponent/ShopNodeComponent.cs` -- `Assets/GameMain/Scripts/UI/Templates/GameScene/UseCase/ShopFormUseCase.cs` -- `Assets/GameMain/Scripts/UI/Templates/GameScene/Controller/ShopFormController.cs` -- `Assets/GameMain/Scripts/UI/Templates/GameScene/View/ShopForm.cs` +- `Assets/GameMain/Scripts/UI/Shop/UseCase/ShopFormUseCase.cs` +- `Assets/GameMain/Scripts/UI/Shop/Controller/ShopFormController.cs` +- `Assets/GameMain/Scripts/UI/Shop/View/ShopForm.cs` -### 4. 三组件约束只做到了“组装时”,还没做到“出战时” -- `CombineArea` 已经要求枪口/轴承/底座三槽都填满才能发起组装。 -- 但战斗入口并没有校验“玩家是否拥有可参战的完整塔”。 -- 当前可以在没有任何参战塔时直接调用 `StartCombat()`,不符合 `P0-10` 的“未满足三组件时禁止出战”。 +## 当前未完成 + +### 1. Run 主流程已经形成临时闭环,但还不是正式节点 UI + +- `ProcedureMain` 进入后会创建 Run,并打开 `MainForm + TestMenuForm`。 +- `TestMenuForm` 已不再同时提供三种节点入口,而是通过 `TestMenuFormContext.CurrentNodeType` 只显示当前节点对应的唯一按钮。 +- 点击按钮后由 `ProcedureMain` 根据当前 `RunState.CurrentNode` 决定是否允许进入战斗 / 事件 / 商店。 +- 节点完成或战斗失败后,`ProcedureMain` 会推进 `RunState`,再重新打开 Hub UI。 +- 因此当前已经能从开始游戏后按固定顺序推进一局的临时版本。 + +当前缺口: +- UI 仍是测试面板,不是正式节点地图或正式节点信息面板。 +- `TestMenuFormContext` 目前只传 `CurrentNodeType`,还没有显示节点序号、总数、Boss 标记等关键信息。 +- Run 完成后的正式结算 / 收尾表现仍未建立。 + +关键文件: +- `Assets/GameMain/Scripts/Procedure/ProcedureMain.cs` +- `Assets/GameMain/Scripts/UI/Menu/View/TestMenuForm.cs` +- `Assets/GameMain/Scripts/UI/Menu/Controller/TestMenuFormController.cs` + +### 2. 固定 10 节点序列已开始驱动真实流程,但上下文仍不完整 + +- `FixedRunNodeSequenceBuilder` 已定义固定顺序和 Boss 终点。 +- `ProcedureMain` 已开始用当前 `RunNodeState.LinkedLevelId` 驱动战斗入口。 +- `EventNodeComponent` 和 `ShopNodeComponent` 已能进入并完成当前节点。 +- `EventNodeComponent` 的 UI 生命周期也已统一走 `UIRouter`。 +- 但 `NodeEnter / NodeComplete` 仍是默认空载事件,没有附带当前 Run 节点信息。 +- 因此“固定 10 节点序列”已经在驱动流程,但还没有形成可观测、可追踪的正式节点上下文系统。 + +关键文件: +- `Assets/GameMain/Scripts/Procedure/FixedRunNodeSequenceBuilder.cs` +- `Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatNodeComponent.cs` +- `Assets/GameMain/Scripts/CustomComponent/EventNodeComponent.cs` +- `Assets/GameMain/Scripts/CustomComponent/ShopNodeComponent.cs` +- `Assets/GameMain/Scripts/Event/Game/NodeEnterEventArgs.cs` +- `Assets/GameMain/Scripts/Event/Game/NodeCompleteEventArgs.cs` + +### 3. 商店节点已纳入临时 Run 推进闭环,但回流目标仍是测试 Hub + +- 现在可以单独打开商店、随机生成组件、购买并退出。 +- 商店结束后已能通过 `ProcedureMain` 推进当前 `RunState`。 +- 但退出后仍是回到 `MainForm + TestMenuForm`,而不是真实节点地图或正式节点选择界面。 + +关键文件: +- `Assets/GameMain/Scripts/CustomComponent/ShopNodeComponent.cs` +- `Assets/GameMain/Scripts/UI/Shop/UseCase/ShopFormUseCase.cs` +- `Assets/GameMain/Scripts/Procedure/ProcedureMain.cs` + +### 4. 出战入口已有最小校验,但离最终验收还差一层 + +- `CombineArea` 已限制三槽必须齐备才能组塔。 +- `ProcedureMain` 已经补上“没有参战塔时禁止进入战斗节点”的最小校验。 +- 但这个校验目前仍是“有参战塔即可开战”,还不是“完整三组件合法塔”意义上的最终验收版本。 +- 这意味着当前还不满足 `P0-10` 里“未满足三组件时禁止出战”的验收要求。 关键文件: - `Assets/GameMain/Scripts/UI/Game/View/CombineArea.cs` +- `Assets/GameMain/Scripts/Procedure/ProcedureMain.cs` - `Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatNodeComponent.cs` -- `Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatScheduler/CombatScheduler.cs` -### 5. 品质/槽位/Tag 规则只做了最浅一层 -- 塔品质目前只按三组件平均品质四舍五入得到。 -- `TowerItemData` 里没有“配件槽位数量”之类的落地字段,槽位规则没有真正实现。 -- Tag 当前不是按品质概率、数量、等级生成,而是: - - 掉落时直接复制 `PossibleTag` - - 组塔时直接把三组件 Tag 做并集 -- `DRTag` 虽然存在,但没有看到被用于实际掉落/组装规则计算。 -- `RarityType` 仍包含 `Red`,而 `docs/MVP-Scope.md.md` 里写的是 M1 不做红色,这里也还没统一。 +### 5. 品质 / 槽位 / Tag 规则仍只做了浅层版本 + +- 塔品质仍主要按三组件品质聚合得到。 +- `TowerItemData` 中没有真正落地“配件槽位数量”之类的核心字段。 +- Tag 仍主要来自组件自身配置或简单并集,未看到完整概率、数量、等级规则落地。 +- `DRTag` 已存在,但尚未形成明确的掉落 / 组装计算主链路。 +- `RarityType` 仍保留 `Red`,与部分 M1 文档描述未完全对齐。 关键文件: - `Assets/GameMain/Scripts/CustomComponent/PlayerInventory/PlayerInventoryTowerAssemblyService.cs` @@ -126,12 +165,13 @@ - `Assets/GameMain/Scripts/Definition/DataStruct/TowerItemData.cs` - `Assets/GameMain/Scripts/Definition/Enum/RarityType.cs` -### 6. 耐久只停留在展示和扣数值,没有真正生效 -- 当前组件耐久会显示在仓库描述和 UI 颜色上。 -- 低血通关后会调用 `ReduceAllTowerEndurance(...)` 扣耐久。 -- 但塔的真实战斗属性是组装时固化到 `TowerStatsData` 的,不会随着耐久变化动态衰减。 -- 组件耐久归 0 后没有销毁、移除库存、拆塔或失效处理。 -- 所以 `P0-12` 的“耐久影响属性,归零后物品移除”目前未完成。 +### 6. 耐久仍停留在“展示 + 部分扣减”,没有形成真实生效闭环 + +- 当前组件耐久会显示在描述与 UI 上。 +- 低血通关后已存在扣耐久逻辑。 +- 但塔战斗属性是在组装时固化到 `TowerStatsData`,没有根据耐久实时衰减。 +- 组件耐久归 0 后也没有稳定的销毁 / 拆塔 / 失效闭环。 +- 因此 `P0-12` 的完整验收还没有达成。 关键文件: - `Assets/GameMain/Scripts/Utility/ItemDescUtility.cs` @@ -139,71 +179,76 @@ - `Assets/GameMain/Scripts/Definition/DataStruct/TowerItemData.cs` - `Assets/GameMain/Scripts/Definition/DataStruct/TowerCompItemData.cs` -### 7. M1 文档与当前实现还有几处范围不一致 -- `docs/MVP-Scope.md.md` 写的是固定 10 节点与固定顺序,但当前代码没有对应系统。 -- 文档写的是商店节点可购买/出售组件,但当前商店未实现。 -- 文档写的是 M1 不做耐久系统,但 `docs/TODO.md` 又把耐久列在 M1 的 `P0-12`;当前代码只做了半套,需要先统一目标再继续推进。 -- 文档写的是 M1 不做红色品质,但数据与枚举仍保留 `Red`。 +## 当前与 `docs/TODO.md` 的对照判断 -关键文件: -- `docs/TODO.md` -- `docs/MVP-Scope.md.md` -- `docs/GameDesign.md` +结合静态代码检查,当前更接近下面这个状态: + +- `P0-04`:基础模型已完成,并已接入 `ProcedureMain` 的临时 Run 闭环。 +- `P0-05`:固定 10 节点序列已由 builder + `ProcedureMain` 开始驱动实际流程,但缺完整事件上下文与正式节点 UI。 +- `P0-06`:节点进入、完成、失败后回 Hub 的临时闭环已存在,但“正式地图/节点界面 + 正式结算”仍未完成。 +- `P0-10`:未完成。 +- `P0-11`:未完成。 +- `P0-12`:未完成。 + +换句话说,仓库已经不再是“还没有 Run 模型 / 10 节点 / 商店最小实现”的状态;真正的缺口是“这些能力已经接成临时可跑版本,但还没收口成正式 M1 主流程表现层与上下文系统”。 ## 推荐的后续执行顺序 -1. 先补单局 Run 模型 -- 明确 `当前节点索引 / 节点列表 / 当前主题 / 大关完成状态` -- 把 `ProcedureMenu + TestMenuForm` 临时入口替换成真实节点推进入口 +1. 先把临时 Hub 升级成正式节点面板 + - 保留 `ProcedureMain` 持有 Run 的做法 + - 不再把 `TestMenuForm` 当测试菜单,而是改成正式节点信息面板或节点地图 + - 至少补上当前节点序号、总节点数、节点名称、Boss 标记 -2. 再补 10 节点固定大关 -- 先做最小版本:固定顺序 10 节点 -- 最后一个节点固定 Boss 战斗 -- 节点完成后推进到下一节点 +2. 再把节点事件改成带上下文的真实推进 + - `NodeEnterEventArgs` 和 `NodeCompleteEventArgs` 传递 `runId / nodeId / nodeType / sequenceIndex` + - 节点完成后由流程层调用 `RunStateAdvanceService` + - 节点失败时明确是否停局、重试或返回菜单 -3. 立刻补商店节点最小实现 -- 先只做 3 个随机组件、购买、返回 -- 不提前做复杂定价与出售扩展 +3. 然后继续收口战斗关卡选择 + - 普通战斗和 Boss 战斗继续统一由当前 `RunNodeState.LinkedLevelId` 驱动 + - 去掉遗留的随机选关兜底路径,避免偏离 Run 顺序 -4. 收口组装到出战闭环 -- 没有完整塔时禁止开始战斗 -- 只有参战塔列表合法时才允许进入战斗节点 +4. 再补出战合法性校验 + - 没有完整参战塔时禁止进入战斗节点 + - 在 UI 和流程层都给出明确反馈 -5. 最后补品质/Tag/耐久规则 -- 先把 M1 真实要做的规则重新对齐 -- 再决定是否保留红色品质、耐久和槽位到本阶段 +5. 最后再处理品质 / Tag / 耐久与文档对齐 + - 先确认 M1 是否真的保留红色品质和完整耐久 + - 再决定是补全实现,还是先缩范围并同步文档 ## 当前做变更时要记住的约束 -- 不要继续把 `TestMenuForm` 当作正式节点流程。 -- 优先补“流程闭环”,不要先做 M2 的深度系统。 -- 商店、节点推进、出战校验属于当前阻塞项,优先级高于数值打磨。 -- 如果 M1 最终决定不做完整耐久/红色品质,要先同步更新文档,再改代码目标。 -- 若继续保留 `PlayerInventory` 作为局内外共用库存入口,需要避免把单局 Run 状态也硬塞进去。 +- 不要再把 `TestMenuForm` 维持成“测试菜单”语义。 +- 优先补“临时闭环 -> 正式节点 UI / 正式上下文”的收口,不要继续只加单点功能。 +- 商店已经接入 Run,下一步重点不是继续扩商店,而是把 Hub/UI 做正式。 +- 若 M1 最终不做完整耐久 / 红色品质,要先同步文档再改代码目标。 +- `PlayerInventory` 可以继续作为库存入口,但不要把整局 Run 状态直接混进库存对象里。 ## 当前关键入口文件速查 - 流程入口: - - `Assets/GameMain/Scripts/Procedure/ProcedureMenu.cs` -- 临时节点菜单: + - `Assets/GameMain/Scripts/Procedure/ProcedureMain.cs` +- Run 模型: + - `Assets/GameMain/Scripts/Procedure/RunModel.cs` + - `Assets/GameMain/Scripts/Procedure/RunStateFactory.cs` + - `Assets/GameMain/Scripts/Procedure/RunStateAdvanceService.cs` + - `Assets/GameMain/Scripts/Procedure/FixedRunNodeSequenceBuilder.cs` +- 临时 Hub / 节点入口: - `Assets/GameMain/Scripts/UI/Menu/Controller/TestMenuFormController.cs` - 战斗节点 facade: - `Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatNodeComponent.cs` -- 战斗状态机: - - `Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatScheduler/CombatScheduler.cs` - 事件节点: - `Assets/GameMain/Scripts/CustomComponent/EventNodeComponent.cs` - 商店节点: - `Assets/GameMain/Scripts/CustomComponent/ShopNodeComponent.cs` +- 商店 UI: + - `Assets/GameMain/Scripts/UI/Shop/` - 背包与组装: - `Assets/GameMain/Scripts/CustomComponent/PlayerInventory/` -- 仓库 UI: - `Assets/GameMain/Scripts/UI/Game/` -- 战斗 UI: - - `Assets/GameMain/Scripts/UI/Combat/` ## 备注 -- 这份清单按“当前仓库真实实现状态”整理,不沿用旧版 `CodeX-TODO.md` 的 CombatNode 收口主题。 -- 当前判断主要基于代码静态检查,没有跑 Unity Editor / PlayMode。 -- 如果下一步要继续推进,最值得先做的是:`RunState + 10 节点流程 + ShopNode 最小可用版`。 +- 这份清单基于 2026-03-08 的静态代码检查更新。 +- 本次已修正上一版中“Run 模型不存在”“10 节点未实现”“商店节点基本未实现”等过期判断。 +- 当前最值得优先推进的是:`ProcedureMain 继续收口 Run 流程 -> 节点事件带上下文 -> 战斗按节点关卡进入 -> 出战校验`。 diff --git a/docs/TODO.md b/docs/TODO.md index dea54c5..a4cc314 100644 --- a/docs/TODO.md +++ b/docs/TODO.md @@ -16,9 +16,9 @@ | [x] | P0-01 | 冻结 MVP 范围(只保留:战斗节点/事件节点/商店节点/节点后组装) | `docs/MVP-Scope.md` | 明确“做/不做”清单,团队评审通过 | | [x] | P0-02 | 补齐数据表:组件、配件、敌人、波次、节点、事件、商店商品 | `Assets/GameMain/DataTables/*.txt` | 游戏启动可无报错加载全部新增表 | | [x] | P0-03 | 新增/完善 DataRow 解析类 | `Assets/GameMain/Scripts/DataTable/*.cs` | 每个新增表都有对应 DR 类并成功解析 | -| [x] | P0-04 | 建立单局 Run 状态模型(金币、生命、库存、当前节点) | `Assets/GameMain/Scripts/Procedure/` | 进入/退出节点时状态可持续传递 | -| [ ] | P0-05 | 实现 10 节点地图生成(最后节点固定 Boss) | `Assets/GameMain/Scripts/Scene/` | 每局都生成 10 节点且第 10 节点为 Boss | -| [x] | P0-06 | 实现节点选择与跳转流程(战斗/事件/商店) | `Assets/GameMain/Scripts/Procedure/` | 节点完成后可返回地图并进入下个节点 | +| [~] | P0-04 | 建立单局 Run 状态模型(金币、生命、库存、当前节点) | `Assets/GameMain/Scripts/Procedure/` | 已有 `RunState` / 推进模型 / 测试,并已接入 `ProcedureMain` 的临时 Run 闭环,但还不是正式节点 UI | +| [~] | P0-05 | 实现 10 节点地图生成(最后节点固定 Boss) | `Assets/GameMain/Scripts/Procedure/`
`Assets/GameMain/Scripts/Scene/` | 已有固定 10 节点序列 builder 与测试,且已开始驱动真实流程,但节点事件上下文与正式节点面板仍未完成 | +| [~] | P0-06 | 实现节点选择与跳转流程(战斗/事件/商店) | `Assets/GameMain/Scripts/Procedure/` | `ProcedureMain + TestMenuForm` 的临时闭环已可推进战斗/事件/商店,但仍缺正式节点地图/节点面板与正式结算收尾 | | [x] | P0-07 | 战斗节点基础玩法:放置塔、出怪、基地扣血、胜负判定 | `Assets/GameMain/Scripts/Entity/`
`Assets/GameMain/Scripts/Scene/` | 可完整打一场并得到胜利/失败结果 | | [x] | P0-08 | 胜利波次与结算规则(100/80/50/<50) | `Assets/GameMain/Scripts/Procedure/` | 结算奖励与惩罚严格匹配设计文档 | | [x] | P0-09 | 敌人掉落与关卡奖励(组件/配件/金币) | `Assets/GameMain/Scripts/Entity/` | 战斗结束能发放掉落并写入库存 | @@ -55,9 +55,9 @@ ## 本周建议开工顺序 -1. `P0-01` ~ `P0-04`(先把范围与数据基础打稳) -2. `P0-05` ~ `P0-09`(打通节点到战斗再到结算) -3. `P0-10` ~ `P0-12`(完成组装与耐久闭环) +1. 先把 `P0-04` ~ `P0-06` 从“临时闭环”收口成正式节点面板 / 节点地图,并补齐节点事件上下文 +2. 完成 `P0-10`(把“至少有参战塔”提升为“满足完整合法参战条件才能出战”) +3. 再处理 `P0-11` ~ `P0-12`(品质 / Tag / 耐久是否纳入 M1 需先统一范围) ## 设计优化 Backlog(新增) @@ -80,4 +80,4 @@ - 基地血量满足一定条件的额外奖励 2. ShopNodeComponent:商店节点的逻辑补全 3. RepoForm:仓库的逻辑补全 - - 组装防御塔逻辑的落实 \ No newline at end of file + - 组装防御塔逻辑的落实 diff --git a/数据表/UIForm.xlsx b/数据表/UIForm.xlsx index 3d689c1..efefb14 100644 Binary files a/数据表/UIForm.xlsx and b/数据表/UIForm.xlsx differ