Sfoglia il codice sorgente

诗歌之旅创建

TTTN1997 1 anno fa
parent
commit
1adbc1d8be
100 ha cambiato i file con 8615 aggiunte e 0 eliminazioni
  1. 132 0
      .gitignore
  2. 8 0
      Assets/Editor.meta
  3. 8 0
      Assets/Editor/CustomTools.meta
  4. 175 0
      Assets/Editor/CustomTools/CustomStateControllerEditor.cs
  5. 11 0
      Assets/Editor/CustomTools/CustomStateControllerEditor.cs.meta
  6. 8 0
      Assets/Editor/ReferenceCollectorEditor.meta
  7. 188 0
      Assets/Editor/ReferenceCollectorEditor/ReferenceCollectorEditor.cs
  8. 12 0
      Assets/Editor/ReferenceCollectorEditor/ReferenceCollectorEditor.cs.meta
  9. 75 0
      Assets/New Universal Render Pipeline Asset.asset
  10. 8 0
      Assets/New Universal Render Pipeline Asset.asset.meta
  11. 60 0
      Assets/New Universal Render Pipeline Asset_Renderer.asset
  12. 8 0
      Assets/New Universal Render Pipeline Asset_Renderer.asset.meta
  13. 8 0
      Assets/Prefab.meta
  14. 8 0
      Assets/Res.meta
  15. 8 0
      Assets/Resources.meta
  16. 436 0
      Assets/Resources/Canvas.prefab
  17. 7 0
      Assets/Resources/Canvas.prefab.meta
  18. 8 0
      Assets/Resources/Config.meta
  19. 44 0
      Assets/Resources/Config/PoetConfig.json
  20. 7 0
      Assets/Resources/Config/PoetConfig.json.meta
  21. 68 0
      Assets/Resources/Config/PoetryConfig.json
  22. 7 0
      Assets/Resources/Config/PoetryConfig.json.meta
  23. 62 0
      Assets/Resources/Config/RegionConfig.json
  24. 7 0
      Assets/Resources/Config/RegionConfig.json.meta
  25. 8 0
      Assets/Resources/Sprite.meta
  26. 8 0
      Assets/Resources/UICom.meta
  27. 386 0
      Assets/Resources/UICom/PoetItem.prefab
  28. 7 0
      Assets/Resources/UICom/PoetItem.prefab.meta
  29. 229 0
      Assets/Resources/UICom/PoetryItem.prefab
  30. 7 0
      Assets/Resources/UICom/PoetryItem.prefab.meta
  31. 413 0
      Assets/Resources/UICom/RegionItem.prefab
  32. 7 0
      Assets/Resources/UICom/RegionItem.prefab.meta
  33. 8 0
      Assets/Resources/UIPanel.meta
  34. 2047 0
      Assets/Resources/UIPanel/CSGPanel.prefab
  35. 7 0
      Assets/Resources/UIPanel/CSGPanel.prefab.meta
  36. 1026 0
      Assets/Resources/UIPanel/MainScenePanel.prefab
  37. 7 0
      Assets/Resources/UIPanel/MainScenePanel.prefab.meta
  38. 338 0
      Assets/Resources/UIPanel/StartPanel.prefab
  39. 7 0
      Assets/Resources/UIPanel/StartPanel.prefab.meta
  40. 8 0
      Assets/Scenes.meta
  41. 738 0
      Assets/Scenes/MainScene.unity
  42. 7 0
      Assets/Scenes/MainScene.unity.meta
  43. 8 0
      Assets/Scripts.meta
  44. 24 0
      Assets/Scripts/AppLauncher.cs
  45. 11 0
      Assets/Scripts/AppLauncher.cs.meta
  46. 115 0
      Assets/Scripts/ConfigComponent.cs
  47. 11 0
      Assets/Scripts/ConfigComponent.cs.meta
  48. 292 0
      Assets/Scripts/CustomStateController.cs
  49. 11 0
      Assets/Scripts/CustomStateController.cs.meta
  50. 8 0
      Assets/Scripts/GameData.meta
  51. 3 0
      Assets/Scripts/GameData/Attribute.meta
  52. 13 0
      Assets/Scripts/GameData/Attribute/ConfigAttribute.cs
  53. 11 0
      Assets/Scripts/GameData/Attribute/ConfigAttribute.cs.meta
  54. 8 0
      Assets/Scripts/GameData/ExcelConfig.meta
  55. 34 0
      Assets/Scripts/GameData/ExcelConfig/PoetConfig.cs
  56. 11 0
      Assets/Scripts/GameData/ExcelConfig/PoetConfig.cs.meta
  57. 40 0
      Assets/Scripts/GameData/ExcelConfig/PoetryConfig.cs
  58. 11 0
      Assets/Scripts/GameData/ExcelConfig/PoetryConfig.cs.meta
  59. 40 0
      Assets/Scripts/GameData/ExcelConfig/RegionConfig.cs
  60. 11 0
      Assets/Scripts/GameData/ExcelConfig/RegionConfig.cs.meta
  61. 8 0
      Assets/Scripts/GameData/ExcelConfigBasic.meta
  62. 92 0
      Assets/Scripts/GameData/ExcelConfigBasic/ConfigHolder.cs
  63. 3 0
      Assets/Scripts/GameData/ExcelConfigBasic/ConfigHolder.cs.meta
  64. 7 0
      Assets/Scripts/GameData/ExcelConfigBasic/IConfig.cs
  65. 11 0
      Assets/Scripts/GameData/ExcelConfigBasic/IConfig.cs.meta
  66. 14 0
      Assets/Scripts/GameData/GameData.asmdef
  67. 7 0
      Assets/Scripts/GameData/GameData.asmdef.meta
  68. 8 0
      Assets/Scripts/GameData/Utility.meta
  69. 105 0
      Assets/Scripts/GameData/Utility/JsonHelper.cs
  70. 11 0
      Assets/Scripts/GameData/Utility/JsonHelper.cs.meta
  71. 8 0
      Assets/Scripts/Mono.meta
  72. 8 0
      Assets/Scripts/Mono/UI.meta
  73. 8 0
      Assets/Scripts/Mono/UI/Com.meta
  74. 36 0
      Assets/Scripts/Mono/UI/Com/PoetryItem.cs
  75. 3 0
      Assets/Scripts/Mono/UI/Com/PoetryItem.cs.meta
  76. 78 0
      Assets/Scripts/Mono/UI/Com/RegionItem.cs
  77. 3 0
      Assets/Scripts/Mono/UI/Com/RegionItem.cs.meta
  78. 8 0
      Assets/Scripts/Mono/UI/Core.meta
  79. 86 0
      Assets/Scripts/Mono/UI/Core/Singleton.cs
  80. 11 0
      Assets/Scripts/Mono/UI/Core/Singleton.cs.meta
  81. 25 0
      Assets/Scripts/Mono/UI/Core/UIBasic.cs
  82. 3 0
      Assets/Scripts/Mono/UI/Core/UIBasic.cs.meta
  83. 14 0
      Assets/Scripts/Mono/UI/Core/UIBindingAttribute.cs
  84. 3 0
      Assets/Scripts/Mono/UI/Core/UIBindingAttribute.cs.meta
  85. 62 0
      Assets/Scripts/Mono/UI/Core/UICom.cs
  86. 3 0
      Assets/Scripts/Mono/UI/Core/UICom.cs.meta
  87. 220 0
      Assets/Scripts/Mono/UI/Core/UIManager.cs
  88. 11 0
      Assets/Scripts/Mono/UI/Core/UIManager.cs.meta
  89. 61 0
      Assets/Scripts/Mono/UI/Core/UIPanel.cs
  90. 3 0
      Assets/Scripts/Mono/UI/Core/UIPanel.cs.meta
  91. 3 0
      Assets/Scripts/Mono/UI/Panel.meta
  92. 86 0
      Assets/Scripts/Mono/UI/Panel/CSGPanel.cs
  93. 3 0
      Assets/Scripts/Mono/UI/Panel/CSGPanel.cs.meta
  94. 34 0
      Assets/Scripts/Mono/UI/Panel/MainScenPanel.cs
  95. 3 0
      Assets/Scripts/Mono/UI/Panel/MainScenPanel.cs.meta
  96. 27 0
      Assets/Scripts/Mono/UI/Panel/StartPanel.cs
  97. 3 0
      Assets/Scripts/Mono/UI/Panel/StartPanel.cs.meta
  98. 215 0
      Assets/Scripts/ReferenceCollector.cs
  99. 11 0
      Assets/Scripts/ReferenceCollector.cs.meta
  100. 27 0
      Assets/UniversalRenderPipelineGlobalSettings.asset

+ 132 - 0
.gitignore

@@ -0,0 +1,132 @@
+# This .gitignore file should be placed at the root of your Unity project directory
+#
+# Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore
+#
+
+/[Ll]ibrary/
+/[Tt]emp/
+/[Oo]bj/
+/[Bb]uild/
+/[Bb]uilds/
+/[Ll]ogs/
+/[Mm]emoryCaptures/
+/[Rr]elease/
+Assets/Samples/
+
+# Asset meta data should only be ignored when the corresponding asset is also ignored
+!/[Aa]ssets/**/*.meta
+
+# Uncomment this line if you wish to ignore the asset store tools plugin
+# /[Aa]ssets/AssetStoreTools*
+
+# Autogenerated Jetbrains Rider plugin
+[Aa]ssets/Plugins/Editor/JetBrains*
+
+# Visual Studio cache directory
+.vs/
+
+# Gradle cache directory
+.gradle/
+
+# Autogenerated VS/MD/Consulo solution and project files
+ExportedObj/
+.consulo/
+*.csproj
+*.unityproj
+*.sln
+*.suo
+*.tmp
+*.user
+*.userprefs
+*.pidb
+*.booproj
+*.svd
+*.pdb
+*.mdb
+*.opendb
+*.VC.db
+*.dwlt
+.idea/
+~$*
+Assets/StreamingAssets/
+
+# Unity3D generated meta files
+*.pidb.meta
+*.pdb.meta
+*.mdb.meta
+
+# Unity3D generated file on crash reports
+sysinfo.txt
+
+# Builds
+*.apk
+*.unitypackage
+
+# Crashlytics generated file
+crashlytics-build.properties
+Assets/Scripts/Mono/~Test/
+Assets/Scripts/Mono/~Test.meta
+UserSettings/Layouts/default-2021.dwlt
+*.dwlt~fd7a7c41140561a9f04a27107094b4495bfedf86
+Assets/Scripts/Mono/tttt.cs
+Assets/Scripts/Mono/tttt.cs.meta
+UserSettings/
+Assets/Art/VFX/ParticleSystem01.preset
+Assets/Art/VFX/ParticleSystem01.preset.meta
+Assets/Art/VFX/Resources/rj1.mat
+Assets/Art/VFX/Resources/rj1.mat.meta
+Assets/Art/VFX/Resources/rj1.shader
+Assets/Art/VFX/Resources/rj1.shader.meta
+RiderScriptEditorPersistedState.asset
+Assets/ShaderoSprite/
+Assets/ShaderoSprite.meta
+Assets/Scripts/UTool/SpineTool/Editor/TestHeroAnimDotInfo.cs
+Assets/Scripts/UTool/SpineTool/Editor/TestHeroAnimDotInfo.cs.meta
+as12_BurstDebugInformation_DoNotShip/
+Packages/com.test123@1.0.0/
+Assets/Art/VFX/Textures/CJ/cjshitou.mat
+Assets/Art/VFX/Textures/CJ/cjshitou.mat.meta
+Assets/Art/VFX/Textures/CJ/cjshitou.png
+Assets/Art/VFX/Textures/CJ/cjshitou.png.meta
+ProjectSettings/RiderScriptEditorPersistedState.asset
+Assets/Scripts/CombatLibrary/CombatLibrary/obj/
+Assets/Scripts/CombatLibrary/CombatLibrary/obj.meta
+Assets/Scripts/CombatLibrary/CombatLibrary/CombatLibrary.csproj.meta
+Assets/Scripts/CombatLibrary/CombatLibrary/bin/Debug/
+Assets/Scripts/CombatLibrary/CombatLibrary/bin/
+Assets/Scripts/CombatLibrary/CombatLibrary/bin.meta
+Assets/Scripts/CombatLibrary/CombatLibrary.sln.meta
+Assets/Art/VFX/03_BACKUP_38084.unity
+Assets/Art/VFX/03_BASE_38084.unity
+Assets/Art/VFX/03_LOCAL_38084.unity
+Assets/Art/VFX/03_REMOTE_38084.unity
+Assets/Samples.meta
+Excel2Json/服务器转表_laotang.bat
+Excel2Json/服务器转表_js2.bat
+Excel2Json/SVN服务器转表_js.bat
+Excel2Json/服务器转表_hds.bat
+Excel2Json/服务器转表_js.bat
+HybridCLRData/
+CombatDll/
+Assets/Scripts/CombatLibrary/CombatLibrary/..../
+CombatInfo.byte
+CombatInfo.zip
+Assets/CombatInfo.txt
+CombatInfo.txt
+Assets/CombatInfo.txt.meta
+Assets/Res/Prefabs/TestConfigAsset123.asset
+Assets/Res/Prefabs/TestConfigAsset123.asset.meta
+Assets/Sample/
+test123/
+/setting.txt
+HybridCLRData/
+Assets/HybridCLRData.meta
+Assets/test1/
+Assets/test1.meta
+Assets/FantasyMapCreator_2/
+Assets/FantasyMapCreator_2.meta
+/FMODProject/010Client/.cache
+/FMODProject/010Client/.unsaved
+fmod_editor.log
+/fmod_editor.log
+/Assets/Plugins/FMOD/Cache/Editor

+ 8 - 0
Assets/Editor.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 62ea3c59204d97f418a48d6fac33a81e
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Editor/CustomTools.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c3f964c5ff9b1fa43b01e2cdd8e42b7e
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 175 - 0
Assets/Editor/CustomTools/CustomStateControllerEditor.cs

@@ -0,0 +1,175 @@
+using System.Collections.Generic;
+
+using UnityEditor;
+using UnityEngine;
+using Utility;
+
+namespace Mono.UI.UIComs
+{
+    [CustomEditor(typeof(CustomStateController))]
+    public class CustomStateControllerEditor : UnityEditor.Editor
+    {
+        private CustomStateController uIStateController;
+
+
+        private void OnEnable()
+        {
+            uIStateController = (CustomStateController)target;
+        }
+
+        public int SelectIndex
+        {
+            get { return _selectIndex; }
+            set
+            {
+                if (value != _selectIndex && value >= 0)
+                {
+                    _selectIndex = value;
+                    uIStateController.CurrIndex = _selectIndex;
+                    uIStateController.ChangeState(_selectIndex);
+
+                    Debug.Log("切换状态+" + uIStateController.data[_selectIndex].StateInfos[0].UIStateV4Datas.Count);
+                }
+            }
+        }
+
+        private int _selectIndex;
+        private Object ObjectPrefab;
+
+
+        bool isInited = false;
+
+        public override void OnInspectorGUI()
+        {
+            SerializedProperty AllComsProperty = serializedObject.FindProperty("AllComs");
+            SerializedProperty AllComsStateTypesProperty = serializedObject.FindProperty("AllComsStateTypes");
+
+
+            if (uIStateController.AllComsStateTypes.Count < uIStateController.AllComs.Count)
+            {
+                uIStateController.AllComsStateTypes.Add(CustomStateController.UIStateType.Null);
+            }
+
+
+            GUILayout.BeginHorizontal(GUI.skin.box);
+
+            _selectIndex = uIStateController.CurrIndex;
+            for (var i = 0; i < uIStateController.data.Count; i++)
+            {
+                if (GUILayout.Toggle(SelectIndex == i, i.ToString()))
+                {
+                    SelectIndex = i;
+                }
+            }
+
+            EditorGUILayout.EndHorizontal();
+
+            EditorGUILayout.ObjectField(ObjectPrefab, typeof(Object), false);
+
+
+            SerializedProperty property;
+            EditorGUILayout.LabelField("需要保存状态数据的组件列表:");
+            var delList = new List<int>();
+            for (var i = 0; i < uIStateController.AllComs.Count; i++)
+            {
+                GUILayout.BeginHorizontal();
+                property = AllComsProperty.GetArrayElementAtIndex(i);
+
+                property.objectReferenceValue = EditorGUILayout.ObjectField(property.objectReferenceValue, typeof(Object), true);
+
+                uIStateController.AllComsStateTypes[i] = (CustomStateController.UIStateType)EditorGUILayout.EnumFlagsField(uIStateController.AllComsStateTypes[i]);
+
+
+                if (GUILayout.Button("X"))
+                {
+                    //将元素添加进删除list
+                    delList.Add(i);
+                }
+
+                GUILayout.EndHorizontal();
+            }
+
+
+            //遍历删除list,将其删除掉
+            foreach (var i in delList)
+            {
+                AllComsProperty.DeleteArrayElementAtIndex(i);
+                AllComsStateTypesProperty.DeleteArrayElementAtIndex(i);
+            }
+
+
+            // EditorGUILayout.LabelField("当前保存的状态数据列表:");
+            // for (var i = 0; i < uIStateController.data.Count; i++)
+            // {
+            //     property = AllComDatasProperty.GetArrayElementAtIndex(i);
+            //     EditorGUILayout.PropertyField(property);
+            // }
+
+            EditorGUILayout.BeginHorizontal();
+
+            if (GUILayout.Button("添加当前状态数据"))
+            {
+                uIStateController.AddData();
+                SelectIndex = uIStateController.data.Count - 1;
+                Debug.Log("添加当前状态数据");
+                EditorUtility.SetDirty(uIStateController.gameObject);
+            }
+
+            if (GUILayout.Button("保存当前状态数据"))
+            {
+                uIStateController.SaveData();
+
+
+                EditorUtility.SetDirty(uIStateController.gameObject);
+                Debug.Log("保存当前状态数据");
+            }
+
+            if (GUILayout.Button("删除当前状态数据"))
+            {
+                uIStateController.RemoveData(SelectIndex);
+                SelectIndex = uIStateController.data.Count - 1;
+                EditorUtility.SetDirty(uIStateController.gameObject);
+                Debug.Log("删除当前状态数据");
+            }
+
+            EditorGUILayout.EndHorizontal();
+
+
+            var eventType = Event.current.type;
+            //在Inspector 窗口上创建区域,向区域拖拽资源对象,获取到拖拽到区域的对象
+            if (eventType == EventType.DragUpdated || eventType == EventType.DragPerform)
+            {
+                DragAndDrop.visualMode = DragAndDropVisualMode.Copy;
+
+                if (eventType == EventType.DragPerform)
+                {
+                    DragAndDrop.AcceptDrag();
+                    foreach (var o in DragAndDrop.objectReferences)
+                    {
+                        AddObject(AllComsProperty, o);
+                    }
+                }
+
+                Event.current.Use();
+            }
+
+
+            serializedObject.ApplyModifiedProperties();
+            serializedObject.UpdateIfRequiredOrScript();
+        }
+
+
+        private void AddObject(SerializedProperty dataProperty, Object obj)
+        {
+            int index = dataProperty.arraySize;
+            dataProperty.InsertArrayElementAtIndex(index);
+            var element = dataProperty.GetArrayElementAtIndex(index);
+            element.objectReferenceValue = obj;
+        }
+
+        private void AddStateData(CustomStateController.UIStateData data)
+        {
+            uIStateController.data.Add(data);
+        }
+    }
+}

+ 11 - 0
Assets/Editor/CustomTools/CustomStateControllerEditor.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 0ed7272e0b726ce4daa70d1d0469b3e3
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Editor/ReferenceCollectorEditor.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 806f7a9d84c809b4784749a83573859e
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 188 - 0
Assets/Editor/ReferenceCollectorEditor/ReferenceCollectorEditor.cs

@@ -0,0 +1,188 @@
+using System;
+using System.Collections.Generic;
+using Fort23.Mono;
+using UnityEditor;
+using UnityEngine;
+using Object = UnityEngine.Object;
+
+namespace Fort23.Editor
+{
+    [CustomEditor(typeof(ReferenceCollector))]
+    public class ReferenceCollectorEditor : UnityEditor.Editor
+    {
+        private string searchKey
+        {
+            get { return _searchKey; }
+            set
+            {
+                if (_searchKey != value)
+                {
+                    _searchKey = value;
+                    heroPrefab = referenceCollector.Get<Object>(searchKey);
+                }
+            }
+        }
+
+        private ReferenceCollector referenceCollector;
+
+        private Object heroPrefab;
+
+        private string _searchKey = "";
+
+        [SerializeField] public bool isAssetBundle;
+
+        private void DelNullReference()
+        {
+            var dataProperty = serializedObject.FindProperty("data");
+            for (int i = dataProperty.arraySize - 1; i >= 0; i--)
+            {
+                var gameObjectProperty = dataProperty.GetArrayElementAtIndex(i).FindPropertyRelative("gameObject");
+                if (gameObjectProperty.objectReferenceValue == null)
+                {
+                    dataProperty.DeleteArrayElementAtIndex(i);
+                }
+            }
+        }
+
+        private void OnEnable()
+        {
+            referenceCollector = (ReferenceCollector)target;
+        }
+
+        public override void OnInspectorGUI()
+        {
+            //支持撤销,Redo
+            Undo.RecordObject(referenceCollector, "Changed Settings");
+            var dataProperty = serializedObject.FindProperty("data");
+            var isAssetBundle = serializedObject.FindProperty("isAssetBundle");
+            isAssetBundle.boolValue = GUILayout.Toggle(isAssetBundle.boolValue, "是否显示打包文件夹(只有AB包设置文件用得到这个选项)");
+            GUILayout.BeginHorizontal();
+            if (GUILayout.Button("添加引用"))
+            {
+                // Guid.NewGuid().GetHashCode().SplitToString() 是新建后默认的key
+                AddReference(dataProperty, Guid.NewGuid().GetHashCode().ToString(), null);
+            }
+
+            if (GUILayout.Button("全部删除"))
+            {
+                dataProperty.ClearArray();
+            }
+
+            if (GUILayout.Button("删除空引用"))
+            {
+                DelNullReference();
+            }
+
+            if (GUILayout.Button("排序"))
+            {
+                referenceCollector.Sort();
+            }
+
+            EditorGUILayout.EndHorizontal();
+            EditorGUILayout.BeginHorizontal();
+            //可以在编辑器中对searchKey进行赋值,只要输入对应的Key值,就可以点后面的删除按钮删除相对应的元素
+            searchKey = EditorGUILayout.TextField(searchKey);
+            //添加的可以用于选中Object的框,这里的object也是(UnityEngine.Object
+            //第三个参数为是否只能引用scene中的Object
+            EditorGUILayout.ObjectField(heroPrefab, typeof(Object), false);
+            if (GUILayout.Button("删除"))
+            {
+                referenceCollector.Remove(searchKey);
+                heroPrefab = null;
+            }
+
+            GUILayout.EndHorizontal();
+            EditorGUILayout.Space();
+
+            var delList = new List<int>();
+            SerializedProperty property;
+            //遍历ReferenceCollector中data list的所有元素,显示在编辑器中
+            for (int i = referenceCollector.data.Count - 1; i >= 0; i--)
+            {
+                GUILayout.BeginHorizontal();
+                SerializedProperty rcDataSp = dataProperty.GetArrayElementAtIndex(i);
+                if (rcDataSp == null)
+                {
+                    continue;
+                }
+
+                SerializedProperty listSp = rcDataSp.FindPropertyRelative("isList");
+                //这里的知识点在ReferenceCollector中有说
+                if (dataProperty.arraySize > i)
+                {
+                    if (isAssetBundle.boolValue)
+                    {
+                        property = rcDataSp.FindPropertyRelative("isAssetBundle");
+                        property.boolValue = EditorGUILayout.ToggleLeft("文件夹打AB", property.boolValue, GUILayout.Width(100));
+
+                        listSp.boolValue = EditorGUILayout.ToggleLeft("是否是List", listSp.boolValue, GUILayout.Width(100));
+
+                        property = rcDataSp.FindPropertyRelative("key");
+                        property.stringValue = EditorGUILayout.TextField(property.stringValue, GUILayout.Width(100));
+                        property = rcDataSp.FindPropertyRelative("gameObject");
+                        property.objectReferenceValue = EditorGUILayout.ObjectField(property.objectReferenceValue, typeof(Object), true);
+                    }
+                    else
+                    {
+                        property = rcDataSp.FindPropertyRelative("key");
+                        property.stringValue = EditorGUILayout.TextField(property.stringValue, GUILayout.Width(150));
+                        property = rcDataSp.FindPropertyRelative("gameObject");
+                        property.objectReferenceValue = EditorGUILayout.ObjectField(property.objectReferenceValue, typeof(Object), true);
+                    }
+
+                    if (GUILayout.Button("X"))
+                    {
+                        //将元素添加进删除list
+                        delList.Add(i);
+                    }
+                }
+
+                GUILayout.EndHorizontal();
+                if (listSp.boolValue)
+                {
+                    string key = rcDataSp.FindPropertyRelative("key").stringValue;
+                    SerializedProperty ListCollectorDatas = rcDataSp.FindPropertyRelative("ListCollectorDatas");
+                    EditorGUILayout.PropertyField(ListCollectorDatas, new GUIContent(key));
+                }
+            }
+
+            var eventType = Event.current.type;
+            //在Inspector 窗口上创建区域,向区域拖拽资源对象,获取到拖拽到区域的对象
+            if (eventType == EventType.DragUpdated || eventType == EventType.DragPerform)
+            {
+                // ShowForHall a copy icon on the drag
+                DragAndDrop.visualMode = DragAndDropVisualMode.Copy;
+
+                if (eventType == EventType.DragPerform)
+                {
+                    DragAndDrop.AcceptDrag();
+                    foreach (var o in DragAndDrop.objectReferences)
+                    {
+                        AddReference(dataProperty, o.name, o);
+                    }
+                }
+
+                Event.current.Use();
+            }
+
+            //遍历删除list,将其删除掉
+            foreach (var i in delList)
+            {
+                dataProperty.DeleteArrayElementAtIndex(i);
+            }
+
+            serializedObject.ApplyModifiedProperties();
+            serializedObject.UpdateIfRequiredOrScript();
+        }
+
+        //添加元素
+        private void AddReference(SerializedProperty dataProperty, string key, Object obj)
+        {
+            int index = dataProperty.arraySize;
+            dataProperty.InsertArrayElementAtIndex(index);
+            var element = dataProperty.GetArrayElementAtIndex(index);
+            element.FindPropertyRelative("key").stringValue = key;
+            element.FindPropertyRelative("gameObject").objectReferenceValue = obj;
+        }
+    }
+}

+ 12 - 0
Assets/Editor/ReferenceCollectorEditor/ReferenceCollectorEditor.cs.meta

@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 35ce3f8ca2662a349a91ad46d2fb92e9
+timeCreated: 1463827070
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 75 - 0
Assets/New Universal Render Pipeline Asset.asset

@@ -0,0 +1,75 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3}
+  m_Name: New Universal Render Pipeline Asset
+  m_EditorClassIdentifier: 
+  k_AssetVersion: 9
+  k_AssetPreviousVersion: 9
+  m_RendererType: 1
+  m_RendererData: {fileID: 0}
+  m_RendererDataList:
+  - {fileID: 11400000, guid: 45f368174426de14d987498658350bea, type: 2}
+  m_DefaultRendererIndex: 0
+  m_RequireDepthTexture: 0
+  m_RequireOpaqueTexture: 0
+  m_OpaqueDownsampling: 1
+  m_SupportsTerrainHoles: 1
+  m_StoreActionsOptimization: 0
+  m_SupportsHDR: 1
+  m_MSAA: 1
+  m_RenderScale: 1
+  m_UpscalingFilter: 0
+  m_FsrOverrideSharpness: 0
+  m_FsrSharpness: 0.92
+  m_MainLightRenderingMode: 1
+  m_MainLightShadowsSupported: 1
+  m_MainLightShadowmapResolution: 2048
+  m_AdditionalLightsRenderingMode: 1
+  m_AdditionalLightsPerObjectLimit: 4
+  m_AdditionalLightShadowsSupported: 0
+  m_AdditionalLightsShadowmapResolution: 2048
+  m_AdditionalLightsShadowResolutionTierLow: 256
+  m_AdditionalLightsShadowResolutionTierMedium: 512
+  m_AdditionalLightsShadowResolutionTierHigh: 1024
+  m_ReflectionProbeBlending: 0
+  m_ReflectionProbeBoxProjection: 0
+  m_ShadowDistance: 50
+  m_ShadowCascadeCount: 1
+  m_Cascade2Split: 0.25
+  m_Cascade3Split: {x: 0.1, y: 0.3}
+  m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467}
+  m_CascadeBorder: 0.2
+  m_ShadowDepthBias: 1
+  m_ShadowNormalBias: 1
+  m_AnyShadowsSupported: 1
+  m_SoftShadowsSupported: 0
+  m_ConservativeEnclosingSphere: 1
+  m_NumIterationsEnclosingSphere: 64
+  m_AdditionalLightsCookieResolution: 2048
+  m_AdditionalLightsCookieFormat: 3
+  m_UseSRPBatcher: 1
+  m_SupportsDynamicBatching: 0
+  m_MixedLightingSupported: 1
+  m_SupportsLightLayers: 0
+  m_DebugLevel: 0
+  m_UseAdaptivePerformance: 1
+  m_ColorGradingMode: 0
+  m_ColorGradingLutSize: 32
+  m_UseFastSRGBLinearConversion: 0
+  m_ShadowType: 1
+  m_LocalShadowsSupported: 0
+  m_LocalShadowsAtlasResolution: 256
+  m_MaxPixelLights: 0
+  m_ShadowAtlasResolution: 256
+  m_ShaderVariantLogLevel: 0
+  m_VolumeFrameworkUpdateMode: 0
+  m_ShadowCascades: 0

+ 8 - 0
Assets/New Universal Render Pipeline Asset.asset.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 5ed8d77c9b3c8e94aa1727c5318b8de0
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 60 - 0
Assets/New Universal Render Pipeline Asset_Renderer.asset

@@ -0,0 +1,60 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 11145981673336645838492a2d98e247, type: 3}
+  m_Name: New Universal Render Pipeline Asset_Renderer
+  m_EditorClassIdentifier: 
+  debugShaders:
+    debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, type: 3}
+  m_RendererFeatures: []
+  m_RendererFeatureMap: 
+  m_UseNativeRenderPass: 0
+  m_TransparencySortMode: 0
+  m_TransparencySortAxis: {x: 0, y: 1, z: 0}
+  m_HDREmulationScale: 1
+  m_LightRenderTextureScale: 0.5
+  m_LightBlendStyles:
+  - name: Multiply
+    maskTextureChannel: 0
+    blendMode: 1
+  - name: Additive
+    maskTextureChannel: 0
+    blendMode: 0
+  - name: Multiply with Mask
+    maskTextureChannel: 1
+    blendMode: 1
+  - name: Additive with Mask
+    maskTextureChannel: 1
+    blendMode: 0
+  m_UseDepthStencilBuffer: 1
+  m_UseCameraSortingLayersTexture: 0
+  m_CameraSortingLayersTextureBound: -1
+  m_CameraSortingLayerDownsamplingMethod: 0
+  m_MaxLightRenderTextureCount: 16
+  m_MaxShadowRenderTextureCount: 1
+  m_ShapeLightShader: {fileID: 4800000, guid: d79e1c784eaf80c4585c0be7391f757a, type: 3}
+  m_ShapeLightVolumeShader: {fileID: 4800000, guid: 7e60080c8cd24a2468cb08b4bfee5606, type: 3}
+  m_PointLightShader: {fileID: 4800000, guid: e35a31e1679aeff489e202f5cc4853d5, type: 3}
+  m_PointLightVolumeShader: {fileID: 4800000, guid: c7d04ca57e5449d49ad9cee1c604bc26, type: 3}
+  m_BlitShader: {fileID: 4800000, guid: c17132b1f77d20942aa75f8429c0f8bc, type: 3}
+  m_SamplingShader: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3}
+  m_ProjectedShadowShader: {fileID: 4800000, guid: ce09d4a80b88c5a4eb9768fab4f1ee00, type: 3}
+  m_SpriteShadowShader: {fileID: 4800000, guid: 44fc62292b65ab04eabcf310e799ccf6, type: 3}
+  m_SpriteUnshadowShader: {fileID: 4800000, guid: de02b375720b5c445afe83cd483bedf3, type: 3}
+  m_GeometryUnshadowShader: {fileID: 4800000, guid: 77774d9009bb81447b048c907d4c6273, type: 3}
+  m_FallbackErrorShader: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3}
+  m_PostProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2}
+  m_FallOffLookup: {fileID: 2800000, guid: 5688ab254e4c0634f8d6c8e0792331ca, type: 3}
+  m_DefaultMaterialType: 0
+  m_DefaultCustomMaterial: {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2}
+  m_DefaultLitMaterial: {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2}
+  m_DefaultUnlitMaterial: {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, type: 2}
+  m_DefaultMaskMaterial: {fileID: 2100000, guid: 15d0c3709176029428a0da2f8cecf0b5, type: 2}

+ 8 - 0
Assets/New Universal Render Pipeline Asset_Renderer.asset.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 45f368174426de14d987498658350bea
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Prefab.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: dbb353882205a3e4f8e52ed5d32f9367
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Res.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 038b0db3608ddfb44a4bbf6e82283195
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Resources.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 485b1e0aa1864df4186b02a8f6ef58a7
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 436 - 0
Assets/Resources/Canvas.prefab

@@ -0,0 +1,436 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &519420028
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 519420032}
+  - component: {fileID: 519420031}
+  - component: {fileID: 519420029}
+  - component: {fileID: 519420033}
+  m_Layer: 0
+  m_Name: Main Camera
+  m_TagString: MainCamera
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &519420032
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 519420028}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: -70}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 4591470911106441113}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!20 &519420031
+Camera:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 519420028}
+  m_Enabled: 1
+  serializedVersion: 2
+  m_ClearFlags: 2
+  m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
+  m_projectionMatrixMode: 1
+  m_GateFitMode: 2
+  m_FOVAxisMode: 0
+  m_SensorSize: {x: 36, y: 24}
+  m_LensShift: {x: 0, y: 0}
+  m_FocalLength: 50
+  m_NormalizedViewPortRect:
+    serializedVersion: 2
+    x: 0
+    y: 0
+    width: 1
+    height: 1
+  near clip plane: 0.3
+  far clip plane: 1000
+  field of view: 60
+  orthographic: 1
+  orthographic size: 5
+  m_Depth: -1
+  m_CullingMask:
+    serializedVersion: 2
+    m_Bits: 4294967295
+  m_RenderingPath: -1
+  m_TargetTexture: {fileID: 0}
+  m_TargetDisplay: 0
+  m_TargetEye: 0
+  m_HDR: 1
+  m_AllowMSAA: 0
+  m_AllowDynamicResolution: 0
+  m_ForceIntoRT: 0
+  m_OcclusionCulling: 0
+  m_StereoConvergence: 10
+  m_StereoSeparation: 0.022
+--- !u!81 &519420029
+AudioListener:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 519420028}
+  m_Enabled: 1
+--- !u!114 &519420033
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 519420028}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_RenderShadows: 1
+  m_RequiresDepthTextureOption: 2
+  m_RequiresOpaqueTextureOption: 2
+  m_CameraType: 0
+  m_Cameras: []
+  m_RendererIndex: -1
+  m_VolumeLayerMask:
+    serializedVersion: 2
+    m_Bits: 1
+  m_VolumeTrigger: {fileID: 0}
+  m_VolumeFrameworkUpdateModeOption: 2
+  m_RenderPostProcessing: 0
+  m_Antialiasing: 0
+  m_AntialiasingQuality: 2
+  m_StopNaN: 0
+  m_Dithering: 0
+  m_ClearDepth: 1
+  m_AllowXRRendering: 1
+  m_RequiresDepthTexture: 0
+  m_RequiresColorTexture: 0
+  m_Version: 2
+--- !u!1 &1034764853
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1034764856}
+  - component: {fileID: 1034764855}
+  - component: {fileID: 1034764854}
+  m_Layer: 0
+  m_Name: EventSystem
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &1034764856
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1034764853}
+  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: 4591470911106441113}
+  m_RootOrder: 4
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1034764855
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1034764853}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_FirstSelected: {fileID: 0}
+  m_sendNavigationEvents: 1
+  m_DragThreshold: 10
+--- !u!114 &1034764854
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1034764853}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_SendPointerHoverToParent: 1
+  m_HorizontalAxis: Horizontal
+  m_VerticalAxis: Vertical
+  m_SubmitButton: Submit
+  m_CancelButton: Cancel
+  m_InputActionsPerSecond: 10
+  m_RepeatDelay: 0.5
+  m_ForceModuleActive: 0
+--- !u!1 &640889596032866117
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 4186162541877215729}
+  m_Layer: 5
+  m_Name: MiddleRoot
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &4186162541877215729
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 640889596032866117}
+  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: 4591470911106441113}
+  m_RootOrder: 2
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!1 &929972570575183252
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 5816015004330141560}
+  m_Layer: 5
+  m_Name: TopRoot
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &5816015004330141560
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 929972570575183252}
+  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: 4591470911106441113}
+  m_RootOrder: 3
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!1 &4591470911106441109
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 4591470911106441113}
+  - component: {fileID: 4591470911106441114}
+  - component: {fileID: 4591470911106441115}
+  - component: {fileID: 4591470911106441108}
+  - component: {fileID: 5681877715498747450}
+  m_Layer: 5
+  m_Name: Canvas
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &4591470911106441113
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4591470911106441109}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 0, y: 0, z: 0}
+  m_ConstrainProportionsScale: 0
+  m_Children:
+  - {fileID: 519420032}
+  - {fileID: 1712368434238331815}
+  - {fileID: 4186162541877215729}
+  - {fileID: 5816015004330141560}
+  - {fileID: 1034764856}
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0, y: 0}
+--- !u!223 &4591470911106441114
+Canvas:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4591470911106441109}
+  m_Enabled: 1
+  serializedVersion: 3
+  m_RenderMode: 1
+  m_Camera: {fileID: 519420031}
+  m_PlaneDistance: 100
+  m_PixelPerfect: 0
+  m_ReceivesEvents: 1
+  m_OverrideSorting: 0
+  m_OverridePixelPerfect: 0
+  m_SortingBucketNormalizedSize: 0
+  m_AdditionalShaderChannelsFlag: 0
+  m_SortingLayerID: 0
+  m_SortingOrder: 0
+  m_TargetDisplay: 0
+--- !u!114 &4591470911106441115
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4591470911106441109}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_UiScaleMode: 1
+  m_ReferencePixelsPerUnit: 100
+  m_ScaleFactor: 1
+  m_ReferenceResolution: {x: 750, y: 1624}
+  m_ScreenMatchMode: 0
+  m_MatchWidthOrHeight: 1
+  m_PhysicalUnit: 3
+  m_FallbackScreenDPI: 96
+  m_DefaultSpriteDPI: 96
+  m_DynamicPixelsPerUnit: 1
+  m_PresetInfoIsWorld: 0
+--- !u!114 &4591470911106441108
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4591470911106441109}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_IgnoreReversedGraphics: 1
+  m_BlockingObjects: 0
+  m_BlockingMask:
+    serializedVersion: 2
+    m_Bits: 4294967295
+--- !u!114 &5681877715498747450
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4591470911106441109}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4810a0857c909354fa00c3aafdeac753, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  data:
+  - key: BottomRoot
+    gameObject: {fileID: 1712368434238331815}
+    isAssetBundle: 0
+    isList: 0
+    ListCollectorDatas: []
+  - key: MiddleRoot
+    gameObject: {fileID: 4186162541877215729}
+    isAssetBundle: 0
+    isList: 0
+    ListCollectorDatas: []
+  - key: TopRoot
+    gameObject: {fileID: 5816015004330141560}
+    isAssetBundle: 0
+    isList: 0
+    ListCollectorDatas: []
+  - key: MainCamera
+    gameObject: {fileID: 519420031}
+    isAssetBundle: 0
+    isList: 0
+    ListCollectorDatas: []
+  isAssetBundle: 0
+--- !u!1 &8674997460095536601
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1712368434238331815}
+  m_Layer: 5
+  m_Name: BottomRoot
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1712368434238331815
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8674997460095536601}
+  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: 4591470911106441113}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}

+ 7 - 0
Assets/Resources/Canvas.prefab.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: e86dcd437485dcf489e10e984717880b
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Resources/Config.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 613dcd4c8b1b3e84590e1932e6e89a39
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 44 - 0
Assets/Resources/Config/PoetConfig.json

@@ -0,0 +1,44 @@
+{
+  "configList": [
+    {
+      "ID": 1,
+      "name": "早发白帝城"
+    },
+    {
+      "ID": 2,
+      "name": "登高"
+    },
+    {
+      "ID": 3,
+      "name": "夜雨寄北"
+    },
+    {
+      "ID": 4,
+      "name": "竹枝词四首·其一"
+    },
+    {
+      "ID": 5,
+      "name": "离思五首·其四"
+    },
+    {
+      "ID": 6,
+      "name": "武陵景"
+    },
+    {
+      "ID": 7,
+      "name": "竹枝词"
+    },
+    {
+      "ID": 8,
+      "name": "重庆府"
+    },
+    {
+      "ID": 9,
+      "name": "峨眉山月歌"
+    },
+    {
+      "ID": 10,
+      "name": "龙门峡"
+    }
+  ]
+}

+ 7 - 0
Assets/Resources/Config/PoetConfig.json.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: d4c8d26250729d5489b3991eacd1deb5
+TextScriptImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 68 - 0
Assets/Resources/Config/PoetryConfig.json

@@ -0,0 +1,68 @@
+{
+  "configList": [
+    {
+      "ID": 1,
+      "name": "李白",
+      "Poets": [
+        1,
+        9
+      ]
+    },
+    {
+      "ID": 2,
+      "name": "杜甫",
+      "Poets": [
+        2
+      ]
+    },
+    {
+      "ID": 3,
+      "name": "李商隐",
+      "Poets": [
+        3
+      ]
+    },
+    {
+      "ID": 4,
+      "name": "白居易",
+      "Poets": [
+        4
+      ]
+    },
+    {
+      "ID": 5,
+      "name": "元稹",
+      "Poets": [
+        5
+      ]
+    },
+    {
+      "ID": 6,
+      "name": "寇准",
+      "Poets": [
+        6
+      ]
+    },
+    {
+      "ID": 7,
+      "name": "黄庭坚",
+      "Poets": [
+        7
+      ]
+    },
+    {
+      "ID": 8,
+      "name": "何明礼",
+      "Poets": [
+        8
+      ]
+    },
+    {
+      "ID": 9,
+      "name": "陈子昂",
+      "Poets": [
+        10
+      ]
+    }
+  ]
+}

+ 7 - 0
Assets/Resources/Config/PoetryConfig.json.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 5f9ebfdd186345346919c66ad695902b
+TextScriptImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 62 - 0
Assets/Resources/Config/RegionConfig.json

@@ -0,0 +1,62 @@
+{
+  "configList": [
+    {
+      "ID": 1,
+      "name": "江津",
+      "Poets": [
+        10
+      ]
+    },
+    {
+      "ID": 2,
+      "name": "渝中",
+      "Poets": [
+        9
+      ]
+    },
+    {
+      "ID": 3,
+      "name": "奉节",
+      "Poets": [
+        1,
+        2
+      ]
+    },
+    {
+      "ID": 4,
+      "name": "忠县",
+      "Poets": [
+        4
+      ]
+    },
+    {
+      "ID": 5,
+      "name": "巫山",
+      "Poets": [
+        5
+      ]
+    },
+    {
+      "ID": 6,
+      "name": "北碚",
+      "Poets": [
+        3,
+        8
+      ]
+    },
+    {
+      "ID": 7,
+      "name": "黔江",
+      "Poets": [
+        6
+      ]
+    },
+    {
+      "ID": 8,
+      "name": "彭水",
+      "Poets": [
+        7
+      ]
+    }
+  ]
+}

+ 7 - 0
Assets/Resources/Config/RegionConfig.json.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 0308391a85fa5dd43b70b628a9ae687c
+TextScriptImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Resources/Sprite.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: acf948c497597aa40a8475f8f6e4ace5
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Resources/UICom.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 68a618ecf1f33b04faa423b3d0c151b3
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 386 - 0
Assets/Resources/UICom/PoetItem.prefab

@@ -0,0 +1,386 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &7885926103786716838
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 7885926103786716837}
+  - component: {fileID: 7885926103786716858}
+  - component: {fileID: 7885926103786716857}
+  - component: {fileID: 7885926103786716856}
+  m_Layer: 5
+  m_Name: PoetItem
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &7885926103786716837
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7885926103786716838}
+  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: 7885926104290982342}
+  - {fileID: 7885926105505512435}
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 580, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &7885926103786716858
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7885926103786716838}
+  m_CullTransparentMesh: 1
+--- !u!114 &7885926103786716857
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7885926103786716838}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Padding:
+    m_Left: 0
+    m_Right: 0
+    m_Top: 0
+    m_Bottom: 0
+  m_ChildAlignment: 0
+  m_Spacing: 0
+  m_ChildForceExpandWidth: 1
+  m_ChildForceExpandHeight: 1
+  m_ChildControlWidth: 0
+  m_ChildControlHeight: 0
+  m_ChildScaleWidth: 0
+  m_ChildScaleHeight: 0
+  m_ReverseArrangement: 0
+--- !u!114 &7885926103786716856
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7885926103786716838}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4810a0857c909354fa00c3aafdeac753, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  data:
+  - key: PoetryItemRoot
+    gameObject: {fileID: 7885926105505512435}
+    isAssetBundle: 0
+    isList: 0
+    ListCollectorDatas: []
+  - key: Text_PoetName
+    gameObject: {fileID: 7885926104202796816}
+    isAssetBundle: 0
+    isList: 0
+    ListCollectorDatas: []
+  - key: Btn_Poet
+    gameObject: {fileID: 7885926104290982341}
+    isAssetBundle: 0
+    isList: 0
+    ListCollectorDatas: []
+  isAssetBundle: 0
+--- !u!1 &7885926104202796818
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 7885926104202796817}
+  - component: {fileID: 7885926104202796823}
+  - component: {fileID: 7885926104202796816}
+  m_Layer: 5
+  m_Name: Text_PoetName
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &7885926104202796817
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7885926104202796818}
+  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: 7885926104290982342}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 1}
+  m_AnchoredPosition: {x: 21.924988, y: 0}
+  m_SizeDelta: {x: 43.85, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &7885926104202796823
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7885926104202796818}
+  m_CullTransparentMesh: 1
+--- !u!114 &7885926104202796816
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7885926104202796818}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 0.64705884, g: 0.14509805, b: 0.10196079, 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_FontData:
+    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+    m_FontSize: 30
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 2
+    m_MaxSize: 40
+    m_Alignment: 4
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: "\u674E\n\n\u767D"
+--- !u!1 &7885926104290982343
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 7885926104290982342}
+  - component: {fileID: 7885926104290982363}
+  - component: {fileID: 7885926104290982340}
+  - component: {fileID: 7885926104290982341}
+  m_Layer: 5
+  m_Name: Btn_Poet
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &7885926104290982342
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7885926104290982343}
+  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: 7885926104202796817}
+  m_Father: {fileID: 7885926103786716837}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 580, y: 180}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &7885926104290982363
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7885926104290982343}
+  m_CullTransparentMesh: 1
+--- !u!114 &7885926104290982340
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7885926104290982343}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 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!114 &7885926104290982341
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7885926104290982343}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_WrapAround: 0
+    m_SelectOnUp: {fileID: 0}
+    m_SelectOnDown: {fileID: 0}
+    m_SelectOnLeft: {fileID: 0}
+    m_SelectOnRight: {fileID: 0}
+  m_Transition: 1
+  m_Colors:
+    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+    m_ColorMultiplier: 1
+    m_FadeDuration: 0.1
+  m_SpriteState:
+    m_HighlightedSprite: {fileID: 0}
+    m_PressedSprite: {fileID: 0}
+    m_SelectedSprite: {fileID: 0}
+    m_DisabledSprite: {fileID: 0}
+  m_AnimationTriggers:
+    m_NormalTrigger: Normal
+    m_HighlightedTrigger: Highlighted
+    m_PressedTrigger: Pressed
+    m_SelectedTrigger: Selected
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 7885926104290982340}
+  m_OnClick:
+    m_PersistentCalls:
+      m_Calls: []
+--- !u!1 &7885926105505512444
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 7885926105505512435}
+  - component: {fileID: 7885926105505512433}
+  - component: {fileID: 7885926105505512434}
+  m_Layer: 5
+  m_Name: PoetryItemRoot
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &7885926105505512435
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7885926105505512444}
+  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: 7885926103786716837}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 290, y: 0}
+  m_SizeDelta: {x: 580, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &7885926105505512433
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7885926105505512444}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Padding:
+    m_Left: 0
+    m_Right: 0
+    m_Top: 0
+    m_Bottom: 0
+  m_ChildAlignment: 4
+  m_Spacing: 12.13
+  m_ChildForceExpandWidth: 1
+  m_ChildForceExpandHeight: 1
+  m_ChildControlWidth: 0
+  m_ChildControlHeight: 0
+  m_ChildScaleWidth: 0
+  m_ChildScaleHeight: 0
+  m_ReverseArrangement: 0
+--- !u!114 &7885926105505512434
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7885926105505512444}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_HorizontalFit: 0
+  m_VerticalFit: 2

+ 7 - 0
Assets/Resources/UICom/PoetItem.prefab.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: c30d1820df7dab444a94ae886e627ddf
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 229 - 0
Assets/Resources/UICom/PoetryItem.prefab

@@ -0,0 +1,229 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &4136482331172426477
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 4136482331172426474}
+  - component: {fileID: 4136482331172426472}
+  - component: {fileID: 4136482331172426475}
+  - component: {fileID: 2710642069802830993}
+  - component: {fileID: 4136482331172426473}
+  m_Layer: 5
+  m_Name: PoetryItem
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &4136482331172426474
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4136482331172426477}
+  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: 4136482331911062156}
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 560, y: 180}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &4136482331172426472
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4136482331172426477}
+  m_CullTransparentMesh: 1
+--- !u!114 &4136482331172426475
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4136482331172426477}
+  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.4186345, g: 0.7075472, b: 0.3381986, 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!114 &2710642069802830993
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4136482331172426477}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_WrapAround: 0
+    m_SelectOnUp: {fileID: 0}
+    m_SelectOnDown: {fileID: 0}
+    m_SelectOnLeft: {fileID: 0}
+    m_SelectOnRight: {fileID: 0}
+  m_Transition: 1
+  m_Colors:
+    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+    m_ColorMultiplier: 1
+    m_FadeDuration: 0.1
+  m_SpriteState:
+    m_HighlightedSprite: {fileID: 0}
+    m_PressedSprite: {fileID: 0}
+    m_SelectedSprite: {fileID: 0}
+    m_DisabledSprite: {fileID: 0}
+  m_AnimationTriggers:
+    m_NormalTrigger: Normal
+    m_HighlightedTrigger: Highlighted
+    m_PressedTrigger: Pressed
+    m_SelectedTrigger: Selected
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 4136482331172426475}
+  m_OnClick:
+    m_PersistentCalls:
+      m_Calls: []
+--- !u!114 &4136482331172426473
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4136482331172426477}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4810a0857c909354fa00c3aafdeac753, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  data:
+  - key: Text_PoetryName
+    gameObject: {fileID: 4136482331911062157}
+    isAssetBundle: 0
+    isList: 0
+    ListCollectorDatas: []
+  - key: Btn_PoetryItem
+    gameObject: {fileID: 2710642069802830993}
+    isAssetBundle: 0
+    isList: 0
+    ListCollectorDatas: []
+  isAssetBundle: 0
+--- !u!1 &4136482331911062159
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 4136482331911062156}
+  - component: {fileID: 4136482331911062154}
+  - component: {fileID: 4136482331911062157}
+  m_Layer: 5
+  m_Name: Text_PoetryName
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &4136482331911062156
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4136482331911062159}
+  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: 4136482331172426474}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 360, y: 100}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &4136482331911062154
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4136482331911062159}
+  m_CullTransparentMesh: 1
+--- !u!114 &4136482331911062157
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4136482331911062159}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 0.9921569, g: 0.98823535, b: 0.97647065, 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_FontData:
+    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+    m_FontSize: 40
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 0
+    m_MaxSize: 40
+    m_Alignment: 4
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: "\u300A\u767D\u5E1D\u300B"

+ 7 - 0
Assets/Resources/UICom/PoetryItem.prefab.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 5835b6e83940dd44b9e435a2b8799fbe
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 413 - 0
Assets/Resources/UICom/RegionItem.prefab

@@ -0,0 +1,413 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &5027021467908211502
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 5027021467908211501}
+  - component: {fileID: 5027021467908211506}
+  - component: {fileID: 5027021467908211505}
+  - component: {fileID: 5027021467908211504}
+  m_Layer: 5
+  m_Name: RegionItem
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &5027021467908211501
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5027021467908211502}
+  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: 5027021468546827342}
+  - {fileID: 5027021469744612987}
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 580, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &5027021467908211506
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5027021467908211502}
+  m_CullTransparentMesh: 1
+--- !u!114 &5027021467908211505
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5027021467908211502}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Padding:
+    m_Left: 0
+    m_Right: 0
+    m_Top: 0
+    m_Bottom: 0
+  m_ChildAlignment: 0
+  m_Spacing: 0
+  m_ChildForceExpandWidth: 1
+  m_ChildForceExpandHeight: 1
+  m_ChildControlWidth: 0
+  m_ChildControlHeight: 1
+  m_ChildScaleWidth: 0
+  m_ChildScaleHeight: 0
+  m_ReverseArrangement: 0
+--- !u!114 &5027021467908211504
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5027021467908211502}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4810a0857c909354fa00c3aafdeac753, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  data:
+  - key: Btn_Region
+    gameObject: {fileID: 5027021468546827341}
+    isAssetBundle: 0
+    isList: 0
+    ListCollectorDatas: []
+  - key: Text_RegionName
+    gameObject: {fileID: 5027021468299272856}
+    isAssetBundle: 0
+    isList: 0
+    ListCollectorDatas: []
+  - key: PoetryItemRoot
+    gameObject: {fileID: 5027021469744612987}
+    isAssetBundle: 0
+    isList: 0
+    ListCollectorDatas: []
+  isAssetBundle: 0
+--- !u!1 &5027021468299272858
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 5027021468299272857}
+  - component: {fileID: 5027021468299272863}
+  - component: {fileID: 5027021468299272856}
+  m_Layer: 5
+  m_Name: Text_RegionName
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &5027021468299272857
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5027021468299272858}
+  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: 5027021468546827342}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 43.85, y: 180}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &5027021468299272863
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5027021468299272858}
+  m_CullTransparentMesh: 1
+--- !u!114 &5027021468299272856
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5027021468299272858}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 0.64705884, g: 0.14509805, b: 0.10196079, 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_FontData:
+    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+    m_FontSize: 30
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 2
+    m_MaxSize: 40
+    m_Alignment: 4
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: "\u5317\n\n\u789A"
+--- !u!1 &5027021468546827343
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 5027021468546827342}
+  - component: {fileID: 5027021468546827347}
+  - component: {fileID: 5027021468546827340}
+  - component: {fileID: 5027021468546827341}
+  - component: {fileID: 8273900408567291455}
+  m_Layer: 5
+  m_Name: Btn_Region
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &5027021468546827342
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5027021468546827343}
+  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: 5027021468299272857}
+  m_Father: {fileID: 5027021467908211501}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 580, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &5027021468546827347
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5027021468546827343}
+  m_CullTransparentMesh: 1
+--- !u!114 &5027021468546827340
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5027021468546827343}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 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!114 &5027021468546827341
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5027021468546827343}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_WrapAround: 0
+    m_SelectOnUp: {fileID: 0}
+    m_SelectOnDown: {fileID: 0}
+    m_SelectOnLeft: {fileID: 0}
+    m_SelectOnRight: {fileID: 0}
+  m_Transition: 1
+  m_Colors:
+    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+    m_ColorMultiplier: 1
+    m_FadeDuration: 0.1
+  m_SpriteState:
+    m_HighlightedSprite: {fileID: 0}
+    m_PressedSprite: {fileID: 0}
+    m_SelectedSprite: {fileID: 0}
+    m_DisabledSprite: {fileID: 0}
+  m_AnimationTriggers:
+    m_NormalTrigger: Normal
+    m_HighlightedTrigger: Highlighted
+    m_PressedTrigger: Pressed
+    m_SelectedTrigger: Selected
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 5027021468546827340}
+  m_OnClick:
+    m_PersistentCalls:
+      m_Calls: []
+--- !u!114 &8273900408567291455
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5027021468546827343}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Padding:
+    m_Left: 0
+    m_Right: 0
+    m_Top: 0
+    m_Bottom: 0
+  m_ChildAlignment: 0
+  m_Spacing: 0
+  m_ChildForceExpandWidth: 1
+  m_ChildForceExpandHeight: 1
+  m_ChildControlWidth: 0
+  m_ChildControlHeight: 0
+  m_ChildScaleWidth: 0
+  m_ChildScaleHeight: 0
+  m_ReverseArrangement: 0
+--- !u!1 &5027021469744612980
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 5027021469744612987}
+  - component: {fileID: 5027021469744612985}
+  - component: {fileID: 5027021469744612986}
+  m_Layer: 5
+  m_Name: PoetryItemRoot
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &5027021469744612987
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5027021469744612980}
+  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: 5027021467908211501}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 580, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &5027021469744612985
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5027021469744612980}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Padding:
+    m_Left: 0
+    m_Right: 0
+    m_Top: 0
+    m_Bottom: 0
+  m_ChildAlignment: 4
+  m_Spacing: 12.13
+  m_ChildForceExpandWidth: 1
+  m_ChildForceExpandHeight: 1
+  m_ChildControlWidth: 0
+  m_ChildControlHeight: 0
+  m_ChildScaleWidth: 0
+  m_ChildScaleHeight: 0
+  m_ReverseArrangement: 0
+--- !u!114 &5027021469744612986
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5027021469744612980}
+  m_Enabled: 0
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_HorizontalFit: 0
+  m_VerticalFit: 2

+ 7 - 0
Assets/Resources/UICom/RegionItem.prefab.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: e6488a3ffb714544b839b3f20ccf3b0c
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Resources/UIPanel.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 2ddbd024505979148af3b4cdf1479964
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 2047 - 0
Assets/Resources/UIPanel/CSGPanel.prefab

@@ -0,0 +1,2047 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &162520059304478829
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 162520059304478828}
+  - component: {fileID: 162520059304478830}
+  - component: {fileID: 162520059304478831}
+  m_Layer: 5
+  m_Name: Image
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &162520059304478828
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520059304478829}
+  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: 162520061382007215}
+  m_RootOrder: 6
+  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: -194}
+  m_SizeDelta: {x: 600, y: 1100}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &162520059304478830
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520059304478829}
+  m_CullTransparentMesh: 1
+--- !u!114 &162520059304478831
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520059304478829}
+  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.8196079, g: 0.7725491, b: 0.6509804, 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 &162520059434069155
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 162520059434069154}
+  - component: {fileID: 162520059434069159}
+  - component: {fileID: 162520059434069156}
+  - component: {fileID: 162520059434069157}
+  m_Layer: 5
+  m_Name: Btn_DQ
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &162520059434069154
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520059434069155}
+  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: 162520061053750348}
+  m_Father: {fileID: 162520061382007215}
+  m_RootOrder: 4
+  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: -169.9, y: 426.2}
+  m_SizeDelta: {x: 260, y: 100}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &162520059434069159
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520059434069155}
+  m_CullTransparentMesh: 1
+--- !u!114 &162520059434069156
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520059434069155}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
+  m_Type: 1
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &162520059434069157
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520059434069155}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_WrapAround: 0
+    m_SelectOnUp: {fileID: 0}
+    m_SelectOnDown: {fileID: 0}
+    m_SelectOnLeft: {fileID: 0}
+    m_SelectOnRight: {fileID: 0}
+  m_Transition: 1
+  m_Colors:
+    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+    m_ColorMultiplier: 1
+    m_FadeDuration: 0.1
+  m_SpriteState:
+    m_HighlightedSprite: {fileID: 0}
+    m_PressedSprite: {fileID: 0}
+    m_SelectedSprite: {fileID: 0}
+    m_DisabledSprite: {fileID: 0}
+  m_AnimationTriggers:
+    m_NormalTrigger: Normal
+    m_HighlightedTrigger: Highlighted
+    m_PressedTrigger: Pressed
+    m_SelectedTrigger: Selected
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 162520059434069156}
+  m_OnClick:
+    m_PersistentCalls:
+      m_Calls: []
+--- !u!1 &162520059616994498
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 162520059616994501}
+  - component: {fileID: 162520059616994503}
+  - component: {fileID: 162520059616994500}
+  m_Layer: 5
+  m_Name: RegionContent
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &162520059616994501
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520059616994498}
+  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: 162520061062754338}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 1}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0, y: 1}
+--- !u!114 &162520059616994503
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520059616994498}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Padding:
+    m_Left: 0
+    m_Right: 0
+    m_Top: 21
+    m_Bottom: 0
+  m_ChildAlignment: 0
+  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!114 &162520059616994500
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520059616994498}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_HorizontalFit: 0
+  m_VerticalFit: 2
+--- !u!1 &162520059627036001
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 162520059627036000}
+  - component: {fileID: 162520059627036002}
+  - component: {fileID: 162520059627036003}
+  m_Layer: 5
+  m_Name: Handle
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &162520059627036000
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520059627036001}
+  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: 162520060821749008}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 20, y: 20}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &162520059627036002
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520059627036001}
+  m_CullTransparentMesh: 1
+--- !u!114 &162520059627036003
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520059627036001}
+  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.3137255, g: 0.20784315, b: 0.13725491, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
+  m_Type: 1
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!1 &162520059686933852
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 162520059686933855}
+  - component: {fileID: 162520059686933825}
+  - component: {fileID: 162520059686933854}
+  m_Layer: 5
+  m_Name: Text (Legacy)
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &162520059686933855
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520059686933852}
+  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: 162520061382007215}
+  m_RootOrder: 2
+  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: 551}
+  m_SizeDelta: {x: 320, y: 100}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &162520059686933825
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520059686933852}
+  m_CullTransparentMesh: 1
+--- !u!114 &162520059686933854
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520059686933852}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 0.854902, g: 0.9490197, 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_FontData:
+    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+    m_FontSize: 50
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 5
+    m_MaxSize: 50
+    m_Alignment: 4
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: "\u85CF\u8BD7\u9601"
+--- !u!1 &162520059841664600
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 162520059841664603}
+  m_Layer: 5
+  m_Name: Sliding Area
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &162520059841664603
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520059841664600}
+  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: 162520060628781155}
+  m_Father: {fileID: 162520060187974436}
+  m_RootOrder: 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: -20, y: -20}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!1 &162520059856881419
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 162520059856881418}
+  - component: {fileID: 162520059856881423}
+  - component: {fileID: 162520059856881420}
+  - component: {fileID: 162520059856881421}
+  m_Layer: 5
+  m_Name: Scrollbar Vertical
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &162520059856881418
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520059856881419}
+  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: 162520060821749008}
+  m_Father: {fileID: 162520061078572552}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 1, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 20, y: 0}
+  m_Pivot: {x: 1, y: 0}
+--- !u!222 &162520059856881423
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520059856881419}
+  m_CullTransparentMesh: 1
+--- !u!114 &162520059856881420
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520059856881419}
+  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.80392164, g: 0.7568628, b: 0.64705884, 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: 10907, guid: 0000000000000000f000000000000000, type: 0}
+  m_Type: 1
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &162520059856881421
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520059856881419}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_WrapAround: 0
+    m_SelectOnUp: {fileID: 0}
+    m_SelectOnDown: {fileID: 0}
+    m_SelectOnLeft: {fileID: 0}
+    m_SelectOnRight: {fileID: 0}
+  m_Transition: 1
+  m_Colors:
+    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+    m_ColorMultiplier: 1
+    m_FadeDuration: 0.1
+  m_SpriteState:
+    m_HighlightedSprite: {fileID: 0}
+    m_PressedSprite: {fileID: 0}
+    m_SelectedSprite: {fileID: 0}
+    m_DisabledSprite: {fileID: 0}
+  m_AnimationTriggers:
+    m_NormalTrigger: Normal
+    m_HighlightedTrigger: Highlighted
+    m_PressedTrigger: Pressed
+    m_SelectedTrigger: Selected
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 162520059627036003}
+  m_HandleRect: {fileID: 162520059627036000}
+  m_Direction: 3
+  m_Value: 0
+  m_Size: 1
+  m_NumberOfSteps: 0
+  m_OnValueChanged:
+    m_PersistentCalls:
+      m_Calls: []
+--- !u!1 &162520060102194513
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 162520060102194512}
+  - component: {fileID: 162520060102194514}
+  - component: {fileID: 162520060102194515}
+  m_Layer: 5
+  m_Name: Image
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &162520060102194512
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520060102194513}
+  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: 162520061382007215}
+  m_RootOrder: 1
+  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: 498.5}
+  m_SizeDelta: {x: 600, y: 258.99}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &162520060102194514
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520060102194513}
+  m_CullTransparentMesh: 1
+--- !u!114 &162520060102194515
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520060102194513}
+  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.32156864, g: 0.20000002, b: 0.1254902, 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 &162520060187974437
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 162520060187974436}
+  - component: {fileID: 162520060187974441}
+  - component: {fileID: 162520060187974438}
+  - component: {fileID: 162520060187974439}
+  m_Layer: 5
+  m_Name: Scrollbar Vertical
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &162520060187974436
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520060187974437}
+  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: 162520059841664603}
+  m_Father: {fileID: 162520061081020703}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 1, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 20, y: 0}
+  m_Pivot: {x: 1, y: 0}
+--- !u!222 &162520060187974441
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520060187974437}
+  m_CullTransparentMesh: 1
+--- !u!114 &162520060187974438
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520060187974437}
+  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.80392164, g: 0.7568628, b: 0.64705884, 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: 10907, guid: 0000000000000000f000000000000000, type: 0}
+  m_Type: 1
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &162520060187974439
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520060187974437}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_WrapAround: 0
+    m_SelectOnUp: {fileID: 0}
+    m_SelectOnDown: {fileID: 0}
+    m_SelectOnLeft: {fileID: 0}
+    m_SelectOnRight: {fileID: 0}
+  m_Transition: 1
+  m_Colors:
+    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+    m_ColorMultiplier: 1
+    m_FadeDuration: 0.1
+  m_SpriteState:
+    m_HighlightedSprite: {fileID: 0}
+    m_PressedSprite: {fileID: 0}
+    m_SelectedSprite: {fileID: 0}
+    m_DisabledSprite: {fileID: 0}
+  m_AnimationTriggers:
+    m_NormalTrigger: Normal
+    m_HighlightedTrigger: Highlighted
+    m_PressedTrigger: Pressed
+    m_SelectedTrigger: Selected
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 162520060628781154}
+  m_HandleRect: {fileID: 162520060628781155}
+  m_Direction: 3
+  m_Value: 0
+  m_Size: 1
+  m_NumberOfSteps: 0
+  m_OnValueChanged:
+    m_PersistentCalls:
+      m_Calls: []
+--- !u!1 &162520060217145770
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 162520060217145773}
+  - component: {fileID: 162520060217145774}
+  - component: {fileID: 162520060217145775}
+  - component: {fileID: 162520060217145772}
+  m_Layer: 5
+  m_Name: Btn_SR
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &162520060217145773
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520060217145770}
+  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: 162520060553314099}
+  m_Father: {fileID: 162520061382007215}
+  m_RootOrder: 5
+  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: 152.9, y: 426.2}
+  m_SizeDelta: {x: 260, y: 100}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &162520060217145774
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520060217145770}
+  m_CullTransparentMesh: 1
+--- !u!114 &162520060217145775
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520060217145770}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
+  m_Type: 1
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &162520060217145772
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520060217145770}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_WrapAround: 0
+    m_SelectOnUp: {fileID: 0}
+    m_SelectOnDown: {fileID: 0}
+    m_SelectOnLeft: {fileID: 0}
+    m_SelectOnRight: {fileID: 0}
+  m_Transition: 1
+  m_Colors:
+    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+    m_ColorMultiplier: 1
+    m_FadeDuration: 0.1
+  m_SpriteState:
+    m_HighlightedSprite: {fileID: 0}
+    m_PressedSprite: {fileID: 0}
+    m_SelectedSprite: {fileID: 0}
+    m_DisabledSprite: {fileID: 0}
+  m_AnimationTriggers:
+    m_NormalTrigger: Normal
+    m_HighlightedTrigger: Highlighted
+    m_PressedTrigger: Pressed
+    m_SelectedTrigger: Selected
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 162520060217145775}
+  m_OnClick:
+    m_PersistentCalls:
+      m_Calls: []
+--- !u!1 &162520060304045607
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 162520060304045606}
+  - component: {fileID: 162520060304045608}
+  - component: {fileID: 162520060304045609}
+  m_Layer: 5
+  m_Name: Bg
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &162520060304045606
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520060304045607}
+  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: 162520061382007215}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &162520060304045608
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520060304045607}
+  m_CullTransparentMesh: 1
+--- !u!114 &162520060304045609
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520060304045607}
+  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.32156864, g: 0.2784314, b: 0.227451, 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 &162520060321877040
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 162520060321877043}
+  - component: {fileID: 162520060321877045}
+  - component: {fileID: 162520060321877042}
+  m_Layer: 5
+  m_Name: PoetContent
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &162520060321877043
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520060321877040}
+  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: 162520060484628876}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 1}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 21}
+  m_Pivot: {x: 0, y: 1}
+--- !u!114 &162520060321877045
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520060321877040}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Padding:
+    m_Left: 0
+    m_Right: 0
+    m_Top: 21
+    m_Bottom: 0
+  m_ChildAlignment: 0
+  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!114 &162520060321877042
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520060321877040}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_HorizontalFit: 0
+  m_VerticalFit: 2
+--- !u!1 &162520060484628877
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 162520060484628876}
+  - component: {fileID: 162520060484628913}
+  - component: {fileID: 162520060484628878}
+  - component: {fileID: 162520060484628879}
+  m_Layer: 5
+  m_Name: Viewport
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &162520060484628876
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520060484628877}
+  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: 162520060321877043}
+  m_Father: {fileID: 162520061081020703}
+  m_RootOrder: 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: -17, y: 0}
+  m_Pivot: {x: 0, y: 1}
+--- !u!222 &162520060484628913
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520060484628877}
+  m_CullTransparentMesh: 1
+--- !u!114 &162520060484628878
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520060484628877}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 10917, guid: 0000000000000000f000000000000000, type: 0}
+  m_Type: 1
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &162520060484628879
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520060484628877}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_ShowMaskGraphic: 0
+--- !u!1 &162520060553314096
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 162520060553314099}
+  - component: {fileID: 162520060553314101}
+  - component: {fileID: 162520060553314098}
+  m_Layer: 5
+  m_Name: Text (Legacy)
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &162520060553314099
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520060553314096}
+  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: 162520060217145773}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &162520060553314101
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520060553314096}
+  m_CullTransparentMesh: 1
+--- !u!114 &162520060553314098
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520060553314096}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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_FontData:
+    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+    m_FontSize: 40
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 4
+    m_MaxSize: 40
+    m_Alignment: 4
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: "\u8BD7\u4EBA"
+--- !u!1 &162520060628781152
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 162520060628781155}
+  - component: {fileID: 162520060628781157}
+  - component: {fileID: 162520060628781154}
+  m_Layer: 5
+  m_Name: Handle
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &162520060628781155
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520060628781152}
+  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: 162520059841664603}
+  m_RootOrder: 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: 20, y: 20}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &162520060628781157
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520060628781152}
+  m_CullTransparentMesh: 1
+--- !u!114 &162520060628781154
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520060628781152}
+  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.3137255, g: 0.20784315, b: 0.13725491, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
+  m_Type: 1
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!1 &162520060821749009
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 162520060821749008}
+  m_Layer: 5
+  m_Name: Sliding Area
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &162520060821749008
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520060821749009}
+  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: 162520059627036000}
+  m_Father: {fileID: 162520059856881418}
+  m_RootOrder: 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: -20, y: -20}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!1 &162520061036086637
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 162520061036086636}
+  - component: {fileID: 162520061036086638}
+  - component: {fileID: 162520061036086639}
+  m_Layer: 5
+  m_Name: Text (Legacy)
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &162520061036086636
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520061036086637}
+  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: 162520061177001166}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &162520061036086638
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520061036086637}
+  m_CullTransparentMesh: 1
+--- !u!114 &162520061036086639
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520061036086637}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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_FontData:
+    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+    m_FontSize: 40
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 4
+    m_MaxSize: 40
+    m_Alignment: 4
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: "\u8FD4\u56DE"
+--- !u!1 &162520061053750349
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 162520061053750348}
+  - component: {fileID: 162520061053750350}
+  - component: {fileID: 162520061053750351}
+  m_Layer: 5
+  m_Name: Text (Legacy)
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &162520061053750348
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520061053750349}
+  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: 162520059434069154}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &162520061053750350
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520061053750349}
+  m_CullTransparentMesh: 1
+--- !u!114 &162520061053750351
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520061053750349}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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_FontData:
+    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+    m_FontSize: 40
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 4
+    m_MaxSize: 40
+    m_Alignment: 4
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: "\u5730\u533A"
+--- !u!1 &162520061062754339
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 162520061062754338}
+  - component: {fileID: 162520061062754343}
+  - component: {fileID: 162520061062754340}
+  - component: {fileID: 162520061062754341}
+  m_Layer: 5
+  m_Name: Viewport
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &162520061062754338
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520061062754339}
+  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: 162520059616994501}
+  m_Father: {fileID: 162520061078572552}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0, y: 1}
+--- !u!222 &162520061062754343
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520061062754339}
+  m_CullTransparentMesh: 1
+--- !u!114 &162520061062754340
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520061062754339}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 10917, guid: 0000000000000000f000000000000000, type: 0}
+  m_Type: 1
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &162520061062754341
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520061062754339}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_ShowMaskGraphic: 0
+--- !u!1 &162520061078572553
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 162520061078572552}
+  - component: {fileID: 162520061078572557}
+  - component: {fileID: 162520061078572554}
+  - component: {fileID: 162520061078572555}
+  m_Layer: 5
+  m_Name: RegionScrollView
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &162520061078572552
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520061078572553}
+  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: 162520061062754338}
+  - {fileID: 162520059856881418}
+  m_Father: {fileID: 162520061382007215}
+  m_RootOrder: 7
+  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: -181}
+  m_SizeDelta: {x: 600, y: 1100}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &162520061078572557
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520061078572553}
+  m_CullTransparentMesh: 1
+--- !u!114 &162520061078572554
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520061078572553}
+  m_Enabled: 0
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 0.392}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
+  m_Type: 1
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &162520061078572555
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520061078572553}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Content: {fileID: 162520059616994501}
+  m_Horizontal: 0
+  m_Vertical: 1
+  m_MovementType: 1
+  m_Elasticity: 0.1
+  m_Inertia: 1
+  m_DecelerationRate: 0.135
+  m_ScrollSensitivity: 1
+  m_Viewport: {fileID: 162520061062754338}
+  m_HorizontalScrollbar: {fileID: 0}
+  m_VerticalScrollbar: {fileID: 162520059856881421}
+  m_HorizontalScrollbarVisibility: 2
+  m_VerticalScrollbarVisibility: 2
+  m_HorizontalScrollbarSpacing: -3
+  m_VerticalScrollbarSpacing: -3
+  m_OnValueChanged:
+    m_PersistentCalls:
+      m_Calls: []
+--- !u!1 &162520061081020700
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 162520061081020703}
+  - component: {fileID: 162520061081020672}
+  - component: {fileID: 162520061081020673}
+  - component: {fileID: 162520061081020702}
+  m_Layer: 5
+  m_Name: PoetScrollView
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 0
+--- !u!224 &162520061081020703
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520061081020700}
+  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: 162520060484628876}
+  - {fileID: 162520060187974436}
+  m_Father: {fileID: 162520061382007215}
+  m_RootOrder: 8
+  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: -181}
+  m_SizeDelta: {x: 600, y: 1100}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &162520061081020672
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520061081020700}
+  m_CullTransparentMesh: 1
+--- !u!114 &162520061081020673
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520061081020700}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 0.392}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
+  m_Type: 1
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &162520061081020702
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520061081020700}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Content: {fileID: 162520060321877043}
+  m_Horizontal: 0
+  m_Vertical: 1
+  m_MovementType: 1
+  m_Elasticity: 0.1
+  m_Inertia: 1
+  m_DecelerationRate: 0.135
+  m_ScrollSensitivity: 1
+  m_Viewport: {fileID: 162520060484628876}
+  m_HorizontalScrollbar: {fileID: 0}
+  m_VerticalScrollbar: {fileID: 162520060187974439}
+  m_HorizontalScrollbarVisibility: 2
+  m_VerticalScrollbarVisibility: 2
+  m_HorizontalScrollbarSpacing: -3
+  m_VerticalScrollbarSpacing: -3
+  m_OnValueChanged:
+    m_PersistentCalls:
+      m_Calls: []
+--- !u!1 &162520061177001167
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 162520061177001166}
+  - component: {fileID: 162520061177001203}
+  - component: {fileID: 162520061177001200}
+  - component: {fileID: 162520061177001201}
+  m_Layer: 5
+  m_Name: Btn_Return
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &162520061177001166
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520061177001167}
+  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: 162520061036086636}
+  m_Father: {fileID: 162520061382007215}
+  m_RootOrder: 3
+  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: -271, y: 676}
+  m_SizeDelta: {x: 180, y: 80}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &162520061177001203
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520061177001167}
+  m_CullTransparentMesh: 1
+--- !u!114 &162520061177001200
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520061177001167}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
+  m_Type: 1
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &162520061177001201
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520061177001167}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_WrapAround: 0
+    m_SelectOnUp: {fileID: 0}
+    m_SelectOnDown: {fileID: 0}
+    m_SelectOnLeft: {fileID: 0}
+    m_SelectOnRight: {fileID: 0}
+  m_Transition: 1
+  m_Colors:
+    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+    m_ColorMultiplier: 1
+    m_FadeDuration: 0.1
+  m_SpriteState:
+    m_HighlightedSprite: {fileID: 0}
+    m_PressedSprite: {fileID: 0}
+    m_SelectedSprite: {fileID: 0}
+    m_DisabledSprite: {fileID: 0}
+  m_AnimationTriggers:
+    m_NormalTrigger: Normal
+    m_HighlightedTrigger: Highlighted
+    m_PressedTrigger: Pressed
+    m_SelectedTrigger: Selected
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 162520061177001200}
+  m_OnClick:
+    m_PersistentCalls:
+      m_Calls: []
+--- !u!1 &162520061382007212
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 162520061382007215}
+  - component: {fileID: 162520061382007214}
+  m_Layer: 5
+  m_Name: CSGPanel
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &162520061382007215
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520061382007212}
+  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: 162520060304045606}
+  - {fileID: 162520060102194512}
+  - {fileID: 162520059686933855}
+  - {fileID: 162520061177001166}
+  - {fileID: 162520059434069154}
+  - {fileID: 162520060217145773}
+  - {fileID: 162520059304478828}
+  - {fileID: 162520061078572552}
+  - {fileID: 162520061081020703}
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 750, y: 1624}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &162520061382007214
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 162520061382007212}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4810a0857c909354fa00c3aafdeac753, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  data:
+  - key: Btn_DQ
+    gameObject: {fileID: 162520059434069157}
+    isAssetBundle: 0
+    isList: 0
+    ListCollectorDatas: []
+  - key: Btn_SR
+    gameObject: {fileID: 162520060217145772}
+    isAssetBundle: 0
+    isList: 0
+    ListCollectorDatas: []
+  - key: Btn_Return
+    gameObject: {fileID: 162520061177001201}
+    isAssetBundle: 0
+    isList: 0
+    ListCollectorDatas: []
+  - key: RegionScrollView
+    gameObject: {fileID: 162520061078572552}
+    isAssetBundle: 0
+    isList: 0
+    ListCollectorDatas: []
+  - key: PoetScrollView
+    gameObject: {fileID: 162520061081020703}
+    isAssetBundle: 0
+    isList: 0
+    ListCollectorDatas: []
+  - key: RegionContent
+    gameObject: {fileID: 162520059616994501}
+    isAssetBundle: 0
+    isList: 0
+    ListCollectorDatas: []
+  - key: PoetContent
+    gameObject: {fileID: 162520060321877043}
+    isAssetBundle: 0
+    isList: 0
+    ListCollectorDatas: []
+  isAssetBundle: 0

+ 7 - 0
Assets/Resources/UIPanel/CSGPanel.prefab.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: d92b05b610dd60541a8c639a8477748e
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 1026 - 0
Assets/Resources/UIPanel/MainScenePanel.prefab

@@ -0,0 +1,1026 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &1247748322323062980
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1247748322323062981}
+  - component: {fileID: 1247748322323062978}
+  m_Layer: 5
+  m_Name: BtnRoot
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1247748322323062981
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1247748322323062980}
+  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: 1247748322407921575}
+  - {fileID: 1247748323429688137}
+  - {fileID: 1247748323048268422}
+  m_Father: {fileID: 1247748322901743876}
+  m_RootOrder: 1
+  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: -723}
+  m_SizeDelta: {x: 703, y: 100}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1247748322323062978
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1247748322323062980}
+  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: 4
+  m_Spacing: 0
+  m_ChildForceExpandWidth: 1
+  m_ChildForceExpandHeight: 1
+  m_ChildControlWidth: 0
+  m_ChildControlHeight: 0
+  m_ChildScaleWidth: 0
+  m_ChildScaleHeight: 0
+  m_ReverseArrangement: 0
+--- !u!1 &1247748322351945541
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1247748322351945538}
+  - component: {fileID: 1247748322351945536}
+  - component: {fileID: 1247748322351945539}
+  m_Layer: 5
+  m_Name: Bg
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1247748322351945538
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1247748322351945541}
+  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: 1247748322901743876}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &1247748322351945536
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1247748322351945541}
+  m_CullTransparentMesh: 1
+--- !u!114 &1247748322351945539
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1247748322351945541}
+  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.2980598, g: 0.4811321, b: 0.42590564, 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 &1247748322407921574
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1247748322407921575}
+  - component: {fileID: 1247748322407921570}
+  - component: {fileID: 1247748322407921573}
+  - component: {fileID: 1247748322407921572}
+  m_Layer: 5
+  m_Name: Btn_Home
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1247748322407921575
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1247748322407921574}
+  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: 1247748322462051051}
+  m_Father: {fileID: 1247748322323062981}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 200, y: 100}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &1247748322407921570
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1247748322407921574}
+  m_CullTransparentMesh: 1
+--- !u!114 &1247748322407921573
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1247748322407921574}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
+  m_Type: 1
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &1247748322407921572
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1247748322407921574}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_WrapAround: 0
+    m_SelectOnUp: {fileID: 0}
+    m_SelectOnDown: {fileID: 0}
+    m_SelectOnLeft: {fileID: 0}
+    m_SelectOnRight: {fileID: 0}
+  m_Transition: 1
+  m_Colors:
+    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+    m_ColorMultiplier: 1
+    m_FadeDuration: 0.1
+  m_SpriteState:
+    m_HighlightedSprite: {fileID: 0}
+    m_PressedSprite: {fileID: 0}
+    m_SelectedSprite: {fileID: 0}
+    m_DisabledSprite: {fileID: 0}
+  m_AnimationTriggers:
+    m_NormalTrigger: Normal
+    m_HighlightedTrigger: Highlighted
+    m_PressedTrigger: Pressed
+    m_SelectedTrigger: Selected
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 1247748322407921573}
+  m_OnClick:
+    m_PersistentCalls:
+      m_Calls: []
+--- !u!1 &1247748322462051050
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1247748322462051051}
+  - component: {fileID: 1247748322462051049}
+  - component: {fileID: 1247748322462051048}
+  m_Layer: 5
+  m_Name: Text (Legacy)
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1247748322462051051
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1247748322462051050}
+  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: 1247748322407921575}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &1247748322462051049
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1247748322462051050}
+  m_CullTransparentMesh: 1
+--- !u!114 &1247748322462051048
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1247748322462051050}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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_FontData:
+    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+    m_FontSize: 40
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 0
+    m_MaxSize: 40
+    m_Alignment: 4
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: "\u5BB6\u56ED"
+--- !u!1 &1247748322901743879
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1247748322901743876}
+  - component: {fileID: 1247748322901743877}
+  m_Layer: 5
+  m_Name: MainScenePanel
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1247748322901743876
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1247748322901743879}
+  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: 1247748322351945538}
+  - {fileID: 1247748322323062981}
+  - {fileID: 1247748323308414400}
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 750, y: 1624}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1247748322901743877
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1247748322901743879}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4810a0857c909354fa00c3aafdeac753, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  data:
+  - key: Btn_Home
+    gameObject: {fileID: 1247748322407921572}
+    isAssetBundle: 0
+    isList: 0
+    ListCollectorDatas: []
+  - key: Btn_Visit
+    gameObject: {fileID: 1247748323429688150}
+    isAssetBundle: 0
+    isList: 0
+    ListCollectorDatas: []
+  - key: Btn_My
+    gameObject: {fileID: 1247748323048268423}
+    isAssetBundle: 0
+    isList: 0
+    ListCollectorDatas: []
+  - key: Btn_CSG
+    gameObject: {fileID: 1247748323308414401}
+    isAssetBundle: 0
+    isList: 0
+    ListCollectorDatas: []
+  isAssetBundle: 1
+--- !u!1 &1247748323048283513
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1247748323048268422}
+  - component: {fileID: 1247748323048268421}
+  - component: {fileID: 1247748323048268420}
+  - component: {fileID: 1247748323048268423}
+  m_Layer: 5
+  m_Name: Btn_My
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1247748323048268422
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1247748323048283513}
+  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: 1247748323622075974}
+  m_Father: {fileID: 1247748322323062981}
+  m_RootOrder: 2
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 200, y: 100}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &1247748323048268421
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1247748323048283513}
+  m_CullTransparentMesh: 1
+--- !u!114 &1247748323048268420
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1247748323048283513}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
+  m_Type: 1
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &1247748323048268423
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1247748323048283513}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_WrapAround: 0
+    m_SelectOnUp: {fileID: 0}
+    m_SelectOnDown: {fileID: 0}
+    m_SelectOnLeft: {fileID: 0}
+    m_SelectOnRight: {fileID: 0}
+  m_Transition: 1
+  m_Colors:
+    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+    m_ColorMultiplier: 1
+    m_FadeDuration: 0.1
+  m_SpriteState:
+    m_HighlightedSprite: {fileID: 0}
+    m_PressedSprite: {fileID: 0}
+    m_SelectedSprite: {fileID: 0}
+    m_DisabledSprite: {fileID: 0}
+  m_AnimationTriggers:
+    m_NormalTrigger: Normal
+    m_HighlightedTrigger: Highlighted
+    m_PressedTrigger: Pressed
+    m_SelectedTrigger: Selected
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 1247748323048268420}
+  m_OnClick:
+    m_PersistentCalls:
+      m_Calls: []
+--- !u!1 &1247748323255696396
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1247748323255696397}
+  - component: {fileID: 1247748323255696395}
+  - component: {fileID: 1247748323255696394}
+  m_Layer: 5
+  m_Name: Text (Legacy)
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1247748323255696397
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1247748323255696396}
+  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: 1247748323308414400}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &1247748323255696395
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1247748323255696396}
+  m_CullTransparentMesh: 1
+--- !u!114 &1247748323255696394
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1247748323255696396}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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_FontData:
+    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+    m_FontSize: 40
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 0
+    m_MaxSize: 40
+    m_Alignment: 4
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: "\u85CF\u8BD7\u9601"
+--- !u!1 &1247748323308414403
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1247748323308414400}
+  - component: {fileID: 1247748323308414415}
+  - component: {fileID: 1247748323308414414}
+  - component: {fileID: 1247748323308414401}
+  m_Layer: 5
+  m_Name: Btn_CSG
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1247748323308414400
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1247748323308414403}
+  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: 1247748323255696397}
+  m_Father: {fileID: 1247748322901743876}
+  m_RootOrder: 2
+  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: 128, y: 145}
+  m_SizeDelta: {x: 200, y: 100}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &1247748323308414415
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1247748323308414403}
+  m_CullTransparentMesh: 1
+--- !u!114 &1247748323308414414
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1247748323308414403}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
+  m_Type: 1
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &1247748323308414401
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1247748323308414403}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_WrapAround: 0
+    m_SelectOnUp: {fileID: 0}
+    m_SelectOnDown: {fileID: 0}
+    m_SelectOnLeft: {fileID: 0}
+    m_SelectOnRight: {fileID: 0}
+  m_Transition: 1
+  m_Colors:
+    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+    m_ColorMultiplier: 1
+    m_FadeDuration: 0.1
+  m_SpriteState:
+    m_HighlightedSprite: {fileID: 0}
+    m_PressedSprite: {fileID: 0}
+    m_SelectedSprite: {fileID: 0}
+    m_DisabledSprite: {fileID: 0}
+  m_AnimationTriggers:
+    m_NormalTrigger: Normal
+    m_HighlightedTrigger: Highlighted
+    m_PressedTrigger: Pressed
+    m_SelectedTrigger: Selected
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 1247748323308414414}
+  m_OnClick:
+    m_PersistentCalls:
+      m_Calls: []
+--- !u!1 &1247748323429688136
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1247748323429688137}
+  - component: {fileID: 1247748323429688148}
+  - component: {fileID: 1247748323429688151}
+  - component: {fileID: 1247748323429688150}
+  m_Layer: 5
+  m_Name: Btn_Visit
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1247748323429688137
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1247748323429688136}
+  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: 1247748323589019944}
+  m_Father: {fileID: 1247748322323062981}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 200, y: 100}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &1247748323429688148
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1247748323429688136}
+  m_CullTransparentMesh: 1
+--- !u!114 &1247748323429688151
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1247748323429688136}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
+  m_Type: 1
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &1247748323429688150
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1247748323429688136}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_WrapAround: 0
+    m_SelectOnUp: {fileID: 0}
+    m_SelectOnDown: {fileID: 0}
+    m_SelectOnLeft: {fileID: 0}
+    m_SelectOnRight: {fileID: 0}
+  m_Transition: 1
+  m_Colors:
+    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+    m_ColorMultiplier: 1
+    m_FadeDuration: 0.1
+  m_SpriteState:
+    m_HighlightedSprite: {fileID: 0}
+    m_PressedSprite: {fileID: 0}
+    m_SelectedSprite: {fileID: 0}
+    m_DisabledSprite: {fileID: 0}
+  m_AnimationTriggers:
+    m_NormalTrigger: Normal
+    m_HighlightedTrigger: Highlighted
+    m_PressedTrigger: Pressed
+    m_SelectedTrigger: Selected
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 1247748323429688151}
+  m_OnClick:
+    m_PersistentCalls:
+      m_Calls: []
+--- !u!1 &1247748323589019947
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1247748323589019944}
+  - component: {fileID: 1247748323589019958}
+  - component: {fileID: 1247748323589019945}
+  m_Layer: 5
+  m_Name: Text (Legacy)
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1247748323589019944
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1247748323589019947}
+  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: 1247748323429688137}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &1247748323589019958
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1247748323589019947}
+  m_CullTransparentMesh: 1
+--- !u!114 &1247748323589019945
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1247748323589019947}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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_FontData:
+    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+    m_FontSize: 40
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 0
+    m_MaxSize: 40
+    m_Alignment: 4
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: "\u6E38\u89C8"
+--- !u!1 &1247748323622075961
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1247748323622075974}
+  - component: {fileID: 1247748323622075972}
+  - component: {fileID: 1247748323622075975}
+  m_Layer: 5
+  m_Name: Text (Legacy)
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1247748323622075974
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1247748323622075961}
+  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: 1247748323048268422}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &1247748323622075972
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1247748323622075961}
+  m_CullTransparentMesh: 1
+--- !u!114 &1247748323622075975
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1247748323622075961}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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_FontData:
+    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+    m_FontSize: 40
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 0
+    m_MaxSize: 40
+    m_Alignment: 4
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: "\u6211\u7684"

+ 7 - 0
Assets/Resources/UIPanel/MainScenePanel.prefab.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: d54014be2b5b0a7478797ba97069f77f
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 338 - 0
Assets/Resources/UIPanel/StartPanel.prefab

@@ -0,0 +1,338 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &5145079802643715304
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 5145079802643715307}
+  - component: {fileID: 5145079802643715309}
+  - component: {fileID: 5145079802643715306}
+  m_Layer: 5
+  m_Name: Text (Legacy)
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &5145079802643715307
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5145079802643715304}
+  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: 5145079803366870968}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0.8937683}
+  m_SizeDelta: {x: 420, y: 100}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &5145079802643715309
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5145079802643715304}
+  m_CullTransparentMesh: 1
+--- !u!114 &5145079802643715306
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5145079802643715304}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, 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_FontData:
+    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+    m_FontSize: 50
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 3
+    m_MaxSize: 50
+    m_Alignment: 4
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: "\u5F00\u59CB\u6D4F\u89C8"
+--- !u!1 &5145079802948576276
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 5145079802948576279}
+  - component: {fileID: 5145079802948576265}
+  - component: {fileID: 5145079802948576278}
+  m_Layer: 5
+  m_Name: Bg
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &5145079802948576279
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5145079802948576276}
+  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: 5145079804179924570}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &5145079802948576265
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5145079802948576276}
+  m_CullTransparentMesh: 1
+--- !u!114 &5145079802948576278
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5145079802948576276}
+  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.29452944, g: 0.5848582, b: 0.6415094, 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 &5145079803366870969
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 5145079803366870968}
+  - component: {fileID: 5145079803366870973}
+  - component: {fileID: 5145079803366870970}
+  - component: {fileID: 5145079803366870971}
+  m_Layer: 5
+  m_Name: Btn_Start
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &5145079803366870968
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5145079803366870969}
+  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: 5145079802643715307}
+  m_Father: {fileID: 5145079804179924570}
+  m_RootOrder: 1
+  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: -381}
+  m_SizeDelta: {x: 420, y: 100}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &5145079803366870973
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5145079803366870969}
+  m_CullTransparentMesh: 1
+--- !u!114 &5145079803366870970
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5145079803366870969}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 0, g: 0, b: 0, 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!114 &5145079803366870971
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5145079803366870969}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_WrapAround: 0
+    m_SelectOnUp: {fileID: 0}
+    m_SelectOnDown: {fileID: 0}
+    m_SelectOnLeft: {fileID: 0}
+    m_SelectOnRight: {fileID: 0}
+  m_Transition: 1
+  m_Colors:
+    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+    m_ColorMultiplier: 1
+    m_FadeDuration: 0.1
+  m_SpriteState:
+    m_HighlightedSprite: {fileID: 0}
+    m_PressedSprite: {fileID: 0}
+    m_SelectedSprite: {fileID: 0}
+    m_DisabledSprite: {fileID: 0}
+  m_AnimationTriggers:
+    m_NormalTrigger: Normal
+    m_HighlightedTrigger: Highlighted
+    m_PressedTrigger: Pressed
+    m_SelectedTrigger: Selected
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 5145079803366870970}
+  m_OnClick:
+    m_PersistentCalls:
+      m_Calls: []
+--- !u!1 &5145079804179924571
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 5145079804179924570}
+  - component: {fileID: 5145079804179924573}
+  m_Layer: 5
+  m_Name: StartPanel
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &5145079804179924570
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5145079804179924571}
+  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: 5145079802948576279}
+  - {fileID: 5145079803366870968}
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 750, y: 1624}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &5145079804179924573
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5145079804179924571}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4810a0857c909354fa00c3aafdeac753, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  data:
+  - key: Btn_Start
+    gameObject: {fileID: 5145079803366870971}
+    isAssetBundle: 0
+    isList: 0
+    ListCollectorDatas: []
+  isAssetBundle: 0

+ 7 - 0
Assets/Resources/UIPanel/StartPanel.prefab.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: c35b34ed25d841d43a8e3c2332b70aa3
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Scenes.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 131a6b21c8605f84396be9f6751fb6e3
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 738 - 0
Assets/Scenes/MainScene.unity

@@ -0,0 +1,738 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!29 &1
+OcclusionCullingSettings:
+  m_ObjectHideFlags: 0
+  serializedVersion: 2
+  m_OcclusionBakeSettings:
+    smallestOccluder: 5
+    smallestHole: 0.25
+    backfaceThreshold: 100
+  m_SceneGUID: 00000000000000000000000000000000
+  m_OcclusionCullingData: {fileID: 0}
+--- !u!104 &2
+RenderSettings:
+  m_ObjectHideFlags: 0
+  serializedVersion: 9
+  m_Fog: 0
+  m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+  m_FogMode: 3
+  m_FogDensity: 0.01
+  m_LinearFogStart: 0
+  m_LinearFogEnd: 300
+  m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
+  m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
+  m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
+  m_AmbientIntensity: 1
+  m_AmbientMode: 3
+  m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
+  m_SkyboxMaterial: {fileID: 0}
+  m_HaloStrength: 0.5
+  m_FlareStrength: 1
+  m_FlareFadeSpeed: 3
+  m_HaloTexture: {fileID: 0}
+  m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
+  m_DefaultReflectionMode: 0
+  m_DefaultReflectionResolution: 128
+  m_ReflectionBounces: 1
+  m_ReflectionIntensity: 1
+  m_CustomReflection: {fileID: 0}
+  m_Sun: {fileID: 0}
+  m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
+  m_UseRadianceAmbientProbe: 0
+--- !u!157 &3
+LightmapSettings:
+  m_ObjectHideFlags: 0
+  serializedVersion: 12
+  m_GIWorkflowMode: 1
+  m_GISettings:
+    serializedVersion: 2
+    m_BounceScale: 1
+    m_IndirectOutputScale: 1
+    m_AlbedoBoost: 1
+    m_EnvironmentLightingMode: 0
+    m_EnableBakedLightmaps: 0
+    m_EnableRealtimeLightmaps: 0
+  m_LightmapEditorSettings:
+    serializedVersion: 12
+    m_Resolution: 2
+    m_BakeResolution: 40
+    m_AtlasSize: 1024
+    m_AO: 0
+    m_AOMaxDistance: 1
+    m_CompAOExponent: 1
+    m_CompAOExponentDirect: 0
+    m_ExtractAmbientOcclusion: 0
+    m_Padding: 2
+    m_LightmapParameters: {fileID: 0}
+    m_LightmapsBakeMode: 1
+    m_TextureCompression: 1
+    m_FinalGather: 0
+    m_FinalGatherFiltering: 1
+    m_FinalGatherRayCount: 256
+    m_ReflectionCompression: 2
+    m_MixedBakeMode: 2
+    m_BakeBackend: 0
+    m_PVRSampling: 1
+    m_PVRDirectSampleCount: 32
+    m_PVRSampleCount: 500
+    m_PVRBounces: 2
+    m_PVREnvironmentSampleCount: 500
+    m_PVREnvironmentReferencePointCount: 2048
+    m_PVRFilteringMode: 2
+    m_PVRDenoiserTypeDirect: 0
+    m_PVRDenoiserTypeIndirect: 0
+    m_PVRDenoiserTypeAO: 0
+    m_PVRFilterTypeDirect: 0
+    m_PVRFilterTypeIndirect: 0
+    m_PVRFilterTypeAO: 0
+    m_PVREnvironmentMIS: 0
+    m_PVRCulling: 1
+    m_PVRFilteringGaussRadiusDirect: 1
+    m_PVRFilteringGaussRadiusIndirect: 5
+    m_PVRFilteringGaussRadiusAO: 2
+    m_PVRFilteringAtrousPositionSigmaDirect: 0.5
+    m_PVRFilteringAtrousPositionSigmaIndirect: 2
+    m_PVRFilteringAtrousPositionSigmaAO: 1
+    m_ExportTrainingData: 0
+    m_TrainingDataDestination: TrainingData
+    m_LightProbeSampleCountMultiplier: 4
+  m_LightingDataAsset: {fileID: 0}
+  m_LightingSettings: {fileID: 0}
+--- !u!196 &4
+NavMeshSettings:
+  serializedVersion: 2
+  m_ObjectHideFlags: 0
+  m_BuildSettings:
+    serializedVersion: 2
+    agentTypeID: 0
+    agentRadius: 0.5
+    agentHeight: 2
+    agentSlope: 45
+    agentClimb: 0.4
+    ledgeDropHeight: 0
+    maxJumpAcrossDistance: 0
+    minRegionArea: 2
+    manualCellSize: 0
+    cellSize: 0.16666667
+    manualTileSize: 0
+    tileSize: 256
+    accuratePlacement: 0
+    maxJobWorkers: 0
+    preserveTilesOutsideBounds: 0
+    debug:
+      m_Flags: 0
+  m_NavMeshData: {fileID: 0}
+--- !u!1 &236838316
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 236838318}
+  - component: {fileID: 236838317}
+  m_Layer: 0
+  m_Name: AppLauncher
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!114 &236838317
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 236838316}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: b7166c217b370d84cae678218e9169a6, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+--- !u!4 &236838318
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 236838316}
+  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: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!224 &579567358 stripped
+RectTransform:
+  m_CorrespondingSourceObject: {fileID: 162520061382007215, guid: d92b05b610dd60541a8c639a8477748e, type: 3}
+  m_PrefabInstance: {fileID: 162520060802885457}
+  m_PrefabAsset: {fileID: 0}
+--- !u!1001 &162520060802885457
+PrefabInstance:
+  m_ObjectHideFlags: 0
+  serializedVersion: 2
+  m_Modification:
+    m_TransformParent: {fileID: 7828832367218861879}
+    m_Modifications:
+    - target: {fileID: 162520059616994501, guid: d92b05b610dd60541a8c639a8477748e, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 21
+      objectReference: {fileID: 0}
+    - target: {fileID: 162520059627036000, guid: d92b05b610dd60541a8c639a8477748e, type: 3}
+      propertyPath: m_AnchorMax.x
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 162520059627036000, guid: d92b05b610dd60541a8c639a8477748e, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 162520061062754338, guid: d92b05b610dd60541a8c639a8477748e, type: 3}
+      propertyPath: m_AnchorMax.x
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 162520061062754338, guid: d92b05b610dd60541a8c639a8477748e, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 162520061062754338, guid: d92b05b610dd60541a8c639a8477748e, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: -17
+      objectReference: {fileID: 0}
+    - target: {fileID: 162520061078572555, guid: d92b05b610dd60541a8c639a8477748e, type: 3}
+      propertyPath: m_HorizontalScrollbar
+      value: 
+      objectReference: {fileID: 0}
+    - target: {fileID: 162520061081020702, guid: d92b05b610dd60541a8c639a8477748e, type: 3}
+      propertyPath: m_HorizontalScrollbar
+      value: 
+      objectReference: {fileID: 0}
+    - target: {fileID: 162520061382007212, guid: d92b05b610dd60541a8c639a8477748e, type: 3}
+      propertyPath: m_Name
+      value: CSGPanel
+      objectReference: {fileID: 0}
+    - target: {fileID: 162520061382007215, guid: d92b05b610dd60541a8c639a8477748e, type: 3}
+      propertyPath: m_Pivot.x
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 162520061382007215, guid: d92b05b610dd60541a8c639a8477748e, type: 3}
+      propertyPath: m_Pivot.y
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 162520061382007215, guid: d92b05b610dd60541a8c639a8477748e, type: 3}
+      propertyPath: m_RootOrder
+      value: 5
+      objectReference: {fileID: 0}
+    - target: {fileID: 162520061382007215, guid: d92b05b610dd60541a8c639a8477748e, type: 3}
+      propertyPath: m_AnchorMax.x
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 162520061382007215, guid: d92b05b610dd60541a8c639a8477748e, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 162520061382007215, guid: d92b05b610dd60541a8c639a8477748e, type: 3}
+      propertyPath: m_AnchorMin.x
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 162520061382007215, guid: d92b05b610dd60541a8c639a8477748e, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 162520061382007215, guid: d92b05b610dd60541a8c639a8477748e, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 750
+      objectReference: {fileID: 0}
+    - target: {fileID: 162520061382007215, guid: d92b05b610dd60541a8c639a8477748e, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 1624
+      objectReference: {fileID: 0}
+    - target: {fileID: 162520061382007215, guid: d92b05b610dd60541a8c639a8477748e, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 162520061382007215, guid: d92b05b610dd60541a8c639a8477748e, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 162520061382007215, guid: d92b05b610dd60541a8c639a8477748e, type: 3}
+      propertyPath: m_LocalPosition.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 162520061382007215, guid: d92b05b610dd60541a8c639a8477748e, type: 3}
+      propertyPath: m_LocalRotation.w
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 162520061382007215, guid: d92b05b610dd60541a8c639a8477748e, type: 3}
+      propertyPath: m_LocalRotation.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 162520061382007215, guid: d92b05b610dd60541a8c639a8477748e, type: 3}
+      propertyPath: m_LocalRotation.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 162520061382007215, guid: d92b05b610dd60541a8c639a8477748e, type: 3}
+      propertyPath: m_LocalRotation.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 162520061382007215, guid: d92b05b610dd60541a8c639a8477748e, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 162520061382007215, guid: d92b05b610dd60541a8c639a8477748e, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 162520061382007215, guid: d92b05b610dd60541a8c639a8477748e, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 162520061382007215, guid: d92b05b610dd60541a8c639a8477748e, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 162520061382007215, guid: d92b05b610dd60541a8c639a8477748e, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.z
+      value: 0
+      objectReference: {fileID: 0}
+    m_RemovedComponents: []
+  m_SourcePrefab: {fileID: 100100000, guid: d92b05b610dd60541a8c639a8477748e, type: 3}
+--- !u!224 &264328283570593750
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6915940064708879674}
+  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: 7828832367218861879}
+  m_RootOrder: 3
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &2145862234404961940
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7828832367218861883}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4810a0857c909354fa00c3aafdeac753, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  data:
+  - key: BottomRoot
+    gameObject: {fileID: 4962467594515702537}
+    isAssetBundle: 0
+    isList: 0
+    ListCollectorDatas: []
+  - key: MiddleRoot
+    gameObject: {fileID: 7567607991210588511}
+    isAssetBundle: 0
+    isList: 0
+    ListCollectorDatas: []
+  - key: TopRoot
+    gameObject: {fileID: 264328283570593750}
+    isAssetBundle: 0
+    isList: 0
+    ListCollectorDatas: []
+  - key: MainCamera
+    gameObject: {fileID: 5989145357631963345}
+    isAssetBundle: 0
+    isList: 0
+    ListCollectorDatas: []
+  isAssetBundle: 0
+--- !u!1 &3134082865240339831
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 4962467594515702537}
+  m_Layer: 5
+  m_Name: BottomRoot
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &4962467594515702537
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3134082865240339831}
+  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: 7828832367218861879}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!4 &5989145357631963182
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5989145357631963346}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: -70}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 7828832367218861879}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &5989145357631963183
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5989145357631963346}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_RenderShadows: 1
+  m_RequiresDepthTextureOption: 2
+  m_RequiresOpaqueTextureOption: 2
+  m_CameraType: 0
+  m_Cameras: []
+  m_RendererIndex: -1
+  m_VolumeLayerMask:
+    serializedVersion: 2
+    m_Bits: 1
+  m_VolumeTrigger: {fileID: 0}
+  m_VolumeFrameworkUpdateModeOption: 2
+  m_RenderPostProcessing: 0
+  m_Antialiasing: 0
+  m_AntialiasingQuality: 2
+  m_StopNaN: 0
+  m_Dithering: 0
+  m_ClearDepth: 1
+  m_AllowXRRendering: 1
+  m_RequiresDepthTexture: 0
+  m_RequiresColorTexture: 0
+  m_Version: 2
+--- !u!20 &5989145357631963345
+Camera:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5989145357631963346}
+  m_Enabled: 1
+  serializedVersion: 2
+  m_ClearFlags: 2
+  m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
+  m_projectionMatrixMode: 1
+  m_GateFitMode: 2
+  m_FOVAxisMode: 0
+  m_SensorSize: {x: 36, y: 24}
+  m_LensShift: {x: 0, y: 0}
+  m_FocalLength: 50
+  m_NormalizedViewPortRect:
+    serializedVersion: 2
+    x: 0
+    y: 0
+    width: 1
+    height: 1
+  near clip plane: 0.3
+  far clip plane: 1000
+  field of view: 60
+  orthographic: 1
+  orthographic size: 5
+  m_Depth: -1
+  m_CullingMask:
+    serializedVersion: 2
+    m_Bits: 4294967295
+  m_RenderingPath: -1
+  m_TargetTexture: {fileID: 0}
+  m_TargetDisplay: 0
+  m_TargetEye: 0
+  m_HDR: 1
+  m_AllowMSAA: 0
+  m_AllowDynamicResolution: 0
+  m_ForceIntoRT: 0
+  m_OcclusionCulling: 0
+  m_StereoConvergence: 10
+  m_StereoSeparation: 0.022
+--- !u!1 &5989145357631963346
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 5989145357631963182}
+  - component: {fileID: 5989145357631963345}
+  - component: {fileID: 5989145357631963347}
+  - component: {fileID: 5989145357631963183}
+  m_Layer: 0
+  m_Name: Main Camera
+  m_TagString: MainCamera
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!81 &5989145357631963347
+AudioListener:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5989145357631963346}
+  m_Enabled: 1
+--- !u!4 &5989145358180924054
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5989145358180924059}
+  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: 7828832367218861879}
+  m_RootOrder: 4
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &5989145358180924056
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5989145358180924059}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_SendPointerHoverToParent: 1
+  m_HorizontalAxis: Horizontal
+  m_VerticalAxis: Vertical
+  m_SubmitButton: Submit
+  m_CancelButton: Cancel
+  m_InputActionsPerSecond: 10
+  m_RepeatDelay: 0.5
+  m_ForceModuleActive: 0
+--- !u!114 &5989145358180924057
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5989145358180924059}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_FirstSelected: {fileID: 0}
+  m_sendNavigationEvents: 1
+  m_DragThreshold: 10
+--- !u!1 &5989145358180924059
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 5989145358180924054}
+  - component: {fileID: 5989145358180924057}
+  - component: {fileID: 5989145358180924056}
+  m_Layer: 0
+  m_Name: EventSystem
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!1 &6627418803173634027
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 7567607991210588511}
+  m_Layer: 5
+  m_Name: MiddleRoot
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!1 &6915940064708879674
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 264328283570593750}
+  m_Layer: 5
+  m_Name: TopRoot
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &7567607991210588511
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6627418803173634027}
+  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: 7828832367218861879}
+  m_RootOrder: 2
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!223 &7828832367218861876
+Canvas:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7828832367218861883}
+  m_Enabled: 1
+  serializedVersion: 3
+  m_RenderMode: 1
+  m_Camera: {fileID: 5989145357631963345}
+  m_PlaneDistance: 100
+  m_PixelPerfect: 0
+  m_ReceivesEvents: 1
+  m_OverrideSorting: 0
+  m_OverridePixelPerfect: 0
+  m_SortingBucketNormalizedSize: 0
+  m_AdditionalShaderChannelsFlag: 0
+  m_SortingLayerID: 0
+  m_SortingOrder: 0
+  m_TargetDisplay: 0
+--- !u!114 &7828832367218861877
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7828832367218861883}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_UiScaleMode: 1
+  m_ReferencePixelsPerUnit: 100
+  m_ScaleFactor: 1
+  m_ReferenceResolution: {x: 750, y: 1624}
+  m_ScreenMatchMode: 0
+  m_MatchWidthOrHeight: 1
+  m_PhysicalUnit: 3
+  m_FallbackScreenDPI: 96
+  m_DefaultSpriteDPI: 96
+  m_DynamicPixelsPerUnit: 1
+  m_PresetInfoIsWorld: 0
+--- !u!224 &7828832367218861879
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7828832367218861883}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 0, y: 0, z: 0}
+  m_ConstrainProportionsScale: 0
+  m_Children:
+  - {fileID: 5989145357631963182}
+  - {fileID: 4962467594515702537}
+  - {fileID: 7567607991210588511}
+  - {fileID: 264328283570593750}
+  - {fileID: 5989145358180924054}
+  - {fileID: 579567358}
+  m_Father: {fileID: 0}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0, y: 0}
+--- !u!114 &7828832367218861882
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7828832367218861883}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_IgnoreReversedGraphics: 1
+  m_BlockingObjects: 0
+  m_BlockingMask:
+    serializedVersion: 2
+    m_Bits: 4294967295
+--- !u!1 &7828832367218861883
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 7828832367218861879}
+  - component: {fileID: 7828832367218861876}
+  - component: {fileID: 7828832367218861877}
+  - component: {fileID: 7828832367218861882}
+  - component: {fileID: 2145862234404961940}
+  m_Layer: 5
+  m_Name: Canvas
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 0

+ 7 - 0
Assets/Scenes/MainScene.unity.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 2cda990e2423bbf4892e6590ba056729
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Scripts.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 692f1e073b4a39743a253f27df80ecf5
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 24 - 0
Assets/Scripts/AppLauncher.cs

@@ -0,0 +1,24 @@
+using System.Collections;
+using System.Collections.Generic;
+using Mono;
+using UnityEngine;
+
+public class AppLauncher : MonoBehaviour
+{
+    void Start()
+    {
+        GameObject prefab = Resources.Load<GameObject>("Canvas");
+
+        GameObject _gameObject = GameObject.Instantiate(prefab);
+        UIManager.Instance.SetUIRoot(_gameObject);
+        UIManager.Instance.LoadAndOpenPanel<StartPanel>(UIManager.UILayer.Middle);
+
+        ConfigComponent.Instance.Preload();
+    }
+
+    // Update is called once per frame
+    void Update()
+    {
+        
+    }
+}

+ 11 - 0
Assets/Scripts/AppLauncher.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: b7166c217b370d84cae678218e9169a6
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 115 - 0
Assets/Scripts/ConfigComponent.cs

@@ -0,0 +1,115 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Reflection;
+using Fort23.GameData;
+using UnityEngine;
+using Utility;
+
+public class ConfigComponent : Singleton<ConfigComponent>
+{
+    private Dictionary<Type, ConfigHolder> _allConfigHolders = new Dictionary<Type, ConfigHolder>();
+
+    private readonly Dictionary<string, Assembly> _assemblies = new Dictionary<string, Assembly>();
+
+    public void Preload(bool isLogin = false)
+    {
+        string[] assemblyNames =
+        {
+            "GameData.dll"
+        };
+        foreach (Assembly assembly in AppDomain.CurrentDomain.GetAssemblies())
+        {
+            string assemblyName = $"{assembly.GetName().Name}.dll";
+            if (!((IList)assemblyNames).Contains(assemblyName))
+            {
+                continue;
+            }
+
+            _assemblies[assemblyName] = assembly;
+        }
+
+        _allConfigHolders.Clear();
+        ConfigHolder configHolder = null;
+
+        Assembly gameDataAssembly = _assemblies["GameData.dll"];
+
+
+        foreach (Type type in gameDataAssembly.GetTypes())
+        {
+            object[] attrs = type.GetCustomAttributes(typeof(ConfigAttribute), false);
+            if (attrs.Length == 0)
+            {
+                continue;
+            }
+
+
+            try
+            {
+                ConfigAttribute configAttribute =
+                    type.GetCustomAttribute(typeof(ConfigAttribute)) as ConfigAttribute;
+                if (configAttribute != null)
+                {
+                    TextAsset ta = Resources.Load<TextAsset>("Config/" + configAttribute.prefab);
+
+
+                    configHolder = JsonHelper.FromJson(ta.text, type) as ConfigHolder;
+
+
+                    if (configHolder != null)
+                    {
+                        configHolder.Init();
+
+                        _allConfigHolders[configHolder.ConfigType] = configHolder;
+                    }
+                    else
+                    {
+                        Debug.LogError($"JSON转{type.Name}失败!");
+                    }
+                }
+                else
+                {
+                    Debug.LogError($"配置文件类{type.Name}没有添加ConfigAttribute!");
+                }
+            }
+            catch (Exception e)
+            {
+                Debug.LogError("导表错误" + type);
+            }
+        }
+    }
+
+
+    public T Get<T>(int ID) where T : struct, IConfig
+    {
+        ConfigHolder configHolder;
+        if (!_allConfigHolders.TryGetValue(typeof(T), out configHolder))
+        {
+            Debug.LogException(new Exception($"ConfigComponent not found key: {typeof(T).FullName}"));
+            return default;
+        }
+
+        IConfig iconfig = configHolder.TryGet(ID);
+        return iconfig is T ? (T)iconfig : default;
+    }
+
+
+    public T[] GetAll<T>() where T : struct, IConfig
+    {
+        ConfigHolder configHolder;
+        if (!_allConfigHolders.TryGetValue(typeof(T), out configHolder))
+        {
+            throw new Exception($"ConfigComponent not found key: {typeof(T).FullName}");
+        }
+
+        List<IConfig> lists = configHolder.GetAll();
+        T[] configs = new T[configHolder.GetAll().Count];
+        for (int i = 0; i < configs.Length; i++)
+        {
+            IConfig iconfig = lists[i];
+            configs[i] = iconfig is T ? (T)iconfig : default;
+        }
+
+        return configs;
+    }
+}

+ 11 - 0
Assets/Scripts/ConfigComponent.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 7ded07e9427b3474d886c8d2ada8bbbc
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 292 - 0
Assets/Scripts/CustomStateController.cs

@@ -0,0 +1,292 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Runtime.Serialization;
+
+using UnityEngine;
+using UnityEngine.UI;
+using Utility;
+using Object = UnityEngine.Object;
+
+public class CustomStateController : MonoBehaviour, ISerializationCallbackReceiver
+{
+    [Flags]
+    [Serializable]
+    public enum UIStateType
+    {
+        Null = 0,
+        Scale = 2,
+        Active = 4,
+        Position = 8,
+        Rotation = 16,
+        RBSize = 32,
+        ImageColor = 64,
+        TextColor = 128,
+        Icon = 256,
+    }
+
+
+    [Serializable]
+    public class UIStateData
+    {
+        public List<StateInfo> StateInfos;
+
+        public UIStateData()
+        {
+            StateInfos = new List<StateInfo>();
+        }
+    }
+
+
+    [Serializable]
+    public class StateInfo
+    {
+        [SerializeField] public GameObject Target;
+
+        //v4专用数据源
+        [SerializeField] public List<UIStateType> UIStateV4Types;
+        [SerializeField] public List<Vector4> UIStateV4Datas;
+
+        //Str 专用数据源
+        [SerializeField] public List<UIStateType> UIStateStrTypes;
+        [SerializeField] public List<string> UIStateStrDatas;
+    }
+
+
+    [SerializeField] public List<UIStateData> data = new List<UIStateData>();
+
+
+    public List<Object> AllComs = new List<Object>();
+
+    [SerializeField]
+    public List<UIStateType> AllComsStateTypes = new List<UIStateType>();
+
+    public int CurrIndex;
+
+
+    public void AddData()
+    {
+        data.Add(CreatData());
+        CurrIndex = data.Count - 1;
+    }
+
+    public void RemoveData(int index)
+    {
+        data.RemoveAt(index);
+        CurrIndex = data.Count - 1;
+        if (data.Count == 0)
+        {
+            ChangeState(-1);
+        }
+    }
+
+    public void SaveData()
+    {
+        data[CurrIndex] = CreatData();
+    }
+
+
+    public UIStateData CreatData()
+    {
+        UIStateData uiStateData = new UIStateData();
+
+
+        for (var i = 0; i < AllComs.Count; i++)
+        {
+            Object _object = AllComs[i];
+
+            if (_object == null)
+            {
+                Debug.LogError("保存状态数据的目标为空");
+                continue;
+            }
+
+
+            GameObject go = AllComs[i] as GameObject;
+            if (go == null)
+            {
+                Debug.LogError("保存状态数据的目标为空");
+                continue;
+            }
+
+            StateInfo stateInfo = new StateInfo();
+
+            stateInfo.UIStateV4Datas = new List<Vector4>();
+            stateInfo.UIStateV4Types = new List<UIStateType>();
+
+
+            stateInfo.Target = AllComs[i] as GameObject;
+
+            if (AllComsStateTypes[i].HasFlag(UIStateType.Active))
+            {
+                Vector4 vector4 = new Vector4();
+                vector4.x = go.gameObject.activeSelf ? 1 : 0;
+
+                stateInfo.UIStateV4Types.Add(UIStateType.Active);
+                stateInfo.UIStateV4Datas.Add(vector4);
+            }
+
+            if (AllComsStateTypes[i].HasFlag(UIStateType.Position))
+            {
+                Vector4 vector4 = go.GetComponent<RectTransform>().anchoredPosition;
+
+                stateInfo.UIStateV4Types.Add(UIStateType.Position);
+                stateInfo.UIStateV4Datas.Add(vector4);
+            }
+
+
+            if (AllComsStateTypes[i].HasFlag(UIStateType.Scale))
+            {
+                Vector4 vector4 = go.GetComponent<RectTransform>().localScale;
+
+                stateInfo.UIStateV4Types.Add(UIStateType.Scale);
+                stateInfo.UIStateV4Datas.Add(vector4);
+            }
+
+            if (AllComsStateTypes[i].HasFlag(UIStateType.Rotation))
+            {
+                Vector4 vector4 = go.GetComponent<RectTransform>().localRotation.eulerAngles;
+
+                stateInfo.UIStateV4Types.Add(UIStateType.Rotation);
+                stateInfo.UIStateV4Datas.Add(vector4);
+            }
+
+            if (AllComsStateTypes[i].HasFlag(UIStateType.RBSize))
+            {
+                Vector4 vector4 = go.GetComponent<RectTransform>().sizeDelta;
+
+                stateInfo.UIStateV4Types.Add(UIStateType.RBSize);
+                stateInfo.UIStateV4Datas.Add(vector4);
+            }
+
+            if (AllComsStateTypes[i].HasFlag(UIStateType.ImageColor))
+            {
+                Vector4 vector4 = go.GetComponent<Image>().color;
+
+                stateInfo.UIStateV4Types.Add(UIStateType.ImageColor);
+                stateInfo.UIStateV4Datas.Add(vector4);
+            }
+
+            if (AllComsStateTypes[i].HasFlag(UIStateType.TextColor))
+            {
+                Vector4 vector4 = go.GetComponent<Text>().color;
+
+                stateInfo.UIStateV4Types.Add(UIStateType.TextColor);
+                stateInfo.UIStateV4Datas.Add(vector4);
+            }
+
+         
+            
+            if (AllComsStateTypes[i].HasFlag(UIStateType.Icon))
+            {
+                if (stateInfo.UIStateStrDatas == null)
+                {
+                    stateInfo.UIStateStrDatas = new List<string>();
+                    stateInfo.UIStateStrTypes = new List<UIStateType>();
+                }
+
+                string str = go.GetComponent<Image>().sprite.ToString();
+
+                stateInfo.UIStateStrTypes.Add(UIStateType.Icon);
+                stateInfo.UIStateStrDatas.Add(str);
+            }
+
+
+            uiStateData.StateInfos.Add(stateInfo);
+        }
+
+        return uiStateData;
+    }
+
+
+    public void ChangeState(int selectIndex)
+    {
+        if (selectIndex < 0)
+        {
+            return;
+        }
+
+        CurrIndex = selectIndex;
+        UIStateData uiStateData = data[selectIndex];
+
+
+        foreach (var keyValuePair in uiStateData.StateInfos)
+        {
+            GameObject go = keyValuePair.Target;
+            if (go == null)
+            {
+                Debug.LogError("保存状态数据的目标不存在");
+                continue;
+            }
+
+            if (keyValuePair.UIStateV4Types != null)
+            {
+                for (var i = 0; i < keyValuePair.UIStateV4Types.Count; i++)
+                {
+                    switch (keyValuePair.UIStateV4Types[i])
+                    {
+                        case UIStateType.Active:
+                            bool active;
+                            
+                            active = Math.Abs(keyValuePair.UIStateV4Datas[i].x - 1) < 0.00001;
+
+                            go.gameObject.SetActive(active);
+                            break;
+                        case UIStateType.Position:
+                            Vector2 pos = keyValuePair.UIStateV4Datas[i];
+                            go.GetComponent<RectTransform>().anchoredPosition = pos;
+                            break;
+
+                        case UIStateType.Scale:
+                            Vector3 scale = keyValuePair.UIStateV4Datas[i];
+                            go.GetComponent<RectTransform>().localScale = scale;
+                            break;
+                        case UIStateType.Rotation:
+                            Quaternion rotation = Quaternion.Euler(keyValuePair.UIStateV4Datas[i]);
+
+                            go.GetComponent<RectTransform>().localRotation = rotation;
+                            break;
+                        case UIStateType.RBSize:
+                            Vector2 sizeDelta = keyValuePair.UIStateV4Datas[i];
+                            go.GetComponent<RectTransform>().sizeDelta = sizeDelta;
+                            break;
+                        case UIStateType.ImageColor:
+                            Color imageColorData = keyValuePair.UIStateV4Datas[i];
+                            go.GetComponent<Image>().color = imageColorData;
+                            break;
+                        case UIStateType.TextColor:
+                            Color textColorData = keyValuePair.UIStateV4Datas[i];
+                            go.GetComponent<Text>().color = textColorData;
+                            break;
+                       
+                    }
+                }
+            }
+
+
+            if (keyValuePair.UIStateStrTypes != null)
+            {
+                for (var i = 0; i < keyValuePair.UIStateStrTypes.Count; i++)
+                {
+                    switch (keyValuePair.UIStateStrTypes[i])
+                    {
+                    
+                        case UIStateType.Icon:
+                            string iconName = keyValuePair.UIStateStrDatas[i];
+                            go.GetComponent<Image>().sprite = Resources.Load<Sprite>("Sprite/"+iconName);
+                            break;
+                    }
+                }
+            }
+        }
+    }
+
+
+    public void OnBeforeSerialize()
+    {
+    }
+
+    public void OnAfterDeserialize()
+    {
+    }
+}

+ 11 - 0
Assets/Scripts/CustomStateController.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 2aac469af1ebba6429e8c2ad04399d69
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Scripts/GameData.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 4978bd6861691eb46abc88c68a26c090
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 3 - 0
Assets/Scripts/GameData/Attribute.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: cf871725a3e246e199f8a1b178d9f2bb
+timeCreated: 1640314845

+ 13 - 0
Assets/Scripts/GameData/Attribute/ConfigAttribute.cs

@@ -0,0 +1,13 @@
+using System;
+
+namespace Fort23.GameData
+{
+    [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct, AllowMultiple = true, Inherited = false)]
+    public class ConfigAttribute : Attribute
+    {
+        /// <summary>
+        /// 资源名字
+        /// </summary>
+        public string prefab { get; set; }
+    }
+}

+ 11 - 0
Assets/Scripts/GameData/Attribute/ConfigAttribute.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 7fcffc526b8bead429149c14cbbf717e
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Scripts/GameData/ExcelConfig.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 8e057a21115c0824492a1fc7845fc594
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 34 - 0
Assets/Scripts/GameData/ExcelConfig/PoetConfig.cs

@@ -0,0 +1,34 @@
+// Auto Generated Code By excel2json
+// Generate From Excel\Poet.xlsx. SheetName: PoetConfig
+
+using System;
+using Fort23.GameData;
+
+namespace Excel2Json
+{
+	[Config(prefab = "PoetConfig")]
+	public partial class PoetConfigHolder : ConfigHolder<PoetConfig>
+	{
+	}
+
+
+	[Serializable]
+	public struct PoetConfig : IConfig
+	{
+		public int GetID() {return ID;} 
+		/// <summary>
+		///ID
+		/// </summary>
+public int ID;
+
+
+		/// <summary>
+		///诗词名字
+		/// </summary>
+public string name;
+
+
+	}
+
+}
+// End of Auto Generated Code

+ 11 - 0
Assets/Scripts/GameData/ExcelConfig/PoetConfig.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 1eab033dbb26c574581ab494dbd5d140
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 40 - 0
Assets/Scripts/GameData/ExcelConfig/PoetryConfig.cs

@@ -0,0 +1,40 @@
+// Auto Generated Code By excel2json
+// Generate From Excel\Poetry.xlsx. SheetName: PoetryConfig
+
+using System;
+using Fort23.GameData;
+
+namespace Excel2Json
+{
+	[Config(prefab = "PoetryConfig")]
+	public partial class PoetryConfigHolder : ConfigHolder<PoetryConfig>
+	{
+	}
+
+
+	[Serializable]
+	public struct PoetryConfig : IConfig
+	{
+		public int GetID() {return ID;} 
+		/// <summary>
+		///ID
+		/// </summary>
+public int ID;
+
+
+		/// <summary>
+		///诗人名字
+		/// </summary>
+public string name;
+
+
+		/// <summary>
+		///诗人相关诗词
+		/// </summary>
+public int[] Poets;
+
+
+	}
+
+}
+// End of Auto Generated Code

+ 11 - 0
Assets/Scripts/GameData/ExcelConfig/PoetryConfig.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f13eb8c6f4960fa4a816c7d05995d5e5
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 40 - 0
Assets/Scripts/GameData/ExcelConfig/RegionConfig.cs

@@ -0,0 +1,40 @@
+// Auto Generated Code By excel2json
+// Generate From Excel\Region.xlsx. SheetName: RegionConfig
+
+using System;
+using Fort23.GameData;
+
+namespace Excel2Json
+{
+	[Config(prefab = "RegionConfig")]
+	public partial class RegionConfigHolder : ConfigHolder<RegionConfig>
+	{
+	}
+
+
+	[Serializable]
+	public struct RegionConfig : IConfig
+	{
+		public int GetID() {return ID;} 
+		/// <summary>
+		///ID
+		/// </summary>
+public int ID;
+
+
+		/// <summary>
+		///地区名字
+		/// </summary>
+public string name;
+
+
+		/// <summary>
+		///相关诗词
+		/// </summary>
+public int[] Poets;
+
+
+	}
+
+}
+// End of Auto Generated Code

+ 11 - 0
Assets/Scripts/GameData/ExcelConfig/RegionConfig.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 77600ca4e4db0ee48b87cfc5b2852628
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Scripts/GameData/ExcelConfigBasic.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 1e4d86dd4599af74fabf328d545e6a41
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 92 - 0
Assets/Scripts/GameData/ExcelConfigBasic/ConfigHolder.cs

@@ -0,0 +1,92 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using UnityEngine;
+
+
+namespace Fort23.GameData
+{
+    public abstract class ConfigHolder
+    {
+        public abstract Type ConfigType { get; }
+        public abstract IConfig GetFirst();
+        public abstract List<IConfig> GetAll();
+        public abstract IConfig TryGet(int type);
+        public abstract void SetConfig(List<IConfig> config);
+
+        public virtual void Init()
+        {
+        }
+    }
+
+    /// <summary>
+    /// 管理所有的配置
+    /// </summary>
+    /// <typeparam name="T"></typeparam>
+    [Serializable]
+    public abstract class ConfigHolder<T> : ConfigHolder where T : IConfig
+    {
+        public List<T> configList;
+        private Dictionary<int, IConfig> _dictionary;
+
+        public override void Init()
+        {
+            _dictionary = new Dictionary<int, IConfig>();
+            foreach (var config in configList)
+            {
+                _dictionary.Add(config.GetID(), config);
+            }
+            
+        }
+
+        public override void SetConfig(List<IConfig> config)
+        {
+            if (configList != null)
+            {
+                return;
+            }
+
+            configList = new List<T>();
+            for (int i = 0; i < config.Count; i++)
+            {
+                configList.Add((T) config[i]);
+            }
+        }
+
+        public override Type ConfigType
+        {
+            get { return typeof(T); }
+        }
+
+        public override IConfig TryGet(int ID)
+        {
+            if (ID <= 0)
+            {
+                Debug.Log($"在表{typeof(T)}中没有找到ID:{ID}");
+                return null;
+            }
+
+            IConfig t;
+            if (!_dictionary.TryGetValue(ID, out t))
+            {
+
+                Debug.Log($"在表{typeof(T)}中没有找到ID:{ID}————{_dictionary.Count}");
+                return null;
+            }
+
+            return t;
+        }
+
+        public override List<IConfig> GetAll()
+        {
+            List<IConfig> configs = _dictionary.Values.ToList();
+            return configs;
+        }
+
+
+        public override IConfig GetFirst()
+        {
+            return _dictionary.Values.First();
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameData/ExcelConfigBasic/ConfigHolder.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 9126c38c490e45c4f973e260f38b90e4
+timeCreated: 1639559948

+ 7 - 0
Assets/Scripts/GameData/ExcelConfigBasic/IConfig.cs

@@ -0,0 +1,7 @@
+namespace Fort23.GameData
+{
+    public interface IConfig
+    {
+        int GetID();
+    }
+}

+ 11 - 0
Assets/Scripts/GameData/ExcelConfigBasic/IConfig.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 265dec002469a574e8fe0e5095b48ff6
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 14 - 0
Assets/Scripts/GameData/GameData.asmdef

@@ -0,0 +1,14 @@
+{
+    "name": "GameData",
+    "rootNamespace": "",
+    "references": [],
+    "includePlatforms": [],
+    "excludePlatforms": [],
+    "allowUnsafeCode": false,
+    "overrideReferences": false,
+    "precompiledReferences": [],
+    "autoReferenced": true,
+    "defineConstraints": [],
+    "versionDefines": [],
+    "noEngineReferences": false
+}

+ 7 - 0
Assets/Scripts/GameData/GameData.asmdef.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: bde5691cf1934664abe69e0a2568a94b
+AssemblyDefinitionImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Scripts/GameData/Utility.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 99c2c497b7cecfc4d85febfe03e3e494
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 105 - 0
Assets/Scripts/GameData/Utility/JsonHelper.cs

@@ -0,0 +1,105 @@
+#if !COMBAT_SERVER
+using System;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace Fort23.GameData
+{
+    public class JsonHelper
+    {
+        public static string ToJson(object obj)
+        {
+#if !COMBAT_SERVER
+
+            return JsonUtility.ToJson(obj);
+#endif
+            return null;
+        }
+
+        public static T FromJson<T>(string json)
+        {
+#if !COMBAT_SERVER
+
+            return JsonUtility.FromJson<T>(json);
+#endif
+            return default;
+        }
+
+        public static object FromJson(string json, Type type)
+        {
+#if !COMBAT_SERVER
+
+            return JsonUtility.FromJson(json, type);
+#endif
+            return null;
+        }
+
+        public static T Clone<T>(T t)
+        {
+            return FromJson<T>(ToJson(t));
+        }
+    }
+
+    /// <summary>
+    /// 扩展JsonUtility的List能力, T必须加上[Serializable]标签
+    /// https://blog.csdn.net/Truck_Truck/article/details/78292390
+    /// </summary>
+    /// <typeparam name="T"></typeparam>
+    [Serializable]
+    public class Serialization<T>
+    {
+        [SerializeField] List<T> target;
+
+        public List<T> ToList()
+        {
+            return target;
+        }
+
+        public Serialization(List<T> target)
+        {
+            this.target = target;
+        }
+    }
+
+    /// <summary>
+    /// 扩展JsonUtility的Dictionary能力,TValue必须加上[Serializable]标签
+    /// Dictionary<TKey, TValue>
+    /// </summary>
+    /// <typeparam name="TKey"></typeparam>
+    /// <typeparam name="TValue"></typeparam>
+    [Serializable]
+    public class Serialization<TKey, TValue> : ISerializationCallbackReceiver
+    {
+        [SerializeField] List<TKey> keys;
+        [SerializeField] List<TValue> values;
+
+        Dictionary<TKey, TValue> target;
+
+        public Dictionary<TKey, TValue> ToDictionary()
+        {
+            return target;
+        }
+
+        public Serialization(Dictionary<TKey, TValue> target)
+        {
+            this.target = target;
+        }
+
+        public void OnBeforeSerialize()
+        {
+            keys = new List<TKey>(target.Keys);
+            values = new List<TValue>(target.Values);
+        }
+
+        public void OnAfterDeserialize()
+        {
+            var count = Math.Min(keys.Count, values.Count);
+            target = new Dictionary<TKey, TValue>(count);
+            for (var i = 0; i < count; ++i)
+            {
+                target.Add(keys[i], values[i]);
+            }
+        }
+    }
+}
+#endif

+ 11 - 0
Assets/Scripts/GameData/Utility/JsonHelper.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: cad12bdfe9d9eaa43bc2c624055c8b03
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Scripts/Mono.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 22898ea08dac31f428899f1289dbd73e
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Scripts/Mono/UI.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6dc745cf25cb71c45b5c7a7303327ac1
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Scripts/Mono/UI/Com.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 4dd52e3bdabffdb48ad4a33907f3c43e
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 36 - 0
Assets/Scripts/Mono/UI/Com/PoetryItem.cs

@@ -0,0 +1,36 @@
+using Excel2Json;
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace Mono
+{
+    [UIBinding(prefab = "PoetryItem")]
+    public class PoetryItem : UICom
+    {
+        public Button Btn_PoetryItem;
+
+        public Text Text_PoetryName;
+
+        public RectTransform PoetryItemRoot;
+
+
+        public override void GetUIData()
+        {
+            Btn_PoetryItem = UIData.Get<Button>("Btn_PoetryItem");
+            Text_PoetryName = UIData.Get<Text>("Text_PoetryName");
+        }
+
+        public override void AddButtonEvent()
+        {
+            Btn_PoetryItem.onClick.AddListener(() => { Debug.Log("点击了古诗" + Text_PoetryName); });
+        }
+
+        public PoetConfig PoetConfig;
+
+        public void CustomInit(PoetConfig poetConfig)
+        {
+            PoetConfig = poetConfig;
+            Text_PoetryName.text = "《"+PoetConfig.name+"》";
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/Mono/UI/Com/PoetryItem.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 5be70901da874b729479b5aaf68455c1
+timeCreated: 1696760328

+ 78 - 0
Assets/Scripts/Mono/UI/Com/RegionItem.cs

@@ -0,0 +1,78 @@
+using System.Collections.Generic;
+using Excel2Json;
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace Mono
+{
+    [UIBinding(prefab = "RegionItem")]
+    public class RegionItem : UICom
+    {
+        public Button Btn_Region;
+
+        public Text Text_RegionName;
+
+        public RectTransform PoetryItemRoot;
+
+
+        public List<PoetryItem> CurPoetryItems = new List<PoetryItem>();
+
+        public override void GetUIData()
+        {
+            Btn_Region = UIData.Get<Button>("Btn_Region");
+            Text_RegionName = UIData.Get<Text>("Text_RegionName");
+            PoetryItemRoot = UIData.Get<RectTransform>("PoetryItemRoot");
+        }
+
+        public override void AddButtonEvent()
+        {
+            Btn_Region.onClick.AddListener(() => { CreatPoetryItem(); });
+        }
+
+        public void CreatPoetryItem()
+        {
+            if (CurPoetryItems.Count > 0)
+            {
+                for (var i = 0; i < CurPoetryItems.Count; i++)
+                {
+                    UIManager.Instance.RecUICom(this, CurPoetryItems[i]);
+                }
+
+                CurPoetryItems.Clear();
+                return;
+            }
+
+            for (var i = 0; i < RegionConfig.Poets.Length; i++)
+            {
+                PoetConfig poetConfig = ConfigComponent.Instance.Get<PoetConfig>(RegionConfig.Poets[i]);
+
+                PoetryItem poetryItem = UIManager.Instance.CreatUICom<PoetryItem>(this, PoetryItemRoot);
+                poetryItem.CustomInit(poetConfig);
+                 CurPoetryItems.Add(poetryItem);
+            }
+
+            // PoetryItem poetryItem = UIManager.Instance.CreatUICom<PoetryItem>(this, PoetryItemRoot);
+            // poetryItem.CustomInit("白帝");
+            // CurPoetryItems.Add(poetryItem);
+            // PoetryItem poetryItem1 = UIManager.Instance.CreatUICom<PoetryItem>(this, PoetryItemRoot);
+            // poetryItem1.CustomInit("黑帝");
+            // CurPoetryItems.Add(poetryItem1);
+            // PoetryItem poetryItem2 = UIManager.Instance.CreatUICom<PoetryItem>(this, PoetryItemRoot);
+            // poetryItem2.CustomInit("金帝");
+            // CurPoetryItems.Add(poetryItem2);
+        }
+
+        public override void Show()
+        {
+            base.Show();
+        }
+
+        public RegionConfig RegionConfig;
+
+        public void CustomInit(RegionConfig regionConfig)
+        {
+            RegionConfig = regionConfig;
+            Text_RegionName.text = regionConfig.name;
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/Mono/UI/Com/RegionItem.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 67ab0b46fd02446a9d8ea649ad4645d0
+timeCreated: 1696759506

+ 8 - 0
Assets/Scripts/Mono/UI/Core.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 02c5b5799f27b704db3160feb15aa61f
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 86 - 0
Assets/Scripts/Mono/UI/Core/Singleton.cs

@@ -0,0 +1,86 @@
+using System;
+using System.Threading;
+
+
+namespace Utility
+{
+    public class Singleton<T> : IDisposable where T : new()
+    {
+      
+        static object m_lock = new object();
+#if COMBAT_SERVER
+       
+        private static Map<int, T> _threadingInstance = new Map<int, T>();
+#endif
+#if !COMBAT_SERVER
+        protected static T m_instance;
+        public static T Instance
+        {
+            get
+            {
+                
+                if (m_instance == null)
+                {
+                    lock (m_lock)
+                    {
+                        if (m_instance == null)
+                        {
+                            m_instance = new T();
+                        }
+                    }
+                }
+
+                return m_instance;
+            }
+            set { m_instance = value; }
+        }
+             public virtual void Dispose()
+        {
+           
+            ProDispose();
+            Instance = (T) (object) null;
+        }
+#else
+        public static T Instance
+        {
+            get
+            {
+                int id = Thread.CurrentThread.ManagedThreadId;
+                if (_threadingInstance.TryGetValue(id, out T VALUE))
+                {
+                    return VALUE;
+                }
+                lock (_threadingInstance)
+                {
+                    if (_threadingInstance.TryGetValue(id, out T VALUE2))
+                    {
+                        return VALUE2;
+                    }
+                    else
+                    {
+                        // LogTool.Log("新建示例"+id+"__"+typeof(T));
+                        T iInstance = new T();
+                        _threadingInstance.Add(id, iInstance);
+                        return iInstance;
+                    }
+                }
+            }
+        }
+
+        public virtual void Dispose()
+        {
+            ProDispose();
+            lock (_threadingInstance)
+            {
+                int id = Thread.CurrentThread.ManagedThreadId;
+                _threadingInstance.Remove(id);
+            }
+        }
+#endif
+
+
+        protected virtual void ProDispose()
+        {
+        }
+    }
+}

+ 11 - 0
Assets/Scripts/Mono/UI/Core/Singleton.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 103f7975e6f455442b1faa94204fbbed
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 25 - 0
Assets/Scripts/Mono/UI/Core/UIBasic.cs

@@ -0,0 +1,25 @@
+using System.Collections.Generic;
+using Fort23.Mono;
+using UnityEngine;
+
+namespace Mono
+{
+    public abstract class UIBasic
+    {
+
+        public GameObject Root;
+        public bool IsShow;
+        public ReferenceCollector UIData;
+        
+        public Dictionary<string, List<UICom>> AllUICom = new Dictionary<string, List<UICom>>();
+        public abstract void SetUIRoot(GameObject root);
+        public abstract void GetUIData();
+        public abstract void AddButtonEvent();
+        
+        public abstract void AddEvent();
+        public abstract void DelEvent();
+        public abstract void Show();
+        public abstract void Hide();
+        public abstract void Dispose();
+    }
+}

+ 3 - 0
Assets/Scripts/Mono/UI/Core/UIBasic.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: df1dc9aead2f470a864deaffc4667e65
+timeCreated: 1696748914

+ 14 - 0
Assets/Scripts/Mono/UI/Core/UIBindingAttribute.cs

@@ -0,0 +1,14 @@
+using System;
+
+namespace Mono
+{
+    [AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = false)]
+    public class UIBindingAttribute : Attribute
+    {
+        /// <summary>
+        /// 预设名字
+        /// </summary>
+        public string prefab { get; set; }
+
+    }
+}

+ 3 - 0
Assets/Scripts/Mono/UI/Core/UIBindingAttribute.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 6c49da4d1b134fc09a31c6f2ae10d3a6
+timeCreated: 1696750823

+ 62 - 0
Assets/Scripts/Mono/UI/Core/UICom.cs

@@ -0,0 +1,62 @@
+using Fort23.Mono;
+using UnityEngine;
+
+namespace Mono
+{
+    public class UICom : UIBasic
+    {
+        public override void SetUIRoot(GameObject root)
+        {
+            base.Root = root;
+            UIData = Root.GetComponent<ReferenceCollector>();
+            GetUIData();
+            AddButtonEvent();
+        }
+
+        public override void GetUIData()
+        {
+            
+        }
+
+        public override void AddButtonEvent()
+        {
+        }
+
+        public override void AddEvent()
+        {
+        }
+
+        public override void DelEvent()
+        {
+        }
+
+        public override void Show()
+        {
+            Root.gameObject.SetActive(true);
+            IsShow = true;
+            AddEvent();
+        }
+
+        public override void Hide()
+        {
+            Root.gameObject.SetActive(false);
+            IsShow = false;
+            DelEvent();
+        }
+
+        public override void Dispose()
+        {
+            Hide();
+
+            foreach (var keyValuePair in AllUICom)
+            {
+                foreach (var uiCom in keyValuePair.Value)
+                {
+                    uiCom.Dispose();
+                }
+            }
+
+            Object.Destroy(Root);
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/Mono/UI/Core/UICom.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: ff65307c62b34e299918fa79d1bb2abc
+timeCreated: 1696749218

+ 220 - 0
Assets/Scripts/Mono/UI/Core/UIManager.cs

@@ -0,0 +1,220 @@
+using System;
+using System.Collections.Generic;
+using System.Reflection;
+using Unity.VisualScripting;
+using UnityEngine;
+using Object = UnityEngine.Object;
+using ReferenceCollector = Fort23.Mono.ReferenceCollector;
+
+namespace Mono
+{
+    public class UIManager : Utility.Singleton<UIManager>
+    {
+        public Dictionary<string, UIPanel> AllPanel = new Dictionary<string, UIPanel>();
+
+
+        public Dictionary<string, List<UICom>> AllUIComPool = new Dictionary<string, List<UICom>>();
+
+        public enum UILayer
+        {
+            Bottom, //最底层UI(主界面)
+            Middle, //中间UI(各种Panel)
+            Top, //最顶层UI节点
+        }
+
+        public GameObject UIRoot;
+
+        public RectTransform BottomRoot;
+        public RectTransform MiddleRoot;
+        public RectTransform TopRoot;
+
+        public ReferenceCollector ReferenceCollector;
+
+        public void SetUIRoot(GameObject gameObject)
+        {
+            UIRoot = gameObject;
+            ReferenceCollector = gameObject.GetComponent<ReferenceCollector>();
+            BottomRoot = ReferenceCollector.Get<RectTransform>("BottomRoot");
+            MiddleRoot = ReferenceCollector.Get<RectTransform>("MiddleRoot");
+            TopRoot = ReferenceCollector.Get<RectTransform>("TopRoot");
+        }
+
+
+        /// <summary>
+        /// 加载打开一个界面
+        /// </summary>
+        /// <param name="uiLayer"></param>
+        /// <typeparam name="T"></typeparam>
+        /// <returns></returns>
+        public T LoadAndOpenPanel<T>(UILayer uiLayer) where T : UIPanel, new()
+        {
+            Type type;
+            type = typeof(T);
+            T uiPanel;
+
+            // 获取UI绑定属性
+            UIBindingAttribute uiBindingAttribute = type.GetCustomAttribute(typeof(UIBindingAttribute)) as UIBindingAttribute;
+            if (uiBindingAttribute == null)
+            {
+                return null;
+            }
+
+            Transform root = null;
+
+            switch (uiLayer)
+            {
+                case UILayer.Bottom:
+                    root = BottomRoot;
+                    break;
+                case UILayer.Middle:
+                    root = MiddleRoot;
+                    break;
+                case UILayer.Top:
+                    root = TopRoot;
+                    break;
+            }
+
+            string name = type.ToString();
+
+            if (!AllPanel.ContainsKey(name))
+            {
+                uiPanel = new T();
+
+                GameObject prefab = Resources.Load<GameObject>("UIPanel/" + uiBindingAttribute.prefab);
+                GameObject gameObject = Object.Instantiate(prefab, root);
+                uiPanel.SetUIRoot(gameObject);
+                AllPanel.Add(name, uiPanel);
+            }
+            else
+            {
+                uiPanel = (T)AllPanel[name];
+                uiPanel.Root.transform.SetParent(root);
+            }
+
+
+            uiPanel.DelEvent();
+            uiPanel.Show();
+
+
+            return uiPanel;
+        }
+
+        /// <summary>
+        /// 关闭界面
+        /// </summary>
+        /// <param name="isClose"></param>
+        /// <typeparam name="T"></typeparam>
+        public void HideUIPanel<T>(bool isClose = false) where T : UIPanel, new()
+        {
+            Type type;
+            type = typeof(T);
+            string name = type.ToString();
+
+            if (AllPanel.ContainsKey(name))
+            {
+                if (isClose)
+                {
+                    AllPanel[name].Dispose();
+                    AllPanel.Remove(name);
+                }
+                else
+                {
+                    AllPanel[name].Hide();
+                }
+            }
+            else
+            {
+                Debug.Log("没有这个界面");
+            }
+        }
+
+
+        /// <summary>
+        /// 创建组件
+        /// </summary>
+        /// <param name="parent"></param>
+        /// <param name="root"></param>
+        /// <typeparam name="T"></typeparam>
+        /// <returns></returns>
+        public T CreatUICom<T>(UIBasic parent, Transform root) where T : UICom, new()
+        {
+            Type type;
+            type = typeof(T);
+            T uiCom;
+
+            // 获取UI绑定属性
+            UIBindingAttribute uiBindingAttribute = type.GetCustomAttribute(typeof(UIBindingAttribute)) as UIBindingAttribute;
+            if (uiBindingAttribute == null)
+            {
+                return null;
+            }
+
+            string name = type.ToString();
+
+            if (!AllUIComPool.ContainsKey(name))
+            {
+                uiCom = new T();
+                GameObject prefab = Resources.Load<GameObject>("UICom/" + uiBindingAttribute.prefab);
+                GameObject gameObject = Object.Instantiate(prefab, root);
+                uiCom.SetUIRoot(gameObject);
+            }
+            else
+            {
+                uiCom = (T)AllUIComPool[name][0];
+                AllUIComPool[name].Remove(uiCom);
+                if ( AllUIComPool[name].Count==0)
+                {
+                    AllUIComPool.Remove(name);
+                }
+            }
+            uiCom.Root.transform.SetParent(root);
+
+            if (!parent.AllUICom.ContainsKey(name))
+            {
+                List<UICom> uiComs = new List<UICom>();
+                uiComs.Add(uiCom);
+                parent.AllUICom.Add(name, uiComs);
+            }
+            else
+            {
+                parent.AllUICom[name].Add(uiCom);
+            }
+            
+            
+
+            uiCom.DelEvent();
+            uiCom.Show();
+            return uiCom;
+        }
+
+        /// <summary>
+        /// 回收组件
+        /// </summary>
+        /// <param name="uiCom"></param>
+        public void RecUICom(UIBasic parent, UICom uiCom)
+        {
+            string name = uiCom.ToString();
+            if (!AllUIComPool.ContainsKey(name))
+            {
+                List<UICom> coms = new List<UICom>();
+                coms.Add(uiCom);
+                uiCom.Hide();
+                AllUIComPool.Add(name, coms);
+            }
+            else
+            {
+                uiCom.Hide();
+                AllUIComPool[name].Add(uiCom);
+            }
+
+            if (parent.AllUICom.ContainsKey(name))
+            {
+                parent.AllUICom[name].Remove(uiCom);
+                if (parent.AllUICom[name].Count == 0)
+                {
+                    parent.AllUICom.Remove(name);
+                }
+            }
+        }
+    }
+}

+ 11 - 0
Assets/Scripts/Mono/UI/Core/UIManager.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: b548798d9c67f7343b495b53f035feb9
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 61 - 0
Assets/Scripts/Mono/UI/Core/UIPanel.cs

@@ -0,0 +1,61 @@
+using Fort23.Mono;
+using UnityEngine;
+
+namespace Mono
+{
+    public class UIPanel : UIBasic
+    {
+        public override void SetUIRoot(GameObject root)
+        {
+            base.Root = root;
+            UIData = Root.GetComponent<ReferenceCollector>();
+            GetUIData();
+            AddButtonEvent();
+        }
+
+        public override void GetUIData()
+        {
+           
+        }
+
+        public override void AddButtonEvent()
+        {
+        }
+
+        public override void AddEvent()
+        {
+        }
+
+        public override void DelEvent()
+        {
+        }
+
+        public override void Show()
+        {
+            Root.gameObject.SetActive(true);
+            IsShow = true;
+            AddEvent();
+        }
+
+        public override void Hide()
+        {
+            Root.gameObject.SetActive(false);
+            IsShow = false;
+            DelEvent();
+        }
+
+        public override void Dispose()
+        {
+            Hide();
+           
+            foreach (var keyValuePair in AllUICom)
+            {
+                foreach (var uiCom in keyValuePair.Value)
+                {
+                    uiCom.Dispose();
+                }
+            }
+            Object.Destroy(Root);
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/Mono/UI/Core/UIPanel.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: c596a73d4e934392a8f19a76486c9a5b
+timeCreated: 1696749250

+ 3 - 0
Assets/Scripts/Mono/UI/Panel.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 1df31b6fb3e2409a8ab97d3228d4fbe4
+timeCreated: 1696749867

+ 86 - 0
Assets/Scripts/Mono/UI/Panel/CSGPanel.cs

@@ -0,0 +1,86 @@
+using System.Collections.Generic;
+using Excel2Json;
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace Mono
+{
+    [UIBinding(prefab = "CSGPanel")]
+    public class CSGPanel : UIPanel
+    {
+        public Button Btn_DQ;
+        public Button Btn_SR;
+        public Button Btn_Return;
+
+        public RectTransform RegionScrollView;
+        public RectTransform PoetScrollView;
+        public RectTransform PoetContent;
+        public RectTransform RegionContent;
+
+        public override void GetUIData()
+        {
+            Btn_DQ = UIData.Get<Button>("Btn_DQ");
+            Btn_SR = UIData.Get<Button>("Btn_SR");
+            Btn_Return = UIData.Get<Button>("Btn_Return");
+            RegionScrollView = UIData.Get<RectTransform>("RegionScrollView");
+            PoetScrollView = UIData.Get<RectTransform>("PoetScrollView");
+            PoetContent = UIData.Get<RectTransform>("PoetContent");
+            RegionContent = UIData.Get<RectTransform>("RegionContent");
+        }
+
+        public override void AddButtonEvent()
+        {
+            Btn_DQ.onClick.AddListener(() =>
+            {
+                RegionScrollView.gameObject.SetActive(true);
+                PoetScrollView.gameObject.SetActive(false);
+            });
+            Btn_SR.onClick.AddListener(() =>
+            {
+                RegionScrollView.gameObject.SetActive(false);
+                PoetScrollView.gameObject.SetActive(true);
+            });
+            Btn_Return.onClick.AddListener(() =>
+            {
+                UIManager.Instance.HideUIPanel<CSGPanel>();
+                UIManager.Instance.LoadAndOpenPanel<MainScenePanel>(UIManager.UILayer.Middle);
+            });
+        }
+
+        public override void Show()
+        {
+            base.Show();
+
+            CustomInit();
+        }
+
+
+        public List<RegionItem> RegionItems = new List<RegionItem>();
+
+        public void CustomInit()
+        {
+            for (var i = 0; i < RegionItems.Count; i++)
+            {
+                UIManager.Instance.RecUICom(this, RegionItems[i]);
+            }
+
+            RegionItems.Clear();
+            RegionConfig[] regionConfigs = ConfigComponent.Instance.GetAll<RegionConfig>();
+            for (var i = 0; i < regionConfigs.Length; i++)
+            {
+                RegionItem regionItem = UIManager.Instance.CreatUICom<RegionItem>(this, RegionContent);
+                regionItem.CustomInit(regionConfigs[i]);
+                RegionItems.Add(regionItem);
+            }
+
+            // RegionItem regionItem = UIManager.Instance.CreatUICom<RegionItem>(this, RegionContent);
+            // regionItem.CustomInit("江津");
+            //
+            // RegionItem regionItem1 = UIManager.Instance.CreatUICom<RegionItem>(this, RegionContent);
+            // regionItem1.CustomInit("北碚");
+            //
+            // RegionItem regionItem2 = UIManager.Instance.CreatUICom<RegionItem>(this, RegionContent);
+            // regionItem2.CustomInit("合川");
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/Mono/UI/Panel/CSGPanel.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 58aea5cfda6d4619b152b4181e3ebe33
+timeCreated: 1696758783

+ 34 - 0
Assets/Scripts/Mono/UI/Panel/MainScenPanel.cs

@@ -0,0 +1,34 @@
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace Mono
+{
+    [UIBinding(prefab = "MainScenePanel")]
+    public class MainScenePanel : UIPanel
+    {
+        public Button Btn_Home;
+        public Button Btn_Visit;
+        public Button Btn_My;
+        public Button Btn_CSG;
+
+        public override void GetUIData()
+        {
+            Btn_Home = UIData.Get<Button>("Btn_Home");
+            Btn_Visit = UIData.Get<Button>("Btn_Visit");
+            Btn_My = UIData.Get<Button>("Btn_My");
+            Btn_CSG = UIData.Get<Button>("Btn_CSG");
+        }
+
+        public override void AddButtonEvent()
+        {
+            Btn_Home.onClick.AddListener(() => { Debug.Log("点击家园"); });
+            Btn_Visit.onClick.AddListener(() => { Debug.Log("点击游览"); });
+            Btn_My.onClick.AddListener(() => { Debug.Log("点击我的"); });
+            Btn_CSG.onClick.AddListener(() =>
+            {
+                UIManager.Instance.HideUIPanel<MainScenePanel>();
+                UIManager.Instance.LoadAndOpenPanel<CSGPanel>(UIManager.UILayer.Middle);
+            });
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/Mono/UI/Panel/MainScenPanel.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 45d7dea744f44df481ea7261fe19361b
+timeCreated: 1696754594

+ 27 - 0
Assets/Scripts/Mono/UI/Panel/StartPanel.cs

@@ -0,0 +1,27 @@
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace Mono
+{
+    [UIBinding(prefab = "StartPanel")]
+    public class StartPanel : UIPanel
+    {
+        public Button Btn_Start;
+
+
+        public override void GetUIData()
+        {
+            Btn_Start = UIData.Get<Button>(nameof(Btn_Start));
+        }
+
+        public override void AddButtonEvent()
+        {
+            Btn_Start.onClick.AddListener(() =>
+            {
+                Debug.Log("点击开始游览");
+                UIManager.Instance.HideUIPanel<StartPanel>();
+                UIManager.Instance.LoadAndOpenPanel<MainScenePanel>(UIManager.UILayer.Middle);
+            });
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/Mono/UI/Panel/StartPanel.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: f9c3b40753354cafbba46cb21b23f2e3
+timeCreated: 1696749901

+ 215 - 0
Assets/Scripts/ReferenceCollector.cs

@@ -0,0 +1,215 @@
+#if !COMBAT_SERVER
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+//Object并非C#基础中的Object,而是 UnityEngine.Object
+using Object = UnityEngine.Object;
+#if UNITY_EDITOR
+using UnityEditor;
+
+#endif
+
+namespace Fort23.Mono
+{
+    //使其能在Inspector面板显示,并且可以被赋予相应值
+    [Serializable]
+    public class ReferenceCollectorData
+    {
+        public string key;
+
+        //Object并非C#基础中的Object,而是 UnityEngine.Object
+        public Object gameObject;
+
+        //是否对文件夹打AB包
+        public bool isAssetBundle;
+        public bool isList;
+        [NonReorderable] public List<ReferenceListCollectorData> ListCollectorDatas = new List<ReferenceListCollectorData>();
+    }
+
+    [Serializable]
+    public class ReferenceListCollectorData
+    {
+        public Object gameObject;
+    }
+
+    //继承IComparer对比器,Ordinal会使用序号排序规则比较字符串,因为是byte级别的比较,所以准确性和性能都不错
+    public class ReferenceCollectorDataComparer : IComparer<ReferenceCollectorData>
+    {
+        public int Compare(ReferenceCollectorData x, ReferenceCollectorData y)
+        {
+            return string.Compare(x.key, y.key, StringComparison.Ordinal);
+        }
+    }
+
+    //继承ISerializationCallbackReceiver后会增加OnAfterDeserialize和OnBeforeSerialize两个回调函数,如果有需要可以在对需要序列化的东西进行操作
+    //ET在这里主要是在OnAfterDeserialize回调函数中将data中存储的ReferenceCollectorData转换为dict中的Object,方便之后的使用
+    //注意UNITY_EDITOR宏定义,在编译以后,部分编辑器相关函数并不存在
+    public class ReferenceCollector : MonoBehaviour, ISerializationCallbackReceiver
+    {
+        //用于序列化的List
+        public List<ReferenceCollectorData> data = new List<ReferenceCollectorData>();
+
+        public bool isAssetBundle = true;
+
+        // public GameObject 
+
+        //Object并非C#基础中的Object,而是 UnityEngine.Object
+        private readonly Dictionary<string, object> dict = new Dictionary<string, object>();
+
+#if UNITY_EDITOR
+        //添加新的元素
+        public void Add(string key, Object obj)
+        {
+            SerializedObject serializedObject = new SerializedObject(this);
+            //根据PropertyPath读取数据
+            //如果不知道具体的格式,可以右键用文本编辑器打开一个prefab文件(如Bundles/UI目录中的几个)
+            //因为这几个prefab挂载了ReferenceCollector,所以搜索data就能找到存储的数据
+            SerializedProperty dataProperty = serializedObject.FindProperty(nameof(data));
+            int i;
+            //遍历data,看添加的数据是否存在相同key
+            for (i = 0; i < data.Count; i++)
+            {
+                if (data[i].key == key)
+                {
+                    break;
+                }
+            }
+
+            //不等于data.Count意为已经存在于data List中,直接赋值即可
+            if (i != data.Count)
+            {
+                //根据i的值获取dataProperty,也就是data中的对应ReferenceCollectorData,不过在这里,是对Property进行的读取,有点类似json或者xml的节点
+                SerializedProperty element = dataProperty.GetArrayElementAtIndex(i);
+                //对对应节点进行赋值,值为gameobject相对应的fileID
+                //fileID独一无二,单对单关系,其他挂载在这个gameobject上的script或组件会保存相对应的fileID
+                element.FindPropertyRelative(nameof(gameObject)).objectReferenceValue = obj;
+            }
+            else
+            {
+                //等于则说明key在data中无对应元素,所以得向其插入新的元素
+                dataProperty.InsertArrayElementAtIndex(i);
+                SerializedProperty element = dataProperty.GetArrayElementAtIndex(i);
+                element.FindPropertyRelative(nameof(key)).stringValue = key;
+                element.FindPropertyRelative(nameof(gameObject)).objectReferenceValue = obj;
+            }
+
+            //应用与更新
+            EditorUtility.SetDirty(this);
+            serializedObject.ApplyModifiedProperties();
+            serializedObject.UpdateIfRequiredOrScript();
+        }
+
+        //删除元素,知识点与上面的添加相似
+        public void Remove(string key)
+        {
+            SerializedObject serializedObject = new SerializedObject(this);
+            SerializedProperty dataProperty = serializedObject.FindProperty(nameof(data));
+            int i;
+            for (i = 0; i < data.Count; i++)
+            {
+                if (data[i].key == key)
+                {
+                    break;
+                }
+            }
+
+            if (i != data.Count)
+            {
+                dataProperty.DeleteArrayElementAtIndex(i);
+            }
+
+            EditorUtility.SetDirty(this);
+            serializedObject.ApplyModifiedProperties();
+            serializedObject.UpdateIfRequiredOrScript();
+        }
+
+        public void Clear()
+        {
+            SerializedObject serializedObject = new SerializedObject(this);
+            //根据PropertyPath读取prefab文件中的数据
+            //如果不知道具体的格式,可以直接右键用文本编辑器打开,搜索data就能找到
+            var dataProperty = serializedObject.FindProperty(nameof(data));
+            dataProperty.ClearArray();
+            EditorUtility.SetDirty(this);
+            serializedObject.ApplyModifiedProperties();
+            serializedObject.UpdateIfRequiredOrScript();
+        }
+
+        public void Sort()
+        {
+            SerializedObject serializedObject = new SerializedObject(this);
+            data.Sort(new ReferenceCollectorDataComparer());
+            EditorUtility.SetDirty(this);
+            serializedObject.ApplyModifiedProperties();
+            serializedObject.UpdateIfRequiredOrScript();
+        }
+#endif
+        //使用泛型返回对应key的gameobject
+        public T Get<T>(string key) where T : class
+        {
+            object dictGo;
+            if (!dict.TryGetValue(key, out dictGo))
+            {
+                return null;
+            }
+
+            return dictGo as T;
+        }
+
+        public Dictionary<string, object> GetDict()
+        {
+            return dict;
+        }
+
+        public List<ReferenceCollectorData> GetData()
+        {
+            return data;
+        }
+
+        public object GetObject(string key)
+        {
+            object dictGo;
+            if (!dict.TryGetValue(key, out dictGo))
+            {
+                return null;
+            }
+
+            return dictGo;
+        }
+
+        public void OnBeforeSerialize()
+        {
+        }
+
+        //在反序列化后运行
+        public void OnAfterDeserialize()
+        {
+            dict.Clear();
+            foreach (ReferenceCollectorData referenceCollectorData in data)
+            {
+                if (referenceCollectorData.isList)
+                {
+                    List<object> objvalue = new List<object>();
+                    for (int i = 0; i < referenceCollectorData.ListCollectorDatas.Count; i++)
+                    {
+                        objvalue.Add(referenceCollectorData.ListCollectorDatas[i].gameObject);
+                    }
+
+                    if (!dict.ContainsKey(referenceCollectorData.key))
+                    {
+                        dict.Add(referenceCollectorData.key, objvalue);
+                    }
+                }
+                else
+                {
+                    if (!dict.ContainsKey(referenceCollectorData.key))
+                    {
+                        dict.Add(referenceCollectorData.key, referenceCollectorData.gameObject);
+                    }
+                }
+            }
+        }
+    }
+}
+#endif

+ 11 - 0
Assets/Scripts/ReferenceCollector.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 4810a0857c909354fa00c3aafdeac753
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 27 - 0
Assets/UniversalRenderPipelineGlobalSettings.asset

@@ -0,0 +1,27 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 2ec995e51a6e251468d2a3fd8a686257, type: 3}
+  m_Name: UniversalRenderPipelineGlobalSettings
+  m_EditorClassIdentifier: 
+  k_AssetVersion: 2
+  lightLayerName0: Light Layer default
+  lightLayerName1: Light Layer 1
+  lightLayerName2: Light Layer 2
+  lightLayerName3: Light Layer 3
+  lightLayerName4: Light Layer 4
+  lightLayerName5: Light Layer 5
+  lightLayerName6: Light Layer 6
+  lightLayerName7: Light Layer 7
+  m_StripDebugVariants: 1
+  m_StripUnusedPostProcessingVariants: 0
+  m_StripUnusedVariants: 1
+  supportRuntimeDebugDisplay: 0

Some files were not shown because too many files changed in this diff