Browse Source

完成批量调整

liuqilin 7 years ago
parent
commit
5b42556692
54 changed files with 13759 additions and 11746 deletions
  1. BIN
      .vs/Garden5_2017/v15/Server/sqlite3/storage.ide
  2. BIN
      .vs/Garden5_2017/v15/Server/sqlite3/storage.ide-shm
  3. BIN
      .vs/Garden5_2017/v15/Server/sqlite3/storage.ide-wal
  4. 2 0
      Assets/Resource/Prefab/Object/DebugMode.prefab
  5. 198 0
      Assets/Resource/Prefab/Object/Garden.prefab
  6. 102 2
      Assets/Resource/Prefab/Object/Tutorial.prefab
  7. 610 24
      Assets/Resource/Prefab/PrefabUI/Canvas.prefab
  8. 192 0
      Assets/Resource/Prefab/PrefabUI/MouseCloseItem.prefab
  9. 10 0
      Assets/Resource/Prefab/PrefabUI/MouseCloseItem.prefab.meta
  10. 81 0
      Assets/Resource/Prefab/PrefabUI/UIFlyGold.prefab
  11. 10 0
      Assets/Resource/Prefab/PrefabUI/UIFlyGold.prefab.meta
  12. 2 2
      Assets/Resource/Shader/DragonboneUGUIMat.mat
  13. 1 1
      Assets/Resource/Shader/GrayMat.mat
  14. 10 2
      Assets/Resource/XML/Config/cost_config.xml
  15. 1 1
      Assets/Resource/XML/Config/skill_config.xml
  16. 2 1
      Assets/Resource/XML/PlayerConfig.xml
  17. 7 0
      Assets/Resource/XML/lan/ChineseSimplified.xml
  18. 7 0
      Assets/Resource/XML/lan/ChineseTraditional.xml
  19. 7 0
      Assets/Resource/XML/lan/English.xml
  20. BIN
      Assets/Resource/Xlsx/cost_config.xlsx
  21. BIN
      Assets/Resource/Xlsx/language_config.xlsx
  22. BIN
      Assets/Resource/Xlsx/skill_config.xlsx
  23. 1161 1125
      Assets/Script/Label/CanvasLabel.cs
  24. 6 0
      Assets/Script/Label/LanguageLabel.cs
  25. 82 81
      Assets/Script/Label/PlayerConfigLabel.cs
  26. 154 153
      Assets/Script/Label/ResourceLabel.cs
  27. 86 0
      Assets/Script/Manage/CommentRewardManager.cs
  28. 13 0
      Assets/Script/Manage/CommentRewardManager.cs.meta
  29. 38 0
      Assets/Script/Manage/ConfigManager.cs
  30. 2 0
      Assets/Script/Manage/HttpManager.cs
  31. 562 550
      Assets/Script/Manage/Initializer.cs
  32. 1547 1538
      Assets/Script/Manage/Manager.cs
  33. 10 0
      Assets/Script/Manage/Panel.meta
  34. 83 0
      Assets/Script/Manage/Panel/ChangeMouseBubble.cs
  35. 13 0
      Assets/Script/Manage/Panel/ChangeMouseBubble.cs.meta
  36. 239 0
      Assets/Script/Manage/Panel/ChangeMousePanel.cs
  37. 13 0
      Assets/Script/Manage/Panel/ChangeMousePanel.cs.meta
  38. 37 0
      Assets/Script/Manage/Panel/EyeCloseItem.cs
  39. 13 0
      Assets/Script/Manage/Panel/EyeCloseItem.cs.meta
  40. 36 0
      Assets/Script/Manage/Panel/MouseCloseItem.cs
  41. 13 0
      Assets/Script/Manage/Panel/MouseCloseItem.cs.meta
  42. 286 286
      Assets/Script/Manage/PlayerManager.cs
  43. 713 713
      Assets/Script/Manage/SocialManager.cs
  44. 1702 1642
      Assets/Script/Manage/TutorialManager.cs
  45. 3918 3910
      Assets/Script/Manage/UIManager.cs
  46. 1204 1158
      Assets/Script/Manage/VisitManager.cs
  47. 19 8
      Assets/Script/Object/Player.cs
  48. 189 188
      Assets/Script/Social/FashionShowCommentPanel.cs
  49. 270 260
      Assets/Script/Tool/Anim/TweenVec.cs
  50. 19 16
      Assets/Script/Tool/Auxiliary.cs
  51. 5 5
      Assets/Script/Tool/Bundle.cs
  52. 58 55
      Assets/Script/Tool/SceneMask.cs
  53. 25 25
      Assets/Script/Tool/UI/HudTarget.cs
  54. 1 0
      ProjectSettings/GraphicsSettings.asset

BIN
.vs/Garden5_2017/v15/Server/sqlite3/storage.ide


BIN
.vs/Garden5_2017/v15/Server/sqlite3/storage.ide-shm


BIN
.vs/Garden5_2017/v15/Server/sqlite3/storage.ide-wal


+ 2 - 0
Assets/Resource/Prefab/Object/DebugMode.prefab

@@ -161,6 +161,8 @@ MonoBehaviour:
   - {fileID: 1173200693923306, guid: 3cbac8864a3ca4a4fbee23187ed8b18d, type: 2}
   - {fileID: 1523257016453190, guid: 4267e2a622c30f343b2a61c510f2afbb, type: 2}
   - {fileID: 1736686314392062, guid: d1a1d9de169ce7748bd63fdc38eb4f9b, type: 2}
+  - {fileID: 1559384439776738, guid: f73ef7b72254f574b83ae55b248d5d63, type: 2}
+  - {fileID: 1312818161542146, guid: f8e3f7c7d79a28745b5e7015b85a6407, type: 2}
   AtlasList:
   - {fileID: 21300004, guid: b31bbacb2e0ff3d459f4878983a39b50, type: 3}
   - {fileID: 21300006, guid: b31bbacb2e0ff3d459f4878983a39b50, type: 3}

+ 198 - 0
Assets/Resource/Prefab/Object/Garden.prefab

@@ -385,6 +385,21 @@ GameObject:
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
   m_IsActive: 1
+--- !u!1 &1606339575310926
+GameObject:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  serializedVersion: 5
+  m_Component:
+  - component: {fileID: 224526022893638850}
+  m_Layer: 5
+  m_Name: UIFlyGoldPos
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
 --- !u!1 &1612795935123952
 GameObject:
   m_ObjectHideFlags: 1
@@ -778,6 +793,7 @@ Transform:
   m_Children:
   - {fileID: 4008559618325982}
   - {fileID: 4576759688754552}
+  - {fileID: 224526022893638850}
   m_Father: {fileID: 0}
   m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -1200,9 +1216,20 @@ BoxCollider2D:
   m_Material: {fileID: 0}
   m_IsTrigger: 1
   m_UsedByEffector: 0
+  m_UsedByComposite: 0
   m_Offset: {x: 0, y: 0}
+  m_SpriteTilingProperty:
+    border: {x: 0, y: 0, z: 0, w: 0}
+    pivot: {x: 0.5, y: 0.5}
+    oldSize: {x: 15.114285, y: 10.785714}
+    newSize: {x: 1, y: 1}
+    adaptiveTilingThreshold: 0.5
+    drawMode: 0
+    adaptiveTiling: 0
+  m_AutoTiling: 0
   serializedVersion: 2
   m_Size: {x: 15.12, y: 10.8}
+  m_EdgeRadius: 0
 --- !u!95 &95656197025045548
 Animator:
   serializedVersion: 3
@@ -1229,6 +1256,7 @@ SpriteRenderer:
   m_Enabled: 1
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -1244,17 +1272,25 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 21300000, guid: 1fa36d506663581428d79677d65831ba, type: 3}
   m_Color: {r: 1, g: 1, b: 1, a: 1}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
 --- !u!212 &212095036317392974
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -1264,6 +1300,7 @@ SpriteRenderer:
   m_Enabled: 0
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -1279,17 +1316,25 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 21300000, guid: 0f3e3eeea807f624094c4ec12bed1cc7, type: 3}
   m_Color: {r: 1, g: 1, b: 1, a: 1}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
 --- !u!212 &212185477215766394
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -1299,6 +1344,7 @@ SpriteRenderer:
   m_Enabled: 0
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -1314,17 +1360,25 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 21300000, guid: e8b64131e9364da43a1355c81da8ba16, type: 3}
   m_Color: {r: 1, g: 1, b: 1, a: 1}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
 --- !u!212 &212297538244440076
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -1334,6 +1388,7 @@ SpriteRenderer:
   m_Enabled: 1
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -1349,17 +1404,25 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 21300000, guid: 1d48b7dbff4e9544f8f515b8853663d7, type: 3}
   m_Color: {r: 1, g: 1, b: 1, a: 1}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
 --- !u!212 &212306657225187814
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -1369,6 +1432,7 @@ SpriteRenderer:
   m_Enabled: 1
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -1384,17 +1448,25 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 0}
   m_Color: {r: 1, g: 1, b: 1, a: 0}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 0
+  m_MaskInteraction: 0
 --- !u!212 &212309050241798670
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -1404,6 +1476,7 @@ SpriteRenderer:
   m_Enabled: 1
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -1419,17 +1492,25 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 21300000, guid: 4324bacd5b14e004da78e4bc8983d4f9, type: 3}
   m_Color: {r: 1, g: 1, b: 1, a: 0}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
 --- !u!212 &212319376484865296
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -1439,6 +1520,7 @@ SpriteRenderer:
   m_Enabled: 1
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -1454,17 +1536,25 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 21300000, guid: a32314b9bd4a082478ff8d1ad9a5c0ed, type: 3}
   m_Color: {r: 1, g: 1, b: 1, a: 0}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
 --- !u!212 &212354945701907106
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -1474,6 +1564,7 @@ SpriteRenderer:
   m_Enabled: 1
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -1489,17 +1580,25 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 21300000, guid: a7c224cfc73846c4f872c063adc586b2, type: 3}
   m_Color: {r: 1, g: 1, b: 1, a: 1}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
 --- !u!212 &212394763641946984
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -1509,6 +1608,7 @@ SpriteRenderer:
   m_Enabled: 1
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -1524,17 +1624,25 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 21300000, guid: 70c3c26b0d699b447a93c31f311fc6f0, type: 3}
   m_Color: {r: 1, g: 1, b: 1, a: 1}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
 --- !u!212 &212537051338820940
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -1544,6 +1652,7 @@ SpriteRenderer:
   m_Enabled: 1
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -1559,17 +1668,25 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 21300000, guid: 70c3c26b0d699b447a93c31f311fc6f0, type: 3}
   m_Color: {r: 1, g: 1, b: 1, a: 1}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
 --- !u!212 &212548306413466646
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -1579,6 +1696,7 @@ SpriteRenderer:
   m_Enabled: 1
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -1594,17 +1712,25 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 21300000, guid: 835b8b4c0a7b71a4d9ac0f6aca9fb9f0, type: 3}
   m_Color: {r: 1, g: 1, b: 1, a: 0}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
 --- !u!212 &212678618548551084
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -1614,6 +1740,7 @@ SpriteRenderer:
   m_Enabled: 1
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -1629,17 +1756,25 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 21300000, guid: 771441d8180f85841913a3e43b69db70, type: 3}
   m_Color: {r: 1, g: 1, b: 1, a: 1}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
 --- !u!212 &212704068213746162
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -1649,6 +1784,7 @@ SpriteRenderer:
   m_Enabled: 1
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -1664,17 +1800,25 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 21300000, guid: 70c3c26b0d699b447a93c31f311fc6f0, type: 3}
   m_Color: {r: 1, g: 1, b: 1, a: 1}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
 --- !u!212 &212760045093916298
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -1684,6 +1828,7 @@ SpriteRenderer:
   m_Enabled: 1
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -1699,17 +1844,25 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 0}
   m_Color: {r: 1, g: 1, b: 1, a: 1}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 0
+  m_MaskInteraction: 0
 --- !u!212 &212768922091164368
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -1719,6 +1872,7 @@ SpriteRenderer:
   m_Enabled: 0
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -1734,17 +1888,25 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 21300000, guid: c7d5126aad641e84c80dcc1465fc8099, type: 3}
   m_Color: {r: 1, g: 1, b: 1, a: 1}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
 --- !u!212 &212779788271210252
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -1754,6 +1916,7 @@ SpriteRenderer:
   m_Enabled: 1
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -1769,17 +1932,25 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 21300000, guid: f53fd937a56c897499953ea605e80b40, type: 3}
   m_Color: {r: 1, g: 1, b: 1, a: 1}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
 --- !u!212 &212800766242443178
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -1789,6 +1960,7 @@ SpriteRenderer:
   m_Enabled: 1
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -1804,14 +1976,40 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 21300000, guid: 79b5132a50620a84bb48bfe072f3819d, type: 3}
   m_Color: {r: 1, g: 1, b: 1, a: 1}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
+--- !u!224 &224526022893638850
+RectTransform:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1606339575310926}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 2.25, z: 0}
+  m_LocalScale: {x: 0, y: 0, z: 0}
+  m_Children: []
+  m_Father: {fileID: 4257060777002720}
+  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: 2.25}
+  m_SizeDelta: {x: 100, y: 100}
+  m_Pivot: {x: 0.5, y: 0.5}

+ 102 - 2
Assets/Resource/Prefab/Object/Tutorial.prefab

@@ -176,7 +176,7 @@ Transform:
   m_PrefabInternal: {fileID: 100100000}
   m_GameObject: {fileID: 1766945874161584}
   m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
-  m_LocalPosition: {x: 0, y: -0.049999952, z: -5}
+  m_LocalPosition: {x: 0, y: -0.049999952, z: -10}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_Children:
   - {fileID: 4623297893201200}
@@ -292,9 +292,20 @@ BoxCollider2D:
   m_Material: {fileID: 0}
   m_IsTrigger: 1
   m_UsedByEffector: 0
+  m_UsedByComposite: 0
   m_Offset: {x: 0, y: 0.00000011920929}
+  m_SpriteTilingProperty:
+    border: {x: 0, y: 0, z: 0, w: 0}
+    pivot: {x: 0.5, y: 0.5}
+    oldSize: {x: 6.9499993, y: 7.683333}
+    newSize: {x: 1, y: 1}
+    adaptiveTilingThreshold: 0.5
+    drawMode: 0
+    adaptiveTiling: 0
+  m_AutoTiling: 0
   serializedVersion: 2
   m_Size: {x: 6.5, y: 7.69}
+  m_EdgeRadius: 0
 --- !u!61 &61049781784132804
 BoxCollider2D:
   m_ObjectHideFlags: 1
@@ -306,23 +317,45 @@ BoxCollider2D:
   m_Material: {fileID: 0}
   m_IsTrigger: 1
   m_UsedByEffector: 0
+  m_UsedByComposite: 0
   m_Offset: {x: 0, y: 0.00000011920929}
+  m_SpriteTilingProperty:
+    border: {x: 0, y: 0, z: 0, w: 0}
+    pivot: {x: 0.5, y: 0.5}
+    oldSize: {x: 6.9499993, y: 7.683333}
+    newSize: {x: 1, y: 1}
+    adaptiveTilingThreshold: 0.5
+    drawMode: 0
+    adaptiveTiling: 0
+  m_AutoTiling: 0
   serializedVersion: 2
   m_Size: {x: 6.5, y: 7.69}
+  m_EdgeRadius: 0
 --- !u!61 &61099977475492946
 BoxCollider2D:
   m_ObjectHideFlags: 1
   m_PrefabParentObject: {fileID: 0}
   m_PrefabInternal: {fileID: 100100000}
   m_GameObject: {fileID: 1766945874161584}
-  m_Enabled: 1
+  m_Enabled: 0
   m_Density: 1
   m_Material: {fileID: 0}
   m_IsTrigger: 1
   m_UsedByEffector: 0
+  m_UsedByComposite: 0
   m_Offset: {x: 0, y: 0}
+  m_SpriteTilingProperty:
+    border: {x: 0, y: 0, z: 0, w: 0}
+    pivot: {x: 0, y: 0}
+    oldSize: {x: 0, y: 0}
+    newSize: {x: 0, y: 0}
+    adaptiveTilingThreshold: 0
+    drawMode: 0
+    adaptiveTiling: 0
+  m_AutoTiling: 0
   serializedVersion: 2
   m_Size: {x: 20, y: 12}
+  m_EdgeRadius: 0
 --- !u!61 &61264148295984334
 BoxCollider2D:
   m_ObjectHideFlags: 1
@@ -334,9 +367,20 @@ BoxCollider2D:
   m_Material: {fileID: 0}
   m_IsTrigger: 1
   m_UsedByEffector: 0
+  m_UsedByComposite: 0
   m_Offset: {x: 0, y: 0}
+  m_SpriteTilingProperty:
+    border: {x: 0, y: 0, z: 0, w: 0}
+    pivot: {x: 0, y: 0}
+    oldSize: {x: 0, y: 0}
+    newSize: {x: 0, y: 0}
+    adaptiveTilingThreshold: 0
+    drawMode: 0
+    adaptiveTiling: 0
+  m_AutoTiling: 0
   serializedVersion: 2
   m_Size: {x: 1, y: 1}
+  m_EdgeRadius: 0
 --- !u!61 &61572162505445090
 BoxCollider2D:
   m_ObjectHideFlags: 1
@@ -348,9 +392,20 @@ BoxCollider2D:
   m_Material: {fileID: 0}
   m_IsTrigger: 1
   m_UsedByEffector: 0
+  m_UsedByComposite: 0
   m_Offset: {x: 0, y: 0.00000011920929}
+  m_SpriteTilingProperty:
+    border: {x: 0, y: 0, z: 0, w: 0}
+    pivot: {x: 0.5, y: 0.5}
+    oldSize: {x: 6.9499993, y: 7.683333}
+    newSize: {x: 1, y: 1}
+    adaptiveTilingThreshold: 0.5
+    drawMode: 0
+    adaptiveTiling: 0
+  m_AutoTiling: 0
   serializedVersion: 2
   m_Size: {x: 6.5, y: 7.69}
+  m_EdgeRadius: 0
 --- !u!212 &212165519778928714
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -360,6 +415,7 @@ SpriteRenderer:
   m_Enabled: 1
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -375,17 +431,25 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 21300000, guid: c908138147baba04c85352056094f108, type: 3}
   m_Color: {r: 1, g: 1, b: 1, a: 0.8235294}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
 --- !u!212 &212568885060939064
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -395,6 +459,7 @@ SpriteRenderer:
   m_Enabled: 1
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -410,17 +475,25 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 21300000, guid: c908138147baba04c85352056094f108, type: 3}
   m_Color: {r: 1, g: 1, b: 1, a: 0.8235294}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
 --- !u!212 &212591545104655128
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -430,6 +503,7 @@ SpriteRenderer:
   m_Enabled: 1
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -445,17 +519,25 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 21300000, guid: c908138147baba04c85352056094f108, type: 3}
   m_Color: {r: 1, g: 1, b: 1, a: 0.8235294}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
 --- !u!212 &212599308390594212
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -465,6 +547,7 @@ SpriteRenderer:
   m_Enabled: 1
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -480,17 +563,25 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 0}
   m_Color: {r: 0, g: 0, b: 0, a: 1}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 0
+  m_MaskInteraction: 0
 --- !u!212 &212652995293248826
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -500,6 +591,7 @@ SpriteRenderer:
   m_Enabled: 1
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -515,14 +607,22 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 21300000, guid: e4b9c6a4105e96345a144d5439198512, type: 3}
   m_Color: {r: 0, g: 0, b: 0, a: 0.7058824}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0

File diff suppressed because it is too large
+ 610 - 24
Assets/Resource/Prefab/PrefabUI/Canvas.prefab


+ 192 - 0
Assets/Resource/Prefab/PrefabUI/MouseCloseItem.prefab

@@ -0,0 +1,192 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1001 &100100000
+Prefab:
+  m_ObjectHideFlags: 1
+  serializedVersion: 2
+  m_Modification:
+    m_TransformParent: {fileID: 0}
+    m_Modifications: []
+    m_RemovedComponents: []
+  m_ParentPrefab: {fileID: 0}
+  m_RootGameObject: {fileID: 1559384439776738}
+  m_IsPrefabParent: 1
+--- !u!1 &1559384439776738
+GameObject:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  serializedVersion: 5
+  m_Component:
+  - component: {fileID: 224451398661898108}
+  - component: {fileID: 222332960584945598}
+  - component: {fileID: 114795514948131156}
+  - component: {fileID: 114437920074334876}
+  m_Layer: 5
+  m_Name: MouseCloseItem
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!1 &1801938898403454
+GameObject:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  serializedVersion: 5
+  m_Component:
+  - component: {fileID: 224236438488272980}
+  - component: {fileID: 222383622626086382}
+  - component: {fileID: 114504935980382334}
+  m_Layer: 5
+  m_Name: Icon
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!114 &114437920074334876
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1559384439776738}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    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_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_DisabledSprite: {fileID: 0}
+  m_AnimationTriggers:
+    m_NormalTrigger: Normal
+    m_HighlightedTrigger: Highlighted
+    m_PressedTrigger: Pressed
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 114795514948131156}
+  m_OnClick:
+    m_PersistentCalls:
+      m_Calls: []
+    m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0,
+      Culture=neutral, PublicKeyToken=null
+--- !u!114 &114504935980382334
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1801938898403454}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+    m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
+      Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+  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
+--- !u!114 &114795514948131156
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1559384439776738}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+    m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
+      Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+  m_Sprite: {fileID: 21300000, guid: 539ac228823be0f43baa8723377703e3, type: 3}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+--- !u!222 &222332960584945598
+CanvasRenderer:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1559384439776738}
+--- !u!222 &222383622626086382
+CanvasRenderer:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1801938898403454}
+--- !u!224 &224236438488272980
+RectTransform:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1801938898403454}
+  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_Children: []
+  m_Father: {fileID: 224451398661898108}
+  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: 56.81, y: 56.81}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!224 &224451398661898108
+RectTransform:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1559384439776738}
+  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_Children:
+  - {fileID: 224236438488272980}
+  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.5, y: 0.5}

+ 10 - 0
Assets/Resource/Prefab/PrefabUI/MouseCloseItem.prefab.meta

@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: f73ef7b72254f574b83ae55b248d5d63
+timeCreated: 1525663246
+licenseType: Pro
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 100100000
+  userData: 
+  assetBundleName: ui
+  assetBundleVariant: 

+ 81 - 0
Assets/Resource/Prefab/PrefabUI/UIFlyGold.prefab

@@ -0,0 +1,81 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1001 &100100000
+Prefab:
+  m_ObjectHideFlags: 1
+  serializedVersion: 2
+  m_Modification:
+    m_TransformParent: {fileID: 0}
+    m_Modifications: []
+    m_RemovedComponents: []
+  m_ParentPrefab: {fileID: 0}
+  m_RootGameObject: {fileID: 1312818161542146}
+  m_IsPrefabParent: 1
+--- !u!1 &1312818161542146
+GameObject:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  serializedVersion: 5
+  m_Component:
+  - component: {fileID: 224619927066263744}
+  - component: {fileID: 222152920009496550}
+  - component: {fileID: 114086464273619404}
+  m_Layer: 5
+  m_Name: UIFlyGold
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!114 &114086464273619404
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1312818161542146}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+    m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
+      Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+  m_Sprite: {fileID: 21300000, guid: 95463847f23b0ac40a1ad2b0866ab7b1, type: 3}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+--- !u!222 &222152920009496550
+CanvasRenderer:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1312818161542146}
+--- !u!224 &224619927066263744
+RectTransform:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1312818161542146}
+  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_Children: []
+  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: 100, y: 100}
+  m_Pivot: {x: 0.5, y: 0.5}

+ 10 - 0
Assets/Resource/Prefab/PrefabUI/UIFlyGold.prefab.meta

@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: f8e3f7c7d79a28745b5e7015b85a6407
+timeCreated: 1525684778
+licenseType: Pro
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 100100000
+  userData: 
+  assetBundleName: ui
+  assetBundleVariant: 

+ 2 - 2
Assets/Resource/Shader/DragonboneUGUIMat.mat

@@ -8,7 +8,7 @@ Material:
   m_PrefabInternal: {fileID: 0}
   m_Name: DragonboneUGUIMat
   m_Shader: {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0}
-  m_ShaderKeywords: UNITY_UI_CLIP_RECT _EMISSION
+  m_ShaderKeywords: _EMISSION
   m_LightmapFlags: 1
   m_EnableInstancingVariants: 0
   m_DoubleSidedGI: 0
@@ -39,7 +39,7 @@ Material:
         m_Scale: {x: 1, y: 1}
         m_Offset: {x: 0, y: 0}
     - _MainTex:
-        m_Texture: {fileID: 2800000, guid: c0256ea9e745dc544ae7035b55f87b84, type: 3}
+        m_Texture: {fileID: 2800000, guid: c486bd2e1e577b24a86013546709abda, type: 3}
         m_Scale: {x: 1, y: 1}
         m_Offset: {x: 0, y: 0}
     - _MetallicGlossMap:

+ 1 - 1
Assets/Resource/Shader/GrayMat.mat

@@ -8,7 +8,7 @@ Material:
   m_PrefabInternal: {fileID: 0}
   m_Name: GrayMat
   m_Shader: {fileID: 4800000, guid: ac390d8200b91bd419e2d7b9e580d07d, type: 3}
-  m_ShaderKeywords: UNITY_UI_CLIP_RECT _EMISSION
+  m_ShaderKeywords: _EMISSION
   m_LightmapFlags: 1
   m_EnableInstancingVariants: 0
   m_DoubleSidedGI: 0

+ 10 - 2
Assets/Resource/XML/Config/cost_config.xml

@@ -1,11 +1,19 @@
 <data>
-  <item id="1" desc="c*1000" />
+  <item id="1" fml="c*1000" desc="改名字" />
+  <item id="2" fml="c*200" desc="换嘴巴和眼睛花费的金币" />
+  <item id="3" fml="25" desc="换嘴巴和眼睛花费的钻石" />
+  <item id="4" fml="c*0.001" desc="留言获得金币" />
+  <item id="5" fml="0.15" desc="留言获得金币的概率" />
+  <item id="6" fml="300" desc="留言获得金币的时间间隔" />
   <comment>
     <id>
 
 </id>
+    <fml>
+公式
+</fml>
     <desc>
-改名字花费
+说明
 </desc>
   </comment>
 </data>

+ 1 - 1
Assets/Resource/XML/Config/skill_config.xml

@@ -5,7 +5,7 @@
   <item id="4" name="繁花似锦" class="4" class_id="1" skill_index="" reduce_cd="" coin_person="200%" person="" coin_once="" diamond_once="" skill_cd="" duration="900" cd="900" unlock_lv="40" unlock_ahead_cur="2" unlock_ahead_delta="10" unlock_ahead_minimun="100" unlock_cur="" unlock_amnt="" unlock_pos="" use__cur="2" use_amnt="150" upgrade_cur="" upgrade_amnt="" upgrade_fml="" upgrade_plus="" upgrade_person="" upgrade_coin_once="" upgrade_duration="" upgrade_cd="" desc="所有金币产出提升[&amp;coin_person&amp;],持续[&amp;duration&amp;]分钟" icon="绿-繁花似锦" anim="" label="" />
   <item id="5" name="免费获取金币" class="3" class_id="0" skill_index="" reduce_cd="" coin_person="" person="" coin_once="15000%" diamond_once="" skill_cd="" duration="" cd="300" unlock_lv="" unlock_ahead_cur="" unlock_ahead_delta="" unlock_ahead_minimun="" unlock_cur="" unlock_amnt="" unlock_pos="" use__cur="5" use_amnt="" upgrade_cur="" upgrade_amnt="" upgrade_fml="" upgrade_plus="" upgrade_person="" upgrade_coin_once="" upgrade_duration="" upgrade_cd="" desc="免费获取金币[&amp;coin_once&amp;]" icon="绿-免费金币" anim="" label="" />
   <item id="6" name="免费获取钻石" class="4" class_id="0" skill_index="" reduce_cd="" coin_person="" person="" coin_once="" diamond_once="5" skill_cd="" duration="" cd="300" unlock_lv="" unlock_ahead_cur="" unlock_ahead_delta="" unlock_ahead_minimun="" unlock_cur="" unlock_amnt="" unlock_pos="" use__cur="5" use_amnt="" upgrade_cur="" upgrade_amnt="" upgrade_fml="" upgrade_plus="" upgrade_person="" upgrade_coin_once="" upgrade_duration="" upgrade_cd="" desc="免费获取金币[&amp;diamond_once&amp;]" icon="蓝-免费钻" anim="" label="" />
-  <item id="7" name="技能冷却" class="" class_id="" skill_index="4" reduce_cd="" coin_person="" person="" coin_once="" diamond_once="" skill_cd="100%" duration="" cd="900" unlock_lv="15" unlock_ahead_cur="" unlock_ahead_delta="" unlock_ahead_minimun="" unlock_cur="" unlock_amnt="" unlock_pos="" use__cur="5" use_amnt="" upgrade_cur="" upgrade_amnt="" upgrade_fml="" upgrade_plus="" upgrade_person="" upgrade_coin_once="" upgrade_duration="" upgrade_cd="" desc="" icon="4大技能4" anim="" label="" />
+  <item id="7" name="技能冷却" class="" class_id="" skill_index="4" reduce_cd="" coin_person="" person="" coin_once="" diamond_once="" skill_cd="100%" duration="" cd="1500" unlock_lv="15" unlock_ahead_cur="" unlock_ahead_delta="" unlock_ahead_minimun="" unlock_cur="" unlock_amnt="" unlock_pos="" use__cur="5" use_amnt="" upgrade_cur="" upgrade_amnt="" upgrade_fml="" upgrade_plus="" upgrade_person="" upgrade_coin_once="" upgrade_duration="" upgrade_cd="" desc="" icon="4大技能4" anim="" label="" />
   <comment>
     <id>
 id

+ 2 - 1
Assets/Resource/XML/PlayerConfig.xml

@@ -1,5 +1,5 @@
 <PlayerConfig>
-  <Version value="37" />
+  <Version value="39" />
   <ReplayVersion value="1" />
   
   <ID value="Default" />
@@ -13,6 +13,7 @@
   <TutorialPlazaRoom value="1" />
   <FindMissingMinigameTutorial value="1" />
   <FashionShowTutorial value="1" />
+  <ChangeMouseTutorial value="1" />
   <TutorialIndexA value="1" />
   <TutorialIndexB value="1" />
   <TutorialIndexC value="1" />

+ 7 - 0
Assets/Resource/XML/lan/ChineseSimplified.xml

@@ -300,6 +300,12 @@
     <AH_SendPrivateMessageFailed desc=""><![CDATA[发送失败]]></AH_SendPrivateMessageFailed>
     <AH_Current desc=""><![CDATA[刚刚]]></AH_Current>
     <AK_Desc desc=""><![CDATA[请选择支付方式]]></AK_Desc>
+    <AL_Title desc=""><![CDATA[换装]]></AL_Title>
+    <AL_Cost desc=""><![CDATA[需要花费]]></AL_Cost>
+    <AL_Close desc=""><![CDATA[关闭]]></AL_Close>
+    <AL_Eye desc=""><![CDATA[眼睛]]></AL_Eye>
+    <AL_Mouse desc=""><![CDATA[嘴巴]]></AL_Mouse>
+    <AL_Tip desc=""><![CDATA[更改形象需要花费]]></AL_Tip>
   </UI>
   <FriendItem>
     <SendMessageButtonText desc=""><![CDATA[私信]]></SendMessageButtonText>
@@ -989,6 +995,7 @@
     <Tip8 desc=""><![CDATA[如果你觉得游戏还不错,请分享给你的朋友吧!还能获得奖励哦!]]></Tip8>
     <Tip9 desc=""><![CDATA[如果发现小游戏里有一朵花被星星笼罩,那么你有机会得到它哦~]]></Tip9>
     <Tip10 desc=""><![CDATA[如果你发现某位小公主穿着带问号的灰色裙子,不要怀疑你的眼睛,这说明你该更新一下游戏了!]]></Tip10>
+    <Tip11 desc=""><![CDATA[在别人的花园或者搭配秀留言有机会获得金币奖励哦!]]></Tip11>
   </Tip>
   <MinigameName>
     <Punch desc=""><![CDATA[打理花园]]></Punch>

+ 7 - 0
Assets/Resource/XML/lan/ChineseTraditional.xml

@@ -300,6 +300,12 @@
     <AH_SendPrivateMessageFailed desc=""><![CDATA[發送失敗]]></AH_SendPrivateMessageFailed>
     <AH_Current desc=""><![CDATA[剛剛]]></AH_Current>
     <AK_Desc desc=""><![CDATA[請選擇支付方式]]></AK_Desc>
+    <AL_Title desc=""><![CDATA[]]></AL_Title>
+    <AL_Cost desc=""><![CDATA[]]></AL_Cost>
+    <AL_Close desc=""><![CDATA[]]></AL_Close>
+    <AL_Eye desc=""><![CDATA[]]></AL_Eye>
+    <AL_Mouse desc=""><![CDATA[]]></AL_Mouse>
+    <AL_Tip desc=""><![CDATA[更改形象需要花費]]></AL_Tip>
   </UI>
   <FriendItem>
     <SendMessageButtonText desc=""><![CDATA[私信]]></SendMessageButtonText>
@@ -989,6 +995,7 @@
     <Tip8 desc=""><![CDATA[如果你覺得遊戲還不錯,請分享給你的朋友吧!還能獲得獎勵哦!]]></Tip8>
     <Tip9 desc=""><![CDATA[如果發現小遊戲裡有一朵花被星星籠罩,那麼你有機會得到它哦~]]></Tip9>
     <Tip10 desc=""><![CDATA[如果你發現某位小公主穿著帶問號的灰色裙子,不要懷疑你的眼睛,這說明你該更新一下遊戲了!]]></Tip10>
+    <Tip11 desc=""><![CDATA[在別人的花園或者搭配秀留言有機會獲得金幣獎勵哦!]]></Tip11>
   </Tip>
   <MinigameName>
     <Punch desc=""><![CDATA[打理花園]]></Punch>

+ 7 - 0
Assets/Resource/XML/lan/English.xml

@@ -300,6 +300,12 @@ Program 水怪
     <AH_SendPrivateMessageFailed desc=""><![CDATA[Failed]]></AH_SendPrivateMessageFailed>
     <AH_Current desc=""><![CDATA[Just now]]></AH_Current>
     <AK_Desc desc=""><![CDATA[Please choose a payment method]]></AK_Desc>
+    <AL_Title desc=""><![CDATA[]]></AL_Title>
+    <AL_Cost desc=""><![CDATA[]]></AL_Cost>
+    <AL_Close desc=""><![CDATA[]]></AL_Close>
+    <AL_Eye desc=""><![CDATA[]]></AL_Eye>
+    <AL_Mouse desc=""><![CDATA[]]></AL_Mouse>
+    <AL_Tip desc=""><![CDATA[Changing character styling costs]]></AL_Tip>
   </UI>
   <FriendItem>
     <SendMessageButtonText desc=""><![CDATA[Message]]></SendMessageButtonText>
@@ -990,6 +996,7 @@ Increase all Coin prudoction by [&coin_person&](permanently)]]></Pack12>
     <Tip8 desc=""><![CDATA[Share the game to your friends, and get the rewards!]]></Tip8>
     <Tip9 desc=""><![CDATA[If you find stars hanging over a flower in mini games, don't miss it!]]></Tip9>
     <Tip10 desc=""><![CDATA[If see a girl dress in grey with a question mark, no doubt, you have to update your client now!]]></Tip10>
+    <Tip11 desc=""><![CDATA[Leave messages in others garden or fasion make chances to get more coins!]]></Tip11>
   </Tip>
   <MinigameName>
     <Punch desc=""><![CDATA[Take care]]></Punch>

BIN
Assets/Resource/Xlsx/cost_config.xlsx


BIN
Assets/Resource/Xlsx/language_config.xlsx


BIN
Assets/Resource/Xlsx/skill_config.xlsx


+ 1161 - 1125
Assets/Script/Label/CanvasLabel.cs

@@ -1,1126 +1,1162 @@
-using System.Collections;
-using System.Collections.Generic;
-
-using UnityEngine;
-
-public class CanvasLabel
-{
-    //StartMark-Used by LabelUtility-Do not remove
-    public static string Canvas = "Canvas";
-    public static string E_Debug = "E_Debug";
-    public static string E_Group = "E_Group";
-    public static string E_Scrr = "E_Scrr";
-    public static string E_Mask = "E_Mask";
-    public static string E_ScrrLab = "E_ScrrLab";
-    public static string E_CentralBtn = "E_CentralBtn";
-    public static string E_CentralLab = "E_CentralLab";
-    public static string E_ShowBtn = "E_ShowBtn";
-    public static string E_ShowLab = "E_ShowLab";
-    public static string Ea_Central = "Ea_Central";
-    public static string Ea_Reset = "Ea_Reset";
-    public static string Ea_ResetLab = "Ea_ResetLab";
-    public static string Ea_Send = "Ea_Send";
-    public static string Ea_SendLab = "Ea_SendLab";
-    public static string Ea_Free = "Ea_Free";
-    public static string Ea_FreeLab = "Ea_FreeLab";
-    public static string Ea_Unlock = "Ea_Unlock";
-    public static string Ea_UnlockLab = "Ea_UnlockLab";
-    public static string Ea_Lottery = "Ea_Lottery";
-    public static string Ea_LotteryLab = "Ea_LotteryLab";
-    public static string Ea_Close = "Ea_Close";
-    public static string Ea_CloseLab = "Ea_CloseLab";
-    public static string Ea_Cool = "Ea_Cool";
-    public static string Ea_CoolLab = "Ea_CoolLab";
-    public static string Ea_Score = "Ea_Score";
-    public static string Ea_ScoreLab = "Ea_ScoreLab";
-    public static string Ea_End = "Ea_End";
-    public static string Ea_EndLab = "Ea_EndLab";
-    public static string Ea_IncreaseFR = "Ea_IncreaseFR";
-    public static string Ea_IncreaseLab = "Ea_IncreaseLab";
-    public static string Ea_DecreaseFR = "Ea_DecreaseFR";
-    public static string Ea_DecreaseLab = "Ea_DecreaseLab";
-    public static string C_Main = "C_Main";
-    public static string C_Main2 = "C_Main2";
-    public static string C_Group2 = "C_Group2";
-    public static string C_MiniGame = "C_MiniGame";
-    public static string C_MiniArrow0 = "C_MiniArrow0";
-    public static string C_MiniArrow1 = "C_MiniArrow1";
-    public static string C_MiniGameLab = "C_MiniGameLab";
-    public static string C_Group0 = "C_Group0";
-    public static string C_Group = "C_Group";
-    public static string C_Tip = "C_Tip";
-    public static string C_TipLab = "C_TipLab";
-    public static string C_RightSidePanelPosition = "C_RightSidePanelPosition";
-    public static string C_RightSidePanel = "C_RightSidePanel";
-    public static string C_OpenCloseRightSidePanelButtons = "C_OpenCloseRightSidePanelButtons";
-    public static string C_CloseSidePanelButton = "C_CloseSidePanelButton";
-    public static string C_OpenSidePanelButton = "C_OpenSidePanelButton";
-    public static string C_RightSidePanelGroup = "C_RightSidePanelGroup";
-    public static string C_Group1 = "C_Group1";
-    public static string C_Manage = "C_Manage";
-    public static string C_LevelBK = "C_LevelBK";
-    public static string C_LevelText = "C_LevelText";
-    public static string C_ManageArrow0 = "C_ManageArrow0";
-    public static string C_Achieve = "C_Achieve";
-    public static string C_Setting = "C_Setting";
-    public static string C_DressRoom = "C_DressRoom";
-    public static string C_DressRoomArrow = "C_DressRoomArrow";
-    public static string C_DressRoomLabPos = "C_DressRoomLabPos";
-    public static string C_Group4 = "C_Group4";
-    public static string C_FashionShowButtonParent = "C_FashionShowButtonParent";
-    public static string C_FashionShowButton = "C_FashionShowButton";
-    public static string C_FashionShowArrow = "C_FashionShowArrow";
-    public static string C_AddFriendButton = "C_AddFriendButton";
-    public static string C_EnterPlazaRoom0 = "C_EnterPlazaRoom0";
-    public static string C_EnterPlazaRoom = "C_EnterPlazaRoom";
-    public static string C_PlazaRoomArrow0 = "C_PlazaRoomArrow0";
-    public static string C_HeartIcon = "C_HeartIcon";
-    public static string C_WelcomeIcon = "C_WelcomeIcon";
-    public static string C_Return = "C_Return";
-    public static string C_ReturnArrow0 = "C_ReturnArrow0";
-    public static string C_Visit = "C_Visit";
-    public static string C_VisitLab = "C_VisitLab";
-    public static string C_CostLab = "C_CostLab";
-    public static string C_VisitImagePlus = "C_VisitImagePlus";
-    public static string C_VisitArrow0 = "C_VisitArrow0";
-    public static string C_Coin = "C_Coin";
-    public static string C_Pos = "C_Pos";
-    public static string C_CoinBk = "C_CoinBk";
-    public static string C_CoinLab = "C_CoinLab";
-    public static string C_IncomeLab = "C_IncomeLab";
-    public static string C_Garden = "C_Garden";
-    public static string C_GardenLab = "C_GardenLab";
-    public static string C_LeftSidePanel = "C_LeftSidePanel";
-    public static string C_LeftSidePanelHidePos = "C_LeftSidePanelHidePos";
-    public static string C_Group3 = "C_Group3";
-    public static string C_NicknameParent = "C_NicknameParent";
-    public static string C_NickNameBK = "C_NickNameBK";
-    public static string C_NickNameLab = "C_NickNameLab";
-    public static string C_SocialGroup = "C_SocialGroup";
-    public static string C_CommentParent = "C_CommentParent";
-    public static string C_Comment = "C_Comment";
-    public static string C_Praise = "C_Praise";
-    public static string C_PraiseText = "C_PraiseText";
-    public static string C_NotifyParent = "C_NotifyParent";
-    public static string C_Notify = "C_Notify";
-    public static string C_FriendButtonParent = "C_FriendButtonParent";
-    public static string C_FriendButton = "C_FriendButton";
-    public static string C_NewMessageFlag = "C_NewMessageFlag";
-    public static string C_NewMessageFlagText = "C_NewMessageFlagText";
-    public static string C_RankRarent = "C_RankRarent";
-    public static string C_Rank = "C_Rank";
-    public static string C_OpenCloseLeftSidePanelButtons = "C_OpenCloseLeftSidePanelButtons";
-    public static string C_CloseLeftSidePanelButton = "C_CloseLeftSidePanelButton";
-    public static string C_OpenLeftSidePanelButton = "C_OpenLeftSidePanelButton";
-    public static string C_Info = "C_Info";
-    public static string C_WifiButton = "C_WifiButton";
-    public static string L_Setting = "L_Setting";
-    public static string L_Setting0 = "L_Setting0";
-    public static string L_Tit = "L_Tit";
-    public static string L_User = "L_User";
-    public static string L_UserTit = "L_UserTit";
-    public static string L_UserLab = "L_UserLab";
-    public static string L_ChangeBtn = "L_ChangeBtn";
-    public static string L_ChangeLab = "L_ChangeLab";
-    public static string L_ResetBtn = "L_ResetBtn";
-    public static string L_ResetLab = "L_ResetLab";
-    public static string L_Audio = "L_Audio";
-    public static string L_AudioTit = "L_AudioTit";
-    public static string L_MusicBtn = "L_MusicBtn";
-    public static string L_MusicBk = "L_MusicBk";
-    public static string L_MusicOn = "L_MusicOn";
-    public static string L_MusicOnLab = "L_MusicOnLab";
-    public static string L_MusicOff = "L_MusicOff";
-    public static string L_MusicOffLab = "L_MusicOffLab";
-    public static string L_MusicLab = "L_MusicLab";
-    public static string L_AudioBtn = "L_AudioBtn";
-    public static string L_AudioBk = "L_AudioBk";
-    public static string L_AudioOn = "L_AudioOn";
-    public static string L_AudioOnLab = "L_AudioOnLab";
-    public static string L_AudioOff = "L_AudioOff";
-    public static string L_AudioOffLab = "L_AudioOffLab";
-    public static string L_AudioLab = "L_AudioLab";
-    public static string L_Confirm = "L_Confirm";
-    public static string L_ConfirmLab = "L_ConfirmLab";
-    public static string L_Language = "L_Language";
-    public static string L_LanguageButtonLayout = "L_LanguageButtonLayout";
-    public static string L_English = "L_English";
-    public static string L_EnglishLab = "L_EnglishLab";
-    public static string L_SimChi = "L_SimChi";
-    public static string L_SimChiLab = "L_SimChiLab";
-    public static string L_TraChi = "L_TraChi";
-    public static string L_TraChiLab = "L_TraChiLab";
-    public static string L_LanguageTit = "L_LanguageTit";
-    public static string L_Support = "L_Support";
-    public static string L_SupportTit = "L_SupportTit";
-    public static string L_ReportBtn = "L_ReportBtn";
-    public static string L_ReportLab = "L_ReportLab";
-    public static string L_ShareBtn = "L_ShareBtn";
-    public static string L_ShareLab = "L_ShareLab";
-    public static string L_CreditsBtn = "L_CreditsBtn";
-    public static string L_CreditsLab = "L_CreditsLab";
-    public static string Lb_Info = "Lb_Info";
-    public static string Lb_Info0 = "Lb_Info0";
-    public static string Lb_Tit = "Lb_Tit";
-    public static string Lb_Cancel = "Lb_Cancel";
-    public static string Lb_CancelLab = "Lb_CancelLab";
-    public static string Lb_Confirm = "Lb_Confirm";
-    public static string Lb_ConfirmLab = "Lb_ConfirmLab";
-    public static string Lb_InputField0 = "Lb_InputField0";
-    public static string Lb_InputLab0 = "Lb_InputLab0";
-    public static string Lb_Placeholder0 = "Lb_Placeholder0";
-    public static string Lb_InputField = "Lb_InputField";
-    public static string Lb_InputLab = "Lb_InputLab";
-    public static string Lb_Placeholder = "Lb_Placeholder";
-    public static string Lc_CreditsMask = "Lc_CreditsMask";
-    public static string Lc_Pos = "Lc_Pos";
-    public static string Lc_CreditsContent = "Lc_CreditsContent";
-    public static string Lc_CreditsIcon = "Lc_CreditsIcon";
-    public static string La_Info = "La_Info";
-    public static string La_Info0 = "La_Info0";
-    public static string La_Tit = "La_Tit";
-    public static string La_Lab = "La_Lab";
-    public static string La_Cancel = "La_Cancel";
-    public static string La_CancelLab = "La_CancelLab";
-    public static string La_Confirm = "La_Confirm";
-    public static string La_ConfirmLab = "La_ConfirmLab";
-    public static string La_InputField = "La_InputField";
-    public static string La_InputLab = "La_InputLab";
-    public static string La_Placeholder = "La_Placeholder";
-    public static string La_Mask = "La_Mask";
-    public static string F_Manage = "F_Manage";
-    public static string F_Manage0 = "F_Manage0";
-    public static string F_Close = "F_Close";
-    public static string F_CloseExtent = "F_CloseExtent";
-    public static string F_Tab = "F_Tab";
-    public static string Fd_Elf = "Fd_Elf";
-    public static string Fd_Scrr = "Fd_Scrr";
-    public static string Fd_Grid = "Fd_Grid";
-    public static string Fc_Store = "Fc_Store";
-    public static string Fc_Scrr = "Fc_Scrr";
-    public static string Fc_Grid = "Fc_Grid";
-    public static string Fb_Magic = "Fb_Magic";
-    public static string Fb_Scrr = "Fb_Scrr";
-    public static string Fb_Grid = "Fb_Grid";
-    public static string Ff_SkillBar = "Ff_SkillBar";
-    public static string F_Skill1 = "F_Skill1";
-    public static string F_Arrow0 = "F_Arrow0";
-    public static string F_SkillBk10 = "F_SkillBk10";
-    public static string F_SkillBk11 = "F_SkillBk11";
-    public static string F_SkillLab1 = "F_SkillLab1";
-    public static string F_Skill2 = "F_Skill2";
-    public static string F_SkillBk20 = "F_SkillBk20";
-    public static string F_SkillBk21 = "F_SkillBk21";
-    public static string F_SkillLab2 = "F_SkillLab2";
-    public static string F_Skill3 = "F_Skill3";
-    public static string F_SkillBk30 = "F_SkillBk30";
-    public static string F_SkillBk31 = "F_SkillBk31";
-    public static string F_SkillLab3 = "F_SkillLab3";
-    public static string F_Skill4 = "F_Skill4";
-    public static string F_SkillBk40 = "F_SkillBk40";
-    public static string F_SkillBk41 = "F_SkillBk41";
-    public static string F_SkillLab4 = "F_SkillLab4";
-    public static string Fa_Garden = "Fa_Garden";
-    public static string Fa_Scrr = "Fa_Scrr";
-    public static string Fa_Grid = "Fa_Grid";
-    public static string F_TabBtn = "F_TabBtn";
-    public static string F_Store = "F_Store";
-    public static string F_StoreIcon = "F_StoreIcon";
-    public static string F_StoreLab = "F_StoreLab";
-    public static string F_Magic = "F_Magic";
-    public static string F_MagicIcon = "F_MagicIcon";
-    public static string F_MagicLab = "F_MagicLab";
-    public static string F_Elf = "F_Elf";
-    public static string F_ElfIcon = "F_ElfIcon";
-    public static string F_ElfLab = "F_ElfLab";
-    public static string F_Garden = "F_Garden";
-    public static string F_GardenIcon = "F_GardenIcon";
-    public static string F_GardenLab = "F_GardenLab";
-    public static string F_Info = "F_Info";
-    public static string F_DataA = "F_DataA";
-    public static string F_DataB = "F_DataB";
-    public static string F_CoinLab = "F_CoinLab";
-    public static string F_DiamondLab = "F_DiamondLab";
-    public static string F_FlowerLab = "F_FlowerLab";
-    public static string F_PersonLab = "F_PersonLab";
-    public static string F_CoinPersonLab = "F_CoinPersonLab";
-    public static string F_PersonBtn = "F_PersonBtn";
-    public static string F_CoinPersonBtn = "F_CoinPersonBtn";
-    public static string F_Flower = "F_Flower";
-    public static string F_CoinLabArrow = "F_CoinLabArrow";
-    public static string F_TipBK = "F_TipBK";
-    public static string F_Tip = "F_Tip";
-    public static string F_TipBtn = "F_TipBtn";
-    public static string F_PosTra = "F_PosTra";
-    public static string Fe_Info = "Fe_Info";
-    public static string Fe_Info0 = "Fe_Info0";
-    public static string Fe_Tit = "Fe_Tit";
-    public static string Fe_Icon = "Fe_Icon";
-    public static string Fe_Lab0 = "Fe_Lab0";
-    public static string Fe_ImagePlus0 = "Fe_ImagePlus0";
-    public static string Fe_Lab1 = "Fe_Lab1";
-    public static string Fe_ImagePlus1 = "Fe_ImagePlus1";
-    public static string Fe_Btn = "Fe_Btn";
-    public static string Fe_BtnLab = "Fe_BtnLab";
-    public static string Fe_ImagePlus = "Fe_ImagePlus";
-    public static string Fe_Arrow0 = "Fe_Arrow0";
-    public static string Fe_Arrow1 = "Fe_Arrow1";
-    public static string Fe_Close = "Fe_Close";
-    public static string Fg_Reconnect = "Fg_Reconnect";
-    public static string Fg_Reconnect0 = "Fg_Reconnect0";
-    public static string Fg_Tit = "Fg_Tit";
-    public static string Fg_Btn = "Fg_Btn";
-    public static string Fg_BtnLab = "Fg_BtnLab";
-    public static string Fg_Lab = "Fg_Lab";
-    public static string Fg_Close = "Fg_Close";
-    public static string AK_PayCard = "AK_PayCard";
-    public static string AK_PayCard0 = "AK_PayCard0";
-    public static string AK_Desc = "AK_Desc";
-    public static string AK_Close = "AK_Close";
-    public static string AK_Buttons = "AK_Buttons";
-    public static string AK_Alipay = "AK_Alipay";
-    public static string AK_WXPay = "AK_WXPay";
-    public static string D_MiniGame = "D_MiniGame";
-    public static string D_HudParent = "D_HudParent";
-    public static string D_Quit = "D_Quit";
-    public static string D_PrepareLab = "D_PrepareLab";
-    public static string D_Operate1 = "D_Operate1";
-    public static string D_PrepareLayout1 = "D_PrepareLayout1";
-    public static string D_Status1 = "D_Status1";
-    public static string D_Rip1 = "D_Rip1";
-    public static string D_Rip2 = "D_Rip2";
-    public static string D_Water1 = "D_Water1";
-    public static string D_Water2 = "D_Water2";
-    public static string D_WaterArrow0 = "D_WaterArrow0";
-    public static string D_WaterArrow1 = "D_WaterArrow1";
-    public static string D_Fertilize1 = "D_Fertilize1";
-    public static string D_Fertilize2 = "D_Fertilize2";
-    public static string D_DescA = "D_DescA";
-    public static string D_Operate2 = "D_Operate2";
-    public static string D_Begin = "D_Begin";
-    public static string D_BeginLab = "D_BeginLab";
-    public static string D_BeginArrow0 = "D_BeginArrow0";
-    public static string D_BeginArrow1 = "D_BeginArrow1";
-    public static string D_PrepareLayout2 = "D_PrepareLayout2";
-    public static string D_Status2 = "D_Status2";
-    public static string D_Timer = "D_Timer";
-    public static string D_TimerLab = "D_TimerLab";
-    public static string D_TimerIcon = "D_TimerIcon";
-    public static string D_Grid = "D_Grid";
-    public static string D_ScoreLab = "D_ScoreLab";
-    public static string D_StatusLab = "D_StatusLab";
-    public static string D_DescB = "D_DescB";
-    public static string D_FlowerBtn1 = "D_FlowerBtn1";
-    public static string D_FlowerIcon1 = "D_FlowerIcon1";
-    public static string D_FlowerArrow1 = "D_FlowerArrow1";
-    public static string D_FlowerTick1 = "D_FlowerTick1";
-    public static string D_FlowerBtn2 = "D_FlowerBtn2";
-    public static string D_FlowerIcon2 = "D_FlowerIcon2";
-    public static string D_FlowerArrow2 = "D_FlowerArrow2";
-    public static string D_FlowerTick2 = "D_FlowerTick2";
-    public static string D_FlowerBtn3 = "D_FlowerBtn3";
-    public static string D_FlowerIcon3 = "D_FlowerIcon3";
-    public static string D_FlowerArrow3 = "D_FlowerArrow3";
-    public static string D_FlowerTick3 = "D_FlowerTick3";
-    public static string D_FlowerBtn4 = "D_FlowerBtn4";
-    public static string D_FlowerIcon4 = "D_FlowerIcon4";
-    public static string D_FlowerArrow4 = "D_FlowerArrow4";
-    public static string D_FlowerTick4 = "D_FlowerTick4";
-    public static string D_FlowerBtn5 = "D_FlowerBtn5";
-    public static string D_FlowerIcon5 = "D_FlowerIcon5";
-    public static string D_FlowerArrow5 = "D_FlowerArrow5";
-    public static string D_FlowerTick5 = "D_FlowerTick5";
-    public static string D_FlowerBtn6 = "D_FlowerBtn6";
-    public static string D_FlowerIcon6 = "D_FlowerIcon6";
-    public static string D_FlowerArrow6 = "D_FlowerArrow6";
-    public static string D_FlowerTick6 = "D_FlowerTick6";
-    public static string D_Mask = "D_Mask";
-    public static string D_Operate3 = "D_Operate3";
-    public static string D_PrepareLayout3 = "D_PrepareLayout3";
-    public static string D_Status3 = "D_Status3";
-    public static string D_FlowerBtn7 = "D_FlowerBtn7";
-    public static string D_FlowerIcon7 = "D_FlowerIcon7";
-    public static string D_FlowerArrow7 = "D_FlowerArrow7";
-    public static string D_FlowerBtn8 = "D_FlowerBtn8";
-    public static string D_FlowerIcon8 = "D_FlowerIcon8";
-    public static string D_FlowerArrow8 = "D_FlowerArrow8";
-    public static string D_FlowerBtn9 = "D_FlowerBtn9";
-    public static string D_FlowerIcon9 = "D_FlowerIcon9";
-    public static string D_FlowerArrow9 = "D_FlowerArrow9";
-    public static string D_DescC = "D_DescC";
-    public static string D_FindMissingGamePanel = "D_FindMissingGamePanel";
-    public static string D_FindMissingGamePrepareLayout = "D_FindMissingGamePrepareLayout";
-    public static string D_FindMissingGameStatus = "D_FindMissingGameStatus";
-    public static string D_FindMissingGameButton0 = "D_FindMissingGameButton0";
-    public static string D_FindMissingGameIcon0 = "D_FindMissingGameIcon0";
-    public static string D_FindMissingGameArrow0 = "D_FindMissingGameArrow0";
-    public static string D_FindMissingGameButton2 = "D_FindMissingGameButton2";
-    public static string D_FindMissingGameIcon2 = "D_FindMissingGameIcon2";
-    public static string D_FindMissingGameArrow2 = "D_FindMissingGameArrow2";
-    public static string D_FindMissingGameButton1 = "D_FindMissingGameButton1";
-    public static string D_FindMissingGameIcon1 = "D_FindMissingGameIcon1";
-    public static string D_FindMissingGameArrow1 = "D_FindMissingGameArrow1";
-    public static string D_FindMissingGameDesc = "D_FindMissingGameDesc";
-    public static string D_FindMissingGameMask = "D_FindMissingGameMask";
-    public static string Da_Info = "Da_Info";
-    public static string Da_Info0 = "Da_Info0";
-    public static string Da_Tit = "Da_Tit";
-    public static string Da_Lab = "Da_Lab";
-    public static string Da_Quit = "Da_Quit";
-    public static string Da_QuitLab = "Da_QuitLab";
-    public static string Da_Cancel = "Da_Cancel";
-    public static string Da_CancelLab = "Da_CancelLab";
-    public static string Da_HGroup1 = "Da_HGroup1";
-    public static string Da_Star1 = "Da_Star1";
-    public static string Da_Star2 = "Da_Star2";
-    public static string Da_Star3 = "Da_Star3";
-    public static string Da_VGroup = "Da_VGroup";
-    public static string Da_Award = "Da_Award";
-    public static string Da_CoinGroup = "Da_CoinGroup";
-    public static string Da_Coin = "Da_Coin";
-    public static string Da_CoinLab = "Da_CoinLab";
-    public static string Da_DiamondGroup = "Da_DiamondGroup";
-    public static string Da_Diamond = "Da_Diamond";
-    public static string Da_DiamondLab = "Da_DiamondLab";
-    public static string Da_FlowerGroup = "Da_FlowerGroup";
-    public static string Da_Flower = "Da_Flower";
-    public static string Da_FlowerIcon = "Da_FlowerIcon";
-    public static string Da_FlowerLab = "Da_FlowerLab";
-    public static string Da_ScoreTit = "Da_ScoreTit";
-    public static string Da_ScoreLab = "Da_ScoreLab";
-    public static string Da_GetAward = "Da_GetAward";
-    public static string Da_Arrow0 = "Da_Arrow0";
-    public static string Da_Arrow1 = "Da_Arrow1";
-    public static string Da_GetAwardLab = "Da_GetAwardLab";
-    public static string G_Flower = "G_Flower";
-    public static string G_Flower0 = "G_Flower0";
-    public static string G_Close = "G_Close";
-    public static string G_Arrow0 = "G_Arrow0";
-    public static string G_Retrieve = "G_Retrieve";
-    public static string G_Tab = "G_Tab";
-    public static string G_Special = "G_Special";
-    public static string G_SpecialLab = "G_SpecialLab";
-    public static string G_Regular = "G_Regular";
-    public static string G_PosTraL = "G_PosTraL";
-    public static string G_PosTraR = "G_PosTraR";
-    public static string G_Scrr = "G_Scrr";
-    public static string G_SpecialScrr = "G_SpecialScrr";
-    public static string G_SpecialGrid = "G_SpecialGrid";
-    public static string G_RegularScrr = "G_RegularScrr";
-    public static string G_RegularGrid = "G_RegularGrid";
-    public static string G_Collect = "G_Collect";
-    public static string G_RetrieveLab = "G_RetrieveLab";
-    public static string G_Tit = "G_Tit";
-    public static string G_RegularLab = "G_RegularLab";
-    public static string G_CollectLab1 = "G_CollectLab1";
-    public static string G_CollectLab2 = "G_CollectLab2";
-    public static string H_FlowerCard = "H_FlowerCard";
-    public static string H_FlowerCard0 = "H_FlowerCard0";
-    public static string H_Lab = "H_Lab";
-    public static string H_Desc = "H_Desc";
-    public static string H_AmtLab = "H_AmtLab";
-    public static string H_Rotate = "H_Rotate";
-    public static string H_Icon1 = "H_Icon1";
-    public static string H_UIFlashLight = "H_UIFlashLight";
-    public static string H_UIFlash = "H_UIFlash";
-    public static string H_UIFlash2 = "H_UIFlash2";
-    public static string H_UIParticleSystem = "H_UIParticleSystem";
-    public static string H_Icon2 = "H_Icon2";
-    public static string H_ArrowPos = "H_ArrowPos";
-    public static string H_ArrowParent = "H_ArrowParent";
-    public static string H_Arrow = "H_Arrow";
-    public static string H_Close = "H_Close";
-    public static string H_HGroup = "H_HGroup";
-    public static string H_Btn = "H_Btn";
-    public static string H_BtnLab = "H_BtnLab";
-    public static string H_BtnImagePlus = "H_BtnImagePlus";
-    public static string H_Btn1 = "H_Btn1";
-    public static string H_BtnLab1 = "H_BtnLab1";
-    public static string H_BtnImagePlus1 = "H_BtnImagePlus1";
-    public static string M_Achieve = "M_Achieve";
-    public static string M_Achieve0 = "M_Achieve0";
-    public static string M_Close = "M_Close";
-    public static string M_CloseExtent = "M_CloseExtent";
-    public static string M_Tit = "M_Tit";
-    public static string M_Scrr = "M_Scrr";
-    public static string M_Grid = "M_Grid";
-    public static string M_PosTra = "M_PosTra";
-    public static string P_DressRoom = "P_DressRoom";
-    public static string P_ChangeDressPanel = "P_ChangeDressPanel";
-    public static string P_ShareParent = "P_ShareParent";
-    public static string P_Share = "P_Share";
-    public static string P_ScreenShotRect = "P_ScreenShotRect";
-    public static string P_Group = "P_Group";
-    public static string P_HorizontalGroup = "P_HorizontalGroup";
-    public static string P_FashionShowButton = "P_FashionShowButton";
-    public static string P_Reset = "P_Reset";
-    public static string P_Save = "P_Save";
-    public static string P_Return = "P_Return";
-    public static string P_Tutorial = "P_Tutorial";
-    public static string P_TutorialBg = "P_TutorialBg";
-    public static string P_CloseTipBK = "P_CloseTipBK";
-    public static string P_CloseTip = "P_CloseTip";
-    public static string P_CreateTipBK = "P_CreateTipBK";
-    public static string P_CreateTip = "P_CreateTip";
-    public static string P_CloseArrow0 = "P_CloseArrow0";
-    public static string P_CloseArrow1 = "P_CloseArrow1";
-    public static string P_SidePanel = "P_SidePanel";
-    public static string P_Close = "P_Close";
-    public static string P_Open = "P_Open";
-    public static string P_Data = "P_Data";
-    public static string P_CoinLab = "P_CoinLab";
-    public static string P_DiamondLab = "P_DiamondLab";
-    public static string P_TabBtn = "P_TabBtn";
-    public static string P_Top = "P_Top";
-    public static string P_TopIcon = "P_TopIcon";
-    public static string P_TopLab = "P_TopLab";
-    public static string P_Dress = "P_Dress";
-    public static string P_DressIcon = "P_DressIcon";
-    public static string P_DressLab = "P_DressLab";
-    public static string P_Shoe = "P_Shoe";
-    public static string P_ShoeIcon = "P_ShoeIcon";
-    public static string P_ShoeLab = "P_ShoeLab";
-    public static string P_Decarator = "P_Decarator";
-    public static string P_DecaratorIcon = "P_DecaratorIcon";
-    public static string P_DecaratorLab = "P_DecaratorLab";
-    public static string P_Wing = "P_Wing";
-    public static string P_WingIcon = "P_WingIcon";
-    public static string P_WingLab = "P_WingLab";
-    public static string P_Hair = "P_Hair";
-    public static string P_HairIcon = "P_HairIcon";
-    public static string P_HairLab = "P_HairLab";
-    public static string P_Pos = "P_Pos";
-    public static string P_Tab = "P_Tab";
-    public static string Pa_HairTab = "Pa_HairTab";
-    public static string Pa_HairGrid = "Pa_HairGrid";
-    public static string Pb_TopTab = "Pb_TopTab";
-    public static string Pb_TopGrid = "Pb_TopGrid";
-    public static string Pc_DressTab = "Pc_DressTab";
-    public static string Pc_DressGrid = "Pc_DressGrid";
-    public static string Pd_DecaratorTab = "Pd_DecaratorTab";
-    public static string Pd_DecaratorGrid = "Pd_DecaratorGrid";
-    public static string Pe_WingTab = "Pe_WingTab";
-    public static string Pe_WingGrid = "Pe_WingGrid";
-    public static string Pf_ShoeTab = "Pf_ShoeTab";
-    public static string Pf_ShoeGrid = "Pf_ShoeGrid";
-    public static string P_CancelShare = "P_CancelShare";
-    public static string P_CloseTipBtn = "P_CloseTipBtn";
-    public static string Pi_FashionShowHomePanel = "Pi_FashionShowHomePanel";
-    public static string Pi_FashionShowHomePanelPosition = "Pi_FashionShowHomePanelPosition";
-    public static string Pi_FashionShowHomeSidePanel = "Pi_FashionShowHomeSidePanel";
-    public static string Pi_Tutorial = "Pi_Tutorial";
-    public static string Pi_TutorialBg = "Pi_TutorialBg";
-    public static string Pi_HomePageArrow0 = "Pi_HomePageArrow0";
-    public static string Pi_HomePageArrow1 = "Pi_HomePageArrow1";
-    public static string Pi_SidePanelBg = "Pi_SidePanelBg";
-    public static string Pi_Ribbon = "Pi_Ribbon";
-    public static string Pi_Return = "Pi_Return";
-    public static string Pi_TabButtons = "Pi_TabButtons";
-    public static string Pi_CuteTabButton = "Pi_CuteTabButton";
-    public static string Pi_CuteTabBubble = "Pi_CuteTabBubble";
-    public static string Pi_CuteTabButtonText = "Pi_CuteTabButtonText";
-    public static string Pi_GraceTabButton = "Pi_GraceTabButton";
-    public static string Pi_GraceTabBubble = "Pi_GraceTabBubble";
-    public static string Pi_GraceTabButtonText = "Pi_GraceTabButtonText";
-    public static string Pi_VividTabButton = "Pi_VividTabButton";
-    public static string Pi_VividTabBubble = "Pi_VividTabBubble";
-    public static string Pi_VividTabButtonText = "Pi_VividTabButtonText";
-    public static string Pi_SimpleTabButton = "Pi_SimpleTabButton";
-    public static string Pi_SimpleTabBubble = "Pi_SimpleTabBubble";
-    public static string Pi_SimpleTabButtonText = "Pi_SimpleTabButtonText";
-    public static string Pi_GloryTabButton = "Pi_GloryTabButton";
-    public static string Pi_GloryTabBubble = "Pi_GloryTabBubble";
-    public static string Pi_GloryTabButtonText = "Pi_GloryTabButtonText";
-    public static string Pi_MineTabButton = "Pi_MineTabButton";
-    public static string Pi_MineTabButtonArrow = "Pi_MineTabButtonArrow";
-    public static string Pi_MineTabBubble = "Pi_MineTabBubble";
-    public static string Pi_MineTabButtonText = "Pi_MineTabButtonText";
-    public static string Pi_HomeTabButton = "Pi_HomeTabButton";
-    public static string Pi_HomeTabBubble = "Pi_HomeTabBubble";
-    public static string Pi_HomeTabButtonText = "Pi_HomeTabButtonText";
-    public static string Pi_RecommendTitle = "Pi_RecommendTitle";
-    public static string Pi_HomeTab = "Pi_HomeTab";
-    public static string Pi_HomeScrollRect = "Pi_HomeScrollRect";
-    public static string Ph_HomeGrid = "Ph_HomeGrid";
-    public static string Pi_CuteTab = "Pi_CuteTab";
-    public static string Pi_CuteScrollRect = "Pi_CuteScrollRect";
-    public static string Ph_CuteGrid = "Ph_CuteGrid";
-    public static string Pi_GraceTab = "Pi_GraceTab";
-    public static string Pi_GraceScrollRect = "Pi_GraceScrollRect";
-    public static string Ph_GraceGrid = "Ph_GraceGrid";
-    public static string Pi_VividTab = "Pi_VividTab";
-    public static string Pi_VividScrollRect = "Pi_VividScrollRect";
-    public static string Ph_VividGrid = "Ph_VividGrid";
-    public static string Pi_SimpleTab = "Pi_SimpleTab";
-    public static string Pi_SimpleScrollRect = "Pi_SimpleScrollRect";
-    public static string Ph_SimpleGrid = "Ph_SimpleGrid";
-    public static string Pi_GloryTab = "Pi_GloryTab";
-    public static string Pi_GloryScrollRect = "Pi_GloryScrollRect";
-    public static string Ph_GloryGrid = "Ph_GloryGrid";
-    public static string Pi_MineTab = "Pi_MineTab";
-    public static string Pi_MineScrollRect = "Pi_MineScrollRect";
-    public static string Ph_MineGrid = "Ph_MineGrid";
-    public static string Pi_ShareArrow = "Pi_ShareArrow";
-    public static string Pi_ShareBg = "Pi_ShareBg";
-    public static string Pi_Share = "Pi_Share";
-    public static string Pi_HomePageTipBtn = "Pi_HomePageTipBtn";
-    public static string Pi_HomePageTipBK = "Pi_HomePageTipBK";
-    public static string Pi_HomePageTip = "Pi_HomePageTip";
-    public static string Pi_LeaveTipBK = "Pi_LeaveTipBK";
-    public static string Pi_LeaveTip = "Pi_LeaveTip";
-    public static string Pg_FashionShowEditPanel = "Pg_FashionShowEditPanel";
-    public static string Pg_FashionShowEditPanelPosition = "Pg_FashionShowEditPanelPosition";
-    public static string Pg_Ribbon = "Pg_Ribbon";
-    public static string Pg_Return = "Pg_Return";
-    public static string Pg_CurrentData = "Pg_CurrentData";
-    public static string Pg_CoinText = "Pg_CoinText";
-    public static string Pg_DiamondText = "Pg_DiamondText";
-    public static string Pg_RecommendTitle = "Pg_RecommendTitle";
-    public static string Pg_DisplayBackground = "Pg_DisplayBackground";
-    public static string Image = "Image";
-    public static string Pg_DisplayEditButton = "Pg_DisplayEditButton";
-    public static string Pg_HorizontalGroup = "Pg_HorizontalGroup";
-    public static string Pg_DeleteButton = "Pg_DeleteButton";
-    public static string Pg_ResetButton = "Pg_ResetButton";
-    public static string Pg_SaveButton = "Pg_SaveButton";
-    public static string Pg_PraiseButton = "Pg_PraiseButton";
-    public static string Pg_PraiseText = "Pg_PraiseText";
-    public static string Pg_CommentButton = "Pg_CommentButton";
-    public static string Pg_ShareButton = "Pg_ShareButton";
-    public static string Pg_FashionTitleBackground = "Pg_FashionTitleBackground";
-    public static string Pg_FashionTitleParent = "Pg_FashionTitleParent";
-    public static string Pg_FashionTitle = "Pg_FashionTitle";
-    public static string Pg_FashionTitlePlaceHolder = "Pg_FashionTitlePlaceHolder";
-    public static string Pg_FashionTitleEditButton = "Pg_FashionTitleEditButton";
-    public static string Pg_Content = "Pg_Content";
-    public static string Pg_FashionContentBackground = "Pg_FashionContentBackground";
-    public static string Pg_FashionContentParent = "Pg_FashionContentParent";
-    public static string Pg_FashionContent = "Pg_FashionContent";
-    public static string Pg_FashionContentPlaceHolder = "Pg_FashionContentPlaceHolder";
-    public static string Pg_FashionContentEditButton = "Pg_FashionContentEditButton";
-    public static string Pg_SliderBackground = "Pg_SliderBackground";
-    public static string Pg_VerticalSliderGroup = "Pg_VerticalSliderGroup";
-    public static string Pg_CuteSlider = "Pg_CuteSlider";
-    public static string Pg_CuteTitle = "Pg_CuteTitle";
-    public static string Pg_CuteValue = "Pg_CuteValue";
-    public static string Pg_CuteBackground = "Pg_CuteBackground";
-    public static string Pg_CuteFillArea = "Pg_CuteFillArea";
-    public static string Pg_CuteFill = "Pg_CuteFill";
-    public static string Pg_CuteHandleSlideArea = "Pg_CuteHandleSlideArea";
-    public static string Pg_CuteHandle = "Pg_CuteHandle";
-    public static string Pg_CuteRateBackground = "Pg_CuteRateBackground";
-    public static string Pg_CuteRateText = "Pg_CuteRateText";
-    public static string Pg_GraceSlider = "Pg_GraceSlider";
-    public static string Pg_GraceTitle = "Pg_GraceTitle";
-    public static string Pg_GraceValue = "Pg_GraceValue";
-    public static string Pg_GraceBackground = "Pg_GraceBackground";
-    public static string Pg_GraceFillArea = "Pg_GraceFillArea";
-    public static string Pg_GraceFill = "Pg_GraceFill";
-    public static string Pg_GraceHandleSlideArea = "Pg_GraceHandleSlideArea";
-    public static string Pg_GraceHandle = "Pg_GraceHandle";
-    public static string Pg_GraceRateBackground = "Pg_GraceRateBackground";
-    public static string Pg_GraceRateText = "Pg_GraceRateText";
-    public static string Pg_VividSlider = "Pg_VividSlider";
-    public static string Pg_VividTitle = "Pg_VividTitle";
-    public static string Pg_VividValue = "Pg_VividValue";
-    public static string Pg_VividBackground = "Pg_VividBackground";
-    public static string Pg_VividFillArea = "Pg_VividFillArea";
-    public static string Pg_VividFill = "Pg_VividFill";
-    public static string Pg_VividHandleSlideArea = "Pg_VividHandleSlideArea";
-    public static string Pg_VividHandle = "Pg_VividHandle";
-    public static string Pg_VividRateBackground = "Pg_VividRateBackground";
-    public static string Pg_VividRateText = "Pg_VividRateText";
-    public static string Pg_SimpleSlider = "Pg_SimpleSlider";
-    public static string Pg_SimpleTitle = "Pg_SimpleTitle";
-    public static string Pg_SimpleValue = "Pg_SimpleValue";
-    public static string Pg_SimpleBackground = "Pg_SimpleBackground";
-    public static string Pg_SimpleFillArea = "Pg_SimpleFillArea";
-    public static string Pg_SimpleFill = "Pg_SimpleFill";
-    public static string Pg_SimpleHandleSlideArea = "Pg_SimpleHandleSlideArea";
-    public static string Pg_SimpleHandle = "Pg_SimpleHandle";
-    public static string Pg_SimpleRateBackground = "Pg_SimpleRateBackground";
-    public static string Pg_SimpleRateText = "Pg_SimpleRateText";
-    public static string Pg_GlorySlider = "Pg_GlorySlider";
-    public static string Pg_GloryTitle = "Pg_GloryTitle";
-    public static string Pg_GloryValue = "Pg_GloryValue";
-    public static string Pg_GloryBackground = "Pg_GloryBackground";
-    public static string Pg_GloryFillArea = "Pg_GloryFillArea";
-    public static string Pg_GloryFill = "Pg_GloryFill";
-    public static string Pg_GloryHandleSlideArea = "Pg_GloryHandleSlideArea";
-    public static string Pg_GloryHandle = "Pg_GloryHandle";
-    public static string Pg_GloryRateBackground = "Pg_GloryRateBackground";
-    public static string Pg_GloryRateText = "Pg_GloryRateText";
-    public static string Pg_SubmitRateButton = "Pg_SubmitRateButton";
-    public static string Pg_ResetRateButton = "Pg_ResetRateButton";
-    public static string Pg_RateButton = "Pg_RateButton";
-    public static string Pg_Frame = "Pg_Frame";
-    public static string Pg_FashionShowClosesTitle = "Pg_FashionShowClosesTitle";
-    public static string Pg_FashionShowCloseScrollRect = "Pg_FashionShowCloseScrollRect";
-    public static string Pg_FashionShowCloseGrid = "Pg_FashionShowCloseGrid";
-    public static string Pg_CloseTotalCoinImage = "Pg_CloseTotalCoinImage";
-    public static string Pg_CloseTotalCoinText = "Pg_CloseTotalCoinText";
-    public static string Pg_CloseTotalDiamondImage = "Pg_CloseTotalDiamondImage";
-    public static string Pg_CloseTotalDiamondText = "Pg_CloseTotalDiamondText";
-    public static string Pg_BuyAllButton = "Pg_BuyAllButton";
-    public static string Pg_BuyAllButtonText = "Pg_BuyAllButtonText";
-    public static string Ph_CommentMask = "Ph_CommentMask";
-    public static string Ph_CommentPanel = "Ph_CommentPanel";
-    public static string Ph_Frame = "Ph_Frame";
-    public static string Ph_NicknameTitle = "Ph_NicknameTitle";
-    public static string Ph_ContentTitle = "Ph_ContentTitle";
-    public static string Ph_Title = "Ph_Title";
-    public static string Ph_CloseButton = "Ph_CloseButton";
-    public static string Ph_CloseButtonText = "Ph_CloseButtonText";
-    public static string Ph_ScrollRect = "Ph_ScrollRect";
-    public static string Ph_Grid = "Ph_Grid";
-    public static string Ph_InputFieldBK = "Ph_InputFieldBK";
-    public static string Ph_SendCommentButton = "Ph_SendCommentButton";
-    public static string Ph_SendCommentButtonText = "Ph_SendCommentButtonText";
-    public static string Ph_InputField = "Ph_InputField";
-    public static string Ph_Placeholder = "Ph_Placeholder";
-    public static string Ph_PlaceholderText = "Ph_PlaceholderText";
-    public static string Ph_Tip = "Ph_Tip";
-    public static string Pa_Info = "Pa_Info";
-    public static string Pa_Info0 = "Pa_Info0";
-    public static string Pa_Tit = "Pa_Tit";
-    public static string Pa_Icon0 = "Pa_Icon0";
-    public static string Pa_Icon1 = "Pa_Icon1";
-    public static string Pa_Icon2 = "Pa_Icon2";
-    public static string Pa_Icon3 = "Pa_Icon3";
-    public static string Pa_Lab = "Pa_Lab";
-    public static string Pa_Desc = "Pa_Desc";
-    public static string Pa_Btn = "Pa_Btn";
-    public static string Pa_BtnLab = "Pa_BtnLab";
-    public static string Pa_ImagePlus = "Pa_ImagePlus";
-    public static string Pa_Close = "Pa_Close";
-    public static string R_Notify0 = "R_Notify0";
-    public static string R_Notify = "R_Notify";
-    public static string R_NotifyBK = "R_NotifyBK";
-    public static string R_Close = "R_Close";
-    public static string R_CloseLab = "R_CloseLab";
-    public static string R_NotifyTit = "R_NotifyTit";
-    public static string R_ScrollRect = "R_ScrollRect";
-    public static string R_Grid = "R_Grid";
-    public static string Q_Comment = "Q_Comment";
-    public static string Q_CommentBK = "Q_CommentBK";
-    public static string Q_CommentPanel = "Q_CommentPanel";
-    public static string Q_Frame = "Q_Frame";
-    public static string Q_NicknameTitle = "Q_NicknameTitle";
-    public static string Q_ContentTitle = "Q_ContentTitle";
-    public static string Q_FriendFilterButton = "Q_FriendFilterButton";
-    public static string Q_FriendFilterIcon = "Q_FriendFilterIcon";
-    public static string Q_FriendFilterTitle = "Q_FriendFilterTitle";
-    public static string Q_Tit = "Q_Tit";
-    public static string Q_Close = "Q_Close";
-    public static string Q_CloseLab = "Q_CloseLab";
-    public static string Q_ScrollRect = "Q_ScrollRect";
-    public static string Q_Grid = "Q_Grid";
-    public static string Q_InputBK = "Q_InputBK";
-    public static string Q_CommentBtn = "Q_CommentBtn";
-    public static string Q_CommentLab = "Q_CommentLab";
-    public static string Q_InputField = "Q_InputField";
-    public static string Q_Placeholder = "Q_Placeholder";
-    public static string Q_Lab = "Q_Lab";
-    public static string Q_Tip = "Q_Tip";
-    public static string S_Rank = "S_Rank";
-    public static string S_RankBK = "S_RankBK";
-    public static string S_RankPanel = "S_RankPanel";
-    public static string S_Close = "S_Close";
-    public static string S_CloseLab = "S_CloseLab";
-    public static string S_ScrollRect = "S_ScrollRect";
-    public static string S_Grid = "S_Grid";
-    public static string S_Tit = "S_Tit";
-    public static string Z_PlazaRoomList = "Z_PlazaRoomList";
-    public static string Z_BK = "Z_BK";
-    public static string Z_Panel = "Z_Panel";
-    public static string Z_Create = "Z_Create";
-    public static string Z_CreateLab = "Z_CreateLab";
-    public static string Z_Close = "Z_Close";
-    public static string Z_CloseLab = "Z_CloseLab";
-    public static string Z_ScrollRect = "Z_ScrollRect";
-    public static string Z_Frame = "Z_Frame";
-    public static string Z_Grid = "Z_Grid";
-    public static string Z_Tit = "Z_Tit";
-    public static string Z_Info = "Z_Info";
-    public static string Z_Info0 = "Z_Info0";
-    public static string Z_InfoLab0 = "Z_InfoLab0";
-    public static string Z_Info1 = "Z_Info1";
-    public static string Z_InfoLab1 = "Z_InfoLab1";
-    public static string Z_Info2 = "Z_Info2";
-    public static string Z_InfoLab2 = "Z_InfoLab2";
-    public static string Z_Info3 = "Z_Info3";
-    public static string Z_InfoLab3 = "Z_InfoLab3";
-    public static string Z_Info4 = "Z_Info4";
-    public static string Z_InfoLab4 = "Z_InfoLab4";
-    public static string Z_Info5 = "Z_Info5";
-    public static string Z_InfoImg50 = "Z_InfoImg50";
-    public static string Z_InfoImg51 = "Z_InfoImg51";
-    public static string Z_InfoLab5 = "Z_InfoLab5";
-    public static string Z_Tip = "Z_Tip";
-    public static string AA_CreatePlazaRoom = "AA_CreatePlazaRoom";
-    public static string AA_Panel = "AA_Panel";
-    public static string AA_Lab = "AA_Lab";
-    public static string AA_InputField = "AA_InputField";
-    public static string AA_InputFieldLab = "AA_InputFieldLab";
-    public static string AA_Close = "AA_Close";
-    public static string AA_Desc = "AA_Desc";
-    public static string AA_DestImagePlus = "AA_DestImagePlus";
-    public static string AA_Btn = "AA_Btn";
-    public static string AA_BtnLab = "AA_BtnLab";
-    public static string AAa_Slider = "AAa_Slider";
-    public static string AAa_Tit = "AAa_Tit";
-    public static string AAa_ValueLab = "AAa_ValueLab";
-    public static string AAa_Background = "AAa_Background";
-    public static string AAa_FillArea = "AAa_FillArea";
-    public static string AAa_Fill = "AAa_Fill";
-    public static string AAa_HandleSlideArea = "AAa_HandleSlideArea";
-    public static string AAa_Handle = "AAa_Handle";
-    public static string AAb_Slider = "AAb_Slider";
-    public static string AAb_Tit = "AAb_Tit";
-    public static string AAb_ValueLab = "AAb_ValueLab";
-    public static string AAb_Background = "AAb_Background";
-    public static string AAb_FillArea = "AAb_FillArea";
-    public static string AAb_Fill = "AAb_Fill";
-    public static string AAb_HandleSlideArea = "AAb_HandleSlideArea";
-    public static string AAb_Handle = "AAb_Handle";
-    public static string AA_Tip = "AA_Tip";
-    public static string W_HudParent = "W_HudParent";
-    public static string I_BlackMask = "I_BlackMask";
-    public static string I_Lab = "I_Lab";
-    public static string X_PlazaRoom = "X_PlazaRoom";
-    public static string X_Coin = "X_Coin";
-    public static string X_CoinBK = "X_CoinBK";
-    public static string X_CoinText = "X_CoinText";
-    public static string X_Diamond = "X_Diamond";
-    public static string X_DiamondBK = "X_DiamondBK";
-    public static string X_DiamondText = "X_DiamondText";
-    public static string X_InfoParent = "X_InfoParent";
-    public static string X_InfoBK = "X_InfoBK";
-    public static string X_InfoMask = "X_InfoMask";
-    public static string X_Info = "X_Info";
-    public static string X_CloseInfo = "X_CloseInfo";
-    public static string X_CurrentInfo = "X_CurrentInfo";
-    public static string X_CurrentInfoLab = "X_CurrentInfoLab";
-    public static string X_CurrentInfoImagePlus = "X_CurrentInfoImagePlus";
-    public static string X_OpenInfo = "X_OpenInfo";
-    public static string X_Quit = "X_Quit";
-    public static string X_InputField = "X_InputField";
-    public static string X_InputFieldLab = "X_InputFieldLab";
-    public static string X_SendPublicMessage = "X_SendPublicMessage";
-    public static string X_Expression = "X_Expression";
-    public static string X_Mask = "X_Mask";
-    public static string X_GridBK = "X_GridBK";
-    public static string X_Grid = "X_Grid";
-    public static string X_HappyFace = "X_HappyFace";
-    public static string X_HopeFace = "X_HopeFace";
-    public static string X_SurpriseFace = "X_SurpriseFace";
-    public static string X_ChagrinFace = "X_ChagrinFace";
-    public static string X_BlueFace = "X_BlueFace";
-    public static string X_OgleFace = "X_OgleFace";
-    public static string X_SweatFace = "X_SweatFace";
-    public static string X_CryFace = "X_CryFace";
-    public static string X_CreateChest = "X_CreateChest";
-    public static string X_MemberButton = "X_MemberButton";
-    public static string X_MemberIcon = "X_MemberIcon";
-    public static string Y_Chest = "Y_Chest";
-    public static string Y_BK = "Y_BK";
-    public static string Y_Close = "Y_Close";
-    public static string Ya_GetAward = "Ya_GetAward";
-    public static string Ya_Btn = "Ya_Btn";
-    public static string Ya_BtnLab = "Ya_BtnLab";
-    public static string Ya_Rotate = "Ya_Rotate";
-    public static string Ya_Icon = "Ya_Icon";
-    public static string Ya_Desc = "Ya_Desc";
-    public static string Y_Guess = "Y_Guess";
-    public static string Y_RewardItem = "Y_RewardItem";
-    public static string Y_RewardIcon = "Y_RewardIcon";
-    public static string Y_RewardLab = "Y_RewardLab";
-    public static string Y_Btn = "Y_Btn";
-    public static string Y_BtnLab = "Y_BtnLab";
-    public static string Y_Desc = "Y_Desc";
-    public static string Y_Tit = "Y_Tit";
-    public static string Y_InputField = "Y_InputField";
-    public static string Y_InputFieldLab = "Y_InputFieldLab";
-    public static string Yb_CreateChest = "Yb_CreateChest";
-    public static string Yb_Tit = "Yb_Tit";
-    public static string Yb_Icon = "Yb_Icon";
-    public static string Yb_InputField = "Yb_InputField";
-    public static string Yb_InputFieldLab = "Yb_InputFieldLab";
-    public static string Yb_Slider = "Yb_Slider";
-    public static string Yb_SliderTit = "Yb_SliderTit";
-    public static string Yb_SliderValueLab = "Yb_SliderValueLab";
-    public static string Yb_Background = "Yb_Background";
-    public static string Yb_FillArea = "Yb_FillArea";
-    public static string Yb_Fill = "Yb_Fill";
-    public static string Yb_HandleSlideArea = "Yb_HandleSlideArea";
-    public static string Yb_Handle = "Yb_Handle";
-    public static string Yb_Desc = "Yb_Desc";
-    public static string Yb_CostLab = "Yb_CostLab";
-    public static string Yb_CostImagePlus = "Yb_CostImagePlus";
-    public static string Yb_Btn = "Yb_Btn";
-    public static string Yb_BtnLab = "Yb_BtnLab";
-    public static string Yb_Toggle0 = "Yb_Toggle0";
-    public static string Yb_ToggleIcon0 = "Yb_ToggleIcon0";
-    public static string Yb_ToggleLab0 = "Yb_ToggleLab0";
-    public static string Yb_Toggle1 = "Yb_Toggle1";
-    public static string Yb_ToggleIcon1 = "Yb_ToggleIcon1";
-    public static string Yb_ToggleLab1 = "Yb_ToggleLab1";
-    public static string Yb_Toggle2 = "Yb_Toggle2";
-    public static string Yb_ToggleIcon2 = "Yb_ToggleIcon2";
-    public static string Yb_ToggleLab2 = "Yb_ToggleLab2";
-    public static string Y_Tip = "Y_Tip";
-    public static string O_Toast = "O_Toast";
-    public static string O_Pos = "O_Pos";
-    public static string O_Lab = "O_Lab";
-    public static string V_BlackMask = "V_BlackMask";
-    public static string T_NickName = "T_NickName";
-    public static string T_NickNameBK = "T_NickNameBK";
-    public static string T_NickNameCard = "T_NickNameCard";
-    public static string T_CloseParent = "T_CloseParent";
-    public static string T_Close = "T_Close";
-    public static string T_Confirm = "T_Confirm";
-    public static string T_ConfirmLab = "T_ConfirmLab";
-    public static string T_Tit = "T_Tit";
-    public static string T_InputField = "T_InputField";
-    public static string T_InputLab = "T_InputLab";
-    public static string T_Random = "T_Random";
-    public static string T_CostTxt = "T_CostTxt";
-    public static string T_CostImagePlus = "T_CostImagePlus";
-    public static string AC_EnterMinigamePanelMask = "AC_EnterMinigamePanelMask";
-    public static string AC_EnterMinigamePanel = "AC_EnterMinigamePanel";
-    public static string AC_Title = "AC_Title";
-    public static string AC_CloseButton = "AC_CloseButton";
-    public static string AC_ConfirmButton = "AC_ConfirmButton";
-    public static string AC_ConfirmButtonTitle = "AC_ConfirmButtonTitle";
-    public static string AC_ChangeButton = "AC_ChangeButton";
-    public static string AC_ChangeButtonTitle = "AC_ChangeButtonTitle";
-    public static string AC_CostText = "AC_CostText";
-    public static string AC_CostTextImagePlus = "AC_CostTextImagePlus";
-    public static string AC_Mask = "AC_Mask";
-    public static string AC_ScrollPos0 = "AC_ScrollPos0";
-    public static string AC_ScrollPos1 = "AC_ScrollPos1";
-    public static string AC_ScrollPos2 = "AC_ScrollPos2";
-    public static string AC_GamaTypeText0 = "AC_GamaTypeText0";
-    public static string AC_GamaTypeText1 = "AC_GamaTypeText1";
-    public static string AE_PlazaroomMemberPanelParent = "AE_PlazaroomMemberPanelParent";
-    public static string AE_PlazaroomMemberPanelMask = "AE_PlazaroomMemberPanelMask";
-    public static string AE_PlazaroomMemberPanel = "AE_PlazaroomMemberPanel";
-    public static string AE_Frame = "AE_Frame";
-    public static string AE_NicknameTitle = "AE_NicknameTitle";
-    public static string AE_ContentTitle = "AE_ContentTitle";
-    public static string AE_FriendFilterButton = "AE_FriendFilterButton";
-    public static string AE_FriendFilterIcon = "AE_FriendFilterIcon";
-    public static string AE_FriendFilterTitle = "AE_FriendFilterTitle";
-    public static string AE_PanelTitle = "AE_PanelTitle";
-    public static string AE_CloseButton = "AE_CloseButton";
-    public static string AE_CloseButtonTitle = "AE_CloseButtonTitle";
-    public static string AE_ScrollRect = "AE_ScrollRect";
-    public static string AE_Grid = "AE_Grid";
-    public static string AE_FriendListButton = "AE_FriendListButton";
-    public static string AE_FriendListImage = "AE_FriendListImage";
-    public static string AD_CDMinigameMask = "AD_CDMinigameMask";
-    public static string AD_CDMinigamePanel = "AD_CDMinigamePanel";
-    public static string AD_Title = "AD_Title";
-    public static string AD_CoinToggle = "AD_CoinToggle";
-    public static string AD_CoinTick = "AD_CoinTick";
-    public static string AD_CoinCostText = "AD_CoinCostText";
-    public static string AD_CoinCostTextImagePlus = "AD_CoinCostTextImagePlus";
-    public static string AD_CoinDescription = "AD_CoinDescription";
-    public static string AD_DiamondToggle = "AD_DiamondToggle";
-    public static string AD_DiamondTick = "AD_DiamondTick";
-    public static string AD_DiamondDescription = "AD_DiamondDescription";
-    public static string AD_DiamondCostText = "AD_DiamondCostText";
-    public static string AD_DiamondCostTextImagePlus = "AD_DiamondCostTextImagePlus";
-    public static string AD_CloseButton = "AD_CloseButton";
-    public static string AD_ConfirmButton = "AD_ConfirmButton";
-    public static string AD_ConfirmButtonTitle = "AD_ConfirmButtonTitle";
-    public static string AF_FriendPanelParent = "AF_FriendPanelParent";
-    public static string AF_FriendPanelMask = "AF_FriendPanelMask";
-    public static string AF_FriendPanel = "AF_FriendPanel";
-    public static string AF_Frame = "AF_Frame";
-    public static string AF_NicknameTitle = "AF_NicknameTitle";
-    public static string AF_ContentTitle = "AF_ContentTitle";
-    public static string AF_NewMessageFlag = "AF_NewMessageFlag";
-    public static string AF_NewMessageFlagText = "AF_NewMessageFlagText";
-    public static string AF_ApplicantButton = "AF_ApplicantButton";
-    public static string AF_NewApplicantFlagImage = "AF_NewApplicantFlagImage";
-    public static string AF_ApplicantIcon = "AF_ApplicantIcon";
-    public static string AF_ApplicantTitle = "AF_ApplicantTitle";
-    public static string AF_PanelTitle = "AF_PanelTitle";
-    public static string AF_FriendScrollRect = "AF_FriendScrollRect";
-    public static string AF_FriendGrid = "AF_FriendGrid";
-    public static string AF_ApplicantScrollRect = "AF_ApplicantScrollRect";
-    public static string AF_ApplicantGrid = "AF_ApplicantGrid";
-    public static string AF_HorizontalGroup = "AF_HorizontalGroup";
-    public static string AF_AcceptAllButton = "AF_AcceptAllButton";
-    public static string AF_AcceptAllButtonTitle = "AF_AcceptAllButtonTitle";
-    public static string AF_AddFriendButton = "AF_AddFriendButton";
-    public static string AF_AddFriendTitle = "AF_AddFriendTitle";
-    public static string AF_CloseButton = "AF_CloseButton";
-    public static string AF_CloseButtonTitle = "AF_CloseButtonTitle";
-    public static string AF_FriendAmountText = "AF_FriendAmountText";
-    public static string AG_AddFriendPanelMask = "AG_AddFriendPanelMask";
-    public static string AG_AddFriendPanel = "AG_AddFriendPanel";
-    public static string AG_Title = "AG_Title";
-    public static string AG_InputField = "AG_InputField";
-    public static string AG_InputFieldText = "AG_InputFieldText";
-    public static string AG_SearchButton = "AG_SearchButton";
-    public static string AG_SearchButtonTitle = "AG_SearchButtonTitle";
-    public static string AG_TipText = "AG_TipText";
-    public static string AG_NicknameText = "AG_NicknameText";
-    public static string AG_ChangeButton = "AG_ChangeButton";
-    public static string AG_ChangeButtonUnderline = "AG_ChangeButtonUnderline";
-    public static string AG_CloseButton = "AG_CloseButton";
-    public static string AG_ApplyButton = "AG_ApplyButton";
-    public static string AG_ApplyButtonTitle = "AG_ApplyButtonTitle";
-    public static string AH_MessagePanelParent = "AH_MessagePanelParent";
-    public static string AH_MessagePanelMask = "AH_MessagePanelMask";
-    public static string AH_MessagePanel = "AH_MessagePanel";
-    public static string AH_Frame = "AH_Frame";
-    public static string AH_NicknameTitle = "AH_NicknameTitle";
-    public static string AH_ContentTitle = "AH_ContentTitle";
-    public static string AH_TimeTitle = "AH_TimeTitle";
-    public static string AH_PanelTitle = "AH_PanelTitle";
-    public static string AH_CloseButton = "AH_CloseButton";
-    public static string AH_CloseButtonTitle = "AH_CloseButtonTitle";
-    public static string AH_ScrollRect = "AH_ScrollRect";
-    public static string AH_Grid = "AH_Grid";
-    public static string AH_InputFieldParent = "AH_InputFieldParent";
-    public static string AH_InputField = "AH_InputField";
-    public static string AH_PlaceholderTitle = "AH_PlaceholderTitle";
-    public static string AH_InputText = "AH_InputText";
-    public static string AH_SendMessageButton = "AH_SendMessageButton";
-    public static string AH_SendMessageButtonTitle = "AH_SendMessageButtonTitle";
-    public static string AH_LoadingTitle = "AH_LoadingTitle";
-    public static string B_SignIn0 = "B_SignIn0";
-    public static string B_SignIn = "B_SignIn";
-    public static string Bb_SignIn = "Bb_SignIn";
-    public static string Bb_Get = "Bb_Get";
-    public static string Bb_GetLab = "Bb_GetLab";
-    public static string Bb_Title = "Bb_Title";
-    public static string Bb_Grid = "Bb_Grid";
-    public static string Bb_Rotate = "Bb_Rotate";
-    public static string Bb_Info = "Bb_Info";
-    public static string Bb_IconB = "Bb_IconB";
-    public static string Bb_InfoLabB = "Bb_InfoLabB";
-    public static string Bb_IconA = "Bb_IconA";
-    public static string Bb_IconA0 = "Bb_IconA0";
-    public static string Bb_InfoLabA = "Bb_InfoLabA";
-    public static string Bb_Confirm = "Bb_Confirm";
-    public static string Bb_ConfirmLab = "Bb_ConfirmLab";
-    public static string Ba_Notice0 = "Ba_Notice0";
-    public static string Ba_Notice = "Ba_Notice";
-    public static string Ba_Confirm = "Ba_Confirm";
-    public static string Ba_ConfirmLab = "Ba_ConfirmLab";
-    public static string Ba_Lab = "Ba_Lab";
-    public static string Ba_Lab2 = "Ba_Lab2";
-    public static string Ba_Group = "Ba_Group";
-    public static string Ba_Icon = "Ba_Icon";
-    public static string Ba_IconLab = "Ba_IconLab";
-    public static string Bc_Lottery = "Bc_Lottery";
-    public static string Bc_LotteryItem1 = "Bc_LotteryItem1";
-    public static string Bc_LotteryBK11 = "Bc_LotteryBK11";
-    public static string Bc_LotteryBK12 = "Bc_LotteryBK12";
-    public static string Bc_LotteryBtn1 = "Bc_LotteryBtn1";
-    public static string Bc_LotteryIcon11 = "Bc_LotteryIcon11";
-    public static string Bc_LotteryIcon12 = "Bc_LotteryIcon12";
-    public static string Bc_LotteryIcon13 = "Bc_LotteryIcon13";
-    public static string Bc_LotteryLab1 = "Bc_LotteryLab1";
-    public static string Bc_LotteryBack1 = "Bc_LotteryBack1";
-    public static string Bc_LotteryItem2 = "Bc_LotteryItem2";
-    public static string Bc_LotteryBK21 = "Bc_LotteryBK21";
-    public static string Bc_LotteryBK22 = "Bc_LotteryBK22";
-    public static string Bc_LotteryBtn2 = "Bc_LotteryBtn2";
-    public static string Bc_LotteryIcon21 = "Bc_LotteryIcon21";
-    public static string Bc_LotteryIcon22 = "Bc_LotteryIcon22";
-    public static string Bc_LotteryIcon23 = "Bc_LotteryIcon23";
-    public static string Bc_LotteryLab2 = "Bc_LotteryLab2";
-    public static string Bc_LotteryBack2 = "Bc_LotteryBack2";
-    public static string Bc_LotteryItem3 = "Bc_LotteryItem3";
-    public static string Bc_LotteryBK31 = "Bc_LotteryBK31";
-    public static string Bc_LotteryBK32 = "Bc_LotteryBK32";
-    public static string Bc_LotteryBtn3 = "Bc_LotteryBtn3";
-    public static string Bc_LotteryIcon31 = "Bc_LotteryIcon31";
-    public static string Bc_LotteryIcon32 = "Bc_LotteryIcon32";
-    public static string Bc_LotteryIcon33 = "Bc_LotteryIcon33";
-    public static string Bc_LotteryLab3 = "Bc_LotteryLab3";
-    public static string Bc_LotteryBack3 = "Bc_LotteryBack3";
-    public static string Bc_Lab = "Bc_Lab";
-    public static string Bc_Confirm = "Bc_Confirm";
-    public static string Bc_ConfirmLab = "Bc_ConfirmLab";
-    public static string Bd_Mail = "Bd_Mail";
-    public static string Bd_Mail0 = "Bd_Mail0";
-    public static string Bd_Text = "Bd_Text";
-    public static string Bd_Get = "Bd_Get";
-    public static string Bd_GetLab = "Bd_GetLab";
-    public static string Bd_Title = "Bd_Title";
-    public static string Bd_ScrollRect = "Bd_ScrollRect";
-    public static string Bd_Grid = "Bd_Grid";
-    public static string N_Tutorial = "N_Tutorial";
-    public static string N_Mask = "N_Mask";
-    public static string N_Arrow = "N_Arrow";
-    public static string N_ArrowIcon = "N_ArrowIcon";
-    public static string N_LabBK = "N_LabBK";
-    public static string N_Lab = "N_Lab";
-    public static string N_Button = "N_Button";
-    public static string N_Confirm = "N_Confirm";
-    public static string N_ConfirmLab = "N_ConfirmLab";
-    public static string N_FormerPlayerButton = "N_FormerPlayerButton";
-    public static string N_FormerPlayerButtonText = "N_FormerPlayerButtonText";
-    public static string AB_RechargeGiftPanel = "AB_RechargeGiftPanel";
-    public static string AB_PanelBK = "AB_PanelBK";
-    public static string AB_Confirm = "AB_Confirm";
-    public static string AB_ConfirmText = "AB_ConfirmText";
-    public static string AB_RotateIcon = "AB_RotateIcon";
-    public static string AB_Title = "AB_Title";
-    public static string AB_Description = "AB_Description";
-    public static string AB_AwardImages = "AB_AwardImages";
-    public static string AB_AwardImage0 = "AB_AwardImage0";
-    public static string AB_AwardImage1 = "AB_AwardImage1";
-    public static string AB_AwardImage2 = "AB_AwardImage2";
-    public static string AB_FlowerAwardImage = "AB_FlowerAwardImage";
-    public static string K_Bubble = "K_Bubble";
-    public static string K_Bubble0 = "K_Bubble0";
-    public static string K_Tit = "K_Tit";
-    public static string K_VGroup = "K_VGroup";
-    public static string K_Icon = "K_Icon";
-    public static string K_Lab = "K_Lab";
-    public static string K_Lab2 = "K_Lab2";
-    public static string K_ImagePlus2 = "K_ImagePlus2";
-    public static string K_Lab1 = "K_Lab1";
-    public static string K_ImagePlus1 = "K_ImagePlus1";
-    public static string K_Lab3 = "K_Lab3";
-    public static string K_LinkButton = "K_LinkButton";
-    public static string K_NotifyLab = "K_NotifyLab";
-    public static string K_NotifyImagePlus = "K_NotifyImagePlus";
-    public static string K_HGroup = "K_HGroup";
-    public static string K_Confirm = "K_Confirm";
-    public static string K_ConfirmLab = "K_ConfirmLab";
-    public static string K_Cancel = "K_Cancel";
-    public static string K_CancelLab = "K_CancelLab";
-    public static string AI_AlertPanel = "AI_AlertPanel";
-    public static string AI_BK = "AI_BK";
-    public static string AI_Tit = "AI_Tit";
-    public static string AI_Grid = "AI_Grid";
-    public static string AI_HGroup = "AI_HGroup";
-    public static string AI_Confirm = "AI_Confirm";
-    public static string AI_ConfirmLab = "AI_ConfirmLab";
-    public static string AI_Cancel = "AI_Cancel";
-    public static string AI_CancelLab = "AI_CancelLab";
-    public static string A_HudParent = "A_HudParent";
-    public static string U_LoadingPanel = "U_LoadingPanel";
-    public static string U_Parent = "U_Parent";
-    public static string U_DebugLab = "U_DebugLab";
-    public static string U_VGroup = "U_VGroup";
-    public static string U_WarningTitle = "U_WarningTitle";
-    public static string U_WarningText = "U_WarningText";
-    public static string U_Group = "U_Group";
-    public static string U_Icon = "U_Icon";
-    public static string U_Lab = "U_Lab";
-    public static string AJ_UpdatePanel = "AJ_UpdatePanel";
-    public static string AJ_bg = "AJ_bg";
-    public static string AJ_Title = "AJ_Title";
-    public static string AJ_Content = "AJ_Content";
-    public static string AJ_Progress = "AJ_Progress";
-    //EndMark-Used by LabelUtility-Do not remove
+using System.Collections;
+using System.Collections.Generic;
+
+using UnityEngine;
+
+public class CanvasLabel
+{
+    //StartMark-Used by LabelUtility-Do not remove
+    public static string Canvas = "Canvas";
+    public static string E_Debug = "E_Debug";
+    public static string E_Group = "E_Group";
+    public static string E_Scrr = "E_Scrr";
+    public static string E_Mask = "E_Mask";
+    public static string E_ScrrLab = "E_ScrrLab";
+    public static string E_CentralBtn = "E_CentralBtn";
+    public static string E_CentralLab = "E_CentralLab";
+    public static string E_ShowBtn = "E_ShowBtn";
+    public static string E_ShowLab = "E_ShowLab";
+    public static string Ea_Central = "Ea_Central";
+    public static string Ea_Reset = "Ea_Reset";
+    public static string Ea_ResetLab = "Ea_ResetLab";
+    public static string Ea_Send = "Ea_Send";
+    public static string Ea_SendLab = "Ea_SendLab";
+    public static string Ea_Free = "Ea_Free";
+    public static string Ea_FreeLab = "Ea_FreeLab";
+    public static string Ea_Unlock = "Ea_Unlock";
+    public static string Ea_UnlockLab = "Ea_UnlockLab";
+    public static string Ea_Lottery = "Ea_Lottery";
+    public static string Ea_LotteryLab = "Ea_LotteryLab";
+    public static string Ea_Close = "Ea_Close";
+    public static string Ea_CloseLab = "Ea_CloseLab";
+    public static string Ea_Cool = "Ea_Cool";
+    public static string Ea_CoolLab = "Ea_CoolLab";
+    public static string Ea_Score = "Ea_Score";
+    public static string Ea_ScoreLab = "Ea_ScoreLab";
+    public static string Ea_End = "Ea_End";
+    public static string Ea_EndLab = "Ea_EndLab";
+    public static string Ea_IncreaseFR = "Ea_IncreaseFR";
+    public static string Ea_IncreaseLab = "Ea_IncreaseLab";
+    public static string Ea_DecreaseFR = "Ea_DecreaseFR";
+    public static string Ea_DecreaseLab = "Ea_DecreaseLab";
+    public static string C_Main = "C_Main";
+    public static string C_Main2 = "C_Main2";
+    public static string C_Group2 = "C_Group2";
+    public static string C_MiniGame = "C_MiniGame";
+    public static string C_MiniArrow0 = "C_MiniArrow0";
+    public static string C_MiniArrow1 = "C_MiniArrow1";
+    public static string C_MiniGameLab = "C_MiniGameLab";
+    public static string C_Group0 = "C_Group0";
+    public static string C_Group = "C_Group";
+    public static string C_Tip = "C_Tip";
+    public static string C_TipLab = "C_TipLab";
+    public static string C_RightSidePanelPosition = "C_RightSidePanelPosition";
+    public static string C_RightSidePanel = "C_RightSidePanel";
+    public static string C_OpenCloseRightSidePanelButtons = "C_OpenCloseRightSidePanelButtons";
+    public static string C_CloseSidePanelButton = "C_CloseSidePanelButton";
+    public static string C_OpenSidePanelButton = "C_OpenSidePanelButton";
+    public static string C_RightSidePanelGroup = "C_RightSidePanelGroup";
+    public static string C_Group1 = "C_Group1";
+    public static string C_Manage = "C_Manage";
+    public static string C_LevelBK = "C_LevelBK";
+    public static string C_LevelText = "C_LevelText";
+    public static string C_ManageArrow0 = "C_ManageArrow0";
+    public static string C_Achieve = "C_Achieve";
+    public static string C_Setting = "C_Setting";
+    public static string C_DressRoom = "C_DressRoom";
+    public static string C_DressRoomArrow = "C_DressRoomArrow";
+    public static string C_DressRoomLabPos = "C_DressRoomLabPos";
+    public static string C_Group4 = "C_Group4";
+    public static string C_FashionShowButtonParent = "C_FashionShowButtonParent";
+    public static string C_FashionShowButton = "C_FashionShowButton";
+    public static string C_FashionShowArrow = "C_FashionShowArrow";
+    public static string C_AddFriendButton = "C_AddFriendButton";
+    public static string C_EnterPlazaRoom0 = "C_EnterPlazaRoom0";
+    public static string C_EnterPlazaRoom = "C_EnterPlazaRoom";
+    public static string C_PlazaRoomArrow0 = "C_PlazaRoomArrow0";
+    public static string C_HeartIcon = "C_HeartIcon";
+    public static string C_WelcomeIcon = "C_WelcomeIcon";
+    public static string C_Return = "C_Return";
+    public static string C_ReturnArrow0 = "C_ReturnArrow0";
+    public static string C_Visit = "C_Visit";
+    public static string C_VisitLab = "C_VisitLab";
+    public static string C_CostLab = "C_CostLab";
+    public static string C_VisitImagePlus = "C_VisitImagePlus";
+    public static string C_VisitArrow0 = "C_VisitArrow0";
+    public static string C_Coin = "C_Coin";
+    public static string C_Pos = "C_Pos";
+    public static string C_CoinBk = "C_CoinBk";
+    public static string C_CoinLab = "C_CoinLab";
+    public static string C_IncomeLab = "C_IncomeLab";
+    public static string C_Garden = "C_Garden";
+    public static string C_GardenLab = "C_GardenLab";
+    public static string C_LeftSidePanel = "C_LeftSidePanel";
+    public static string C_LeftSidePanelHidePos = "C_LeftSidePanelHidePos";
+    public static string C_Group3 = "C_Group3";
+    public static string C_NicknameParent = "C_NicknameParent";
+    public static string C_NickNameBK = "C_NickNameBK";
+    public static string C_NickNameLab = "C_NickNameLab";
+    public static string C_SocialGroup = "C_SocialGroup";
+    public static string C_CommentParent = "C_CommentParent";
+    public static string C_Comment = "C_Comment";
+    public static string C_Praise = "C_Praise";
+    public static string C_PraiseText = "C_PraiseText";
+    public static string C_NotifyParent = "C_NotifyParent";
+    public static string C_Notify = "C_Notify";
+    public static string C_FriendButtonParent = "C_FriendButtonParent";
+    public static string C_FriendButton = "C_FriendButton";
+    public static string C_NewMessageFlag = "C_NewMessageFlag";
+    public static string C_NewMessageFlagText = "C_NewMessageFlagText";
+    public static string C_RankRarent = "C_RankRarent";
+    public static string C_Rank = "C_Rank";
+    public static string C_OpenCloseLeftSidePanelButtons = "C_OpenCloseLeftSidePanelButtons";
+    public static string C_CloseLeftSidePanelButton = "C_CloseLeftSidePanelButton";
+    public static string C_OpenLeftSidePanelButton = "C_OpenLeftSidePanelButton";
+    public static string C_Info = "C_Info";
+    public static string C_WifiButton = "C_WifiButton";
+    public static string L_Setting = "L_Setting";
+    public static string L_Setting0 = "L_Setting0";
+    public static string L_Tit = "L_Tit";
+    public static string L_User = "L_User";
+    public static string L_UserTit = "L_UserTit";
+    public static string L_UserLab = "L_UserLab";
+    public static string L_ChangeBtn = "L_ChangeBtn";
+    public static string L_ChangeLab = "L_ChangeLab";
+    public static string L_ResetBtn = "L_ResetBtn";
+    public static string L_ResetLab = "L_ResetLab";
+    public static string L_Audio = "L_Audio";
+    public static string L_AudioTit = "L_AudioTit";
+    public static string L_MusicBtn = "L_MusicBtn";
+    public static string L_MusicBk = "L_MusicBk";
+    public static string L_MusicOn = "L_MusicOn";
+    public static string L_MusicOnLab = "L_MusicOnLab";
+    public static string L_MusicOff = "L_MusicOff";
+    public static string L_MusicOffLab = "L_MusicOffLab";
+    public static string L_MusicLab = "L_MusicLab";
+    public static string L_AudioBtn = "L_AudioBtn";
+    public static string L_AudioBk = "L_AudioBk";
+    public static string L_AudioOn = "L_AudioOn";
+    public static string L_AudioOnLab = "L_AudioOnLab";
+    public static string L_AudioOff = "L_AudioOff";
+    public static string L_AudioOffLab = "L_AudioOffLab";
+    public static string L_AudioLab = "L_AudioLab";
+    public static string L_Confirm = "L_Confirm";
+    public static string L_ConfirmLab = "L_ConfirmLab";
+    public static string L_Language = "L_Language";
+    public static string L_LanguageButtonLayout = "L_LanguageButtonLayout";
+    public static string L_English = "L_English";
+    public static string L_EnglishLab = "L_EnglishLab";
+    public static string L_SimChi = "L_SimChi";
+    public static string L_SimChiLab = "L_SimChiLab";
+    public static string L_TraChi = "L_TraChi";
+    public static string L_TraChiLab = "L_TraChiLab";
+    public static string L_LanguageTit = "L_LanguageTit";
+    public static string L_Support = "L_Support";
+    public static string L_SupportTit = "L_SupportTit";
+    public static string L_ReportBtn = "L_ReportBtn";
+    public static string L_ReportLab = "L_ReportLab";
+    public static string L_ShareBtn = "L_ShareBtn";
+    public static string L_ShareLab = "L_ShareLab";
+    public static string L_CreditsBtn = "L_CreditsBtn";
+    public static string L_CreditsLab = "L_CreditsLab";
+    public static string Lb_Info = "Lb_Info";
+    public static string Lb_Info0 = "Lb_Info0";
+    public static string Lb_Tit = "Lb_Tit";
+    public static string Lb_Cancel = "Lb_Cancel";
+    public static string Lb_CancelLab = "Lb_CancelLab";
+    public static string Lb_Confirm = "Lb_Confirm";
+    public static string Lb_ConfirmLab = "Lb_ConfirmLab";
+    public static string Lb_InputField0 = "Lb_InputField0";
+    public static string Lb_InputLab0 = "Lb_InputLab0";
+    public static string Lb_Placeholder0 = "Lb_Placeholder0";
+    public static string Lb_InputField = "Lb_InputField";
+    public static string Lb_InputLab = "Lb_InputLab";
+    public static string Lb_Placeholder = "Lb_Placeholder";
+    public static string Lc_CreditsMask = "Lc_CreditsMask";
+    public static string Lc_Pos = "Lc_Pos";
+    public static string Lc_CreditsContent = "Lc_CreditsContent";
+    public static string Lc_CreditsIcon = "Lc_CreditsIcon";
+    public static string La_Info = "La_Info";
+    public static string La_Info0 = "La_Info0";
+    public static string La_Tit = "La_Tit";
+    public static string La_Lab = "La_Lab";
+    public static string La_Cancel = "La_Cancel";
+    public static string La_CancelLab = "La_CancelLab";
+    public static string La_Confirm = "La_Confirm";
+    public static string La_ConfirmLab = "La_ConfirmLab";
+    public static string La_InputField = "La_InputField";
+    public static string La_InputLab = "La_InputLab";
+    public static string La_Placeholder = "La_Placeholder";
+    public static string La_Mask = "La_Mask";
+    public static string F_Manage = "F_Manage";
+    public static string F_Manage0 = "F_Manage0";
+    public static string F_Close = "F_Close";
+    public static string F_CloseExtent = "F_CloseExtent";
+    public static string F_Tab = "F_Tab";
+    public static string Fd_Elf = "Fd_Elf";
+    public static string Fd_Scrr = "Fd_Scrr";
+    public static string Fd_Grid = "Fd_Grid";
+    public static string Fc_Store = "Fc_Store";
+    public static string Fc_Scrr = "Fc_Scrr";
+    public static string Fc_Grid = "Fc_Grid";
+    public static string Fb_Magic = "Fb_Magic";
+    public static string Fb_Scrr = "Fb_Scrr";
+    public static string Fb_Grid = "Fb_Grid";
+    public static string Ff_SkillBar = "Ff_SkillBar";
+    public static string F_Skill1 = "F_Skill1";
+    public static string F_Arrow0 = "F_Arrow0";
+    public static string F_SkillBk10 = "F_SkillBk10";
+    public static string F_SkillBk11 = "F_SkillBk11";
+    public static string F_SkillLab1 = "F_SkillLab1";
+    public static string F_Skill2 = "F_Skill2";
+    public static string F_SkillBk20 = "F_SkillBk20";
+    public static string F_SkillBk21 = "F_SkillBk21";
+    public static string F_SkillLab2 = "F_SkillLab2";
+    public static string F_Skill3 = "F_Skill3";
+    public static string F_SkillBk30 = "F_SkillBk30";
+    public static string F_SkillBk31 = "F_SkillBk31";
+    public static string F_SkillLab3 = "F_SkillLab3";
+    public static string F_Skill4 = "F_Skill4";
+    public static string F_SkillBk40 = "F_SkillBk40";
+    public static string F_SkillBk41 = "F_SkillBk41";
+    public static string F_SkillLab4 = "F_SkillLab4";
+    public static string Fa_Garden = "Fa_Garden";
+    public static string Fa_Scrr = "Fa_Scrr";
+    public static string Fa_Grid = "Fa_Grid";
+    public static string F_TabBtn = "F_TabBtn";
+    public static string F_Store = "F_Store";
+    public static string F_StoreIcon = "F_StoreIcon";
+    public static string F_StoreLab = "F_StoreLab";
+    public static string F_Magic = "F_Magic";
+    public static string F_MagicIcon = "F_MagicIcon";
+    public static string F_MagicLab = "F_MagicLab";
+    public static string F_Elf = "F_Elf";
+    public static string F_ElfIcon = "F_ElfIcon";
+    public static string F_ElfLab = "F_ElfLab";
+    public static string F_Garden = "F_Garden";
+    public static string F_GardenIcon = "F_GardenIcon";
+    public static string F_GardenLab = "F_GardenLab";
+    public static string F_Info = "F_Info";
+    public static string F_DataA = "F_DataA";
+    public static string F_DataB = "F_DataB";
+    public static string F_CoinLab = "F_CoinLab";
+    public static string F_DiamondLab = "F_DiamondLab";
+    public static string F_FlowerLab = "F_FlowerLab";
+    public static string F_PersonLab = "F_PersonLab";
+    public static string F_CoinPersonLab = "F_CoinPersonLab";
+    public static string F_PersonBtn = "F_PersonBtn";
+    public static string F_CoinPersonBtn = "F_CoinPersonBtn";
+    public static string F_Flower = "F_Flower";
+    public static string F_CoinLabArrow = "F_CoinLabArrow";
+    public static string F_TipBK = "F_TipBK";
+    public static string F_Tip = "F_Tip";
+    public static string F_TipBtn = "F_TipBtn";
+    public static string F_PosTra = "F_PosTra";
+    public static string Fe_Info = "Fe_Info";
+    public static string Fe_Info0 = "Fe_Info0";
+    public static string Fe_Tit = "Fe_Tit";
+    public static string Fe_Icon = "Fe_Icon";
+    public static string Fe_Lab0 = "Fe_Lab0";
+    public static string Fe_ImagePlus0 = "Fe_ImagePlus0";
+    public static string Fe_Lab1 = "Fe_Lab1";
+    public static string Fe_ImagePlus1 = "Fe_ImagePlus1";
+    public static string Fe_Btn = "Fe_Btn";
+    public static string Fe_BtnLab = "Fe_BtnLab";
+    public static string Fe_ImagePlus = "Fe_ImagePlus";
+    public static string Fe_Arrow0 = "Fe_Arrow0";
+    public static string Fe_Arrow1 = "Fe_Arrow1";
+    public static string Fe_Close = "Fe_Close";
+    public static string Fg_Reconnect = "Fg_Reconnect";
+    public static string Fg_Reconnect0 = "Fg_Reconnect0";
+    public static string Fg_Tit = "Fg_Tit";
+    public static string Fg_Btn = "Fg_Btn";
+    public static string Fg_BtnLab = "Fg_BtnLab";
+    public static string Fg_Lab = "Fg_Lab";
+    public static string Fg_Close = "Fg_Close";
+    public static string AK_PayCard = "AK_PayCard";
+    public static string AK_PayCard0 = "AK_PayCard0";
+    public static string AK_Desc = "AK_Desc";
+    public static string AK_Close = "AK_Close";
+    public static string AK_Buttons = "AK_Buttons";
+    public static string AK_Alipay = "AK_Alipay";
+    public static string AK_WXPay = "AK_WXPay";
+    public static string D_MiniGame = "D_MiniGame";
+    public static string D_HudParent = "D_HudParent";
+    public static string D_Quit = "D_Quit";
+    public static string D_PrepareLab = "D_PrepareLab";
+    public static string D_Operate1 = "D_Operate1";
+    public static string D_PrepareLayout1 = "D_PrepareLayout1";
+    public static string D_Status1 = "D_Status1";
+    public static string D_Rip1 = "D_Rip1";
+    public static string D_Rip2 = "D_Rip2";
+    public static string D_Water1 = "D_Water1";
+    public static string D_Water2 = "D_Water2";
+    public static string D_WaterArrow0 = "D_WaterArrow0";
+    public static string D_WaterArrow1 = "D_WaterArrow1";
+    public static string D_Fertilize1 = "D_Fertilize1";
+    public static string D_Fertilize2 = "D_Fertilize2";
+    public static string D_DescA = "D_DescA";
+    public static string D_Operate2 = "D_Operate2";
+    public static string D_Begin = "D_Begin";
+    public static string D_BeginLab = "D_BeginLab";
+    public static string D_BeginArrow0 = "D_BeginArrow0";
+    public static string D_BeginArrow1 = "D_BeginArrow1";
+    public static string D_PrepareLayout2 = "D_PrepareLayout2";
+    public static string D_Status2 = "D_Status2";
+    public static string D_Timer = "D_Timer";
+    public static string D_TimerLab = "D_TimerLab";
+    public static string D_TimerIcon = "D_TimerIcon";
+    public static string D_Grid = "D_Grid";
+    public static string D_ScoreLab = "D_ScoreLab";
+    public static string D_StatusLab = "D_StatusLab";
+    public static string D_DescB = "D_DescB";
+    public static string D_FlowerBtn1 = "D_FlowerBtn1";
+    public static string D_FlowerIcon1 = "D_FlowerIcon1";
+    public static string D_FlowerArrow1 = "D_FlowerArrow1";
+    public static string D_FlowerTick1 = "D_FlowerTick1";
+    public static string D_FlowerBtn2 = "D_FlowerBtn2";
+    public static string D_FlowerIcon2 = "D_FlowerIcon2";
+    public static string D_FlowerArrow2 = "D_FlowerArrow2";
+    public static string D_FlowerTick2 = "D_FlowerTick2";
+    public static string D_FlowerBtn3 = "D_FlowerBtn3";
+    public static string D_FlowerIcon3 = "D_FlowerIcon3";
+    public static string D_FlowerArrow3 = "D_FlowerArrow3";
+    public static string D_FlowerTick3 = "D_FlowerTick3";
+    public static string D_FlowerBtn4 = "D_FlowerBtn4";
+    public static string D_FlowerIcon4 = "D_FlowerIcon4";
+    public static string D_FlowerArrow4 = "D_FlowerArrow4";
+    public static string D_FlowerTick4 = "D_FlowerTick4";
+    public static string D_FlowerBtn5 = "D_FlowerBtn5";
+    public static string D_FlowerIcon5 = "D_FlowerIcon5";
+    public static string D_FlowerArrow5 = "D_FlowerArrow5";
+    public static string D_FlowerTick5 = "D_FlowerTick5";
+    public static string D_FlowerBtn6 = "D_FlowerBtn6";
+    public static string D_FlowerIcon6 = "D_FlowerIcon6";
+    public static string D_FlowerArrow6 = "D_FlowerArrow6";
+    public static string D_FlowerTick6 = "D_FlowerTick6";
+    public static string D_Mask = "D_Mask";
+    public static string D_Operate3 = "D_Operate3";
+    public static string D_PrepareLayout3 = "D_PrepareLayout3";
+    public static string D_Status3 = "D_Status3";
+    public static string D_FlowerBtn7 = "D_FlowerBtn7";
+    public static string D_FlowerIcon7 = "D_FlowerIcon7";
+    public static string D_FlowerArrow7 = "D_FlowerArrow7";
+    public static string D_FlowerBtn8 = "D_FlowerBtn8";
+    public static string D_FlowerIcon8 = "D_FlowerIcon8";
+    public static string D_FlowerArrow8 = "D_FlowerArrow8";
+    public static string D_FlowerBtn9 = "D_FlowerBtn9";
+    public static string D_FlowerIcon9 = "D_FlowerIcon9";
+    public static string D_FlowerArrow9 = "D_FlowerArrow9";
+    public static string D_DescC = "D_DescC";
+    public static string D_FindMissingGamePanel = "D_FindMissingGamePanel";
+    public static string D_FindMissingGamePrepareLayout = "D_FindMissingGamePrepareLayout";
+    public static string D_FindMissingGameStatus = "D_FindMissingGameStatus";
+    public static string D_FindMissingGameButton0 = "D_FindMissingGameButton0";
+    public static string D_FindMissingGameIcon0 = "D_FindMissingGameIcon0";
+    public static string D_FindMissingGameArrow0 = "D_FindMissingGameArrow0";
+    public static string D_FindMissingGameButton2 = "D_FindMissingGameButton2";
+    public static string D_FindMissingGameIcon2 = "D_FindMissingGameIcon2";
+    public static string D_FindMissingGameArrow2 = "D_FindMissingGameArrow2";
+    public static string D_FindMissingGameButton1 = "D_FindMissingGameButton1";
+    public static string D_FindMissingGameIcon1 = "D_FindMissingGameIcon1";
+    public static string D_FindMissingGameArrow1 = "D_FindMissingGameArrow1";
+    public static string D_FindMissingGameDesc = "D_FindMissingGameDesc";
+    public static string D_FindMissingGameMask = "D_FindMissingGameMask";
+    public static string Da_Info = "Da_Info";
+    public static string Da_Info0 = "Da_Info0";
+    public static string Da_Tit = "Da_Tit";
+    public static string Da_Lab = "Da_Lab";
+    public static string Da_Quit = "Da_Quit";
+    public static string Da_QuitLab = "Da_QuitLab";
+    public static string Da_Cancel = "Da_Cancel";
+    public static string Da_CancelLab = "Da_CancelLab";
+    public static string Da_HGroup1 = "Da_HGroup1";
+    public static string Da_Star1 = "Da_Star1";
+    public static string Da_Star2 = "Da_Star2";
+    public static string Da_Star3 = "Da_Star3";
+    public static string Da_VGroup = "Da_VGroup";
+    public static string Da_Award = "Da_Award";
+    public static string Da_CoinGroup = "Da_CoinGroup";
+    public static string Da_Coin = "Da_Coin";
+    public static string Da_CoinLab = "Da_CoinLab";
+    public static string Da_DiamondGroup = "Da_DiamondGroup";
+    public static string Da_Diamond = "Da_Diamond";
+    public static string Da_DiamondLab = "Da_DiamondLab";
+    public static string Da_FlowerGroup = "Da_FlowerGroup";
+    public static string Da_Flower = "Da_Flower";
+    public static string Da_FlowerIcon = "Da_FlowerIcon";
+    public static string Da_FlowerLab = "Da_FlowerLab";
+    public static string Da_ScoreTit = "Da_ScoreTit";
+    public static string Da_ScoreLab = "Da_ScoreLab";
+    public static string Da_GetAward = "Da_GetAward";
+    public static string Da_Arrow0 = "Da_Arrow0";
+    public static string Da_Arrow1 = "Da_Arrow1";
+    public static string Da_GetAwardLab = "Da_GetAwardLab";
+    public static string G_Flower = "G_Flower";
+    public static string G_Flower0 = "G_Flower0";
+    public static string G_Close = "G_Close";
+    public static string G_Arrow0 = "G_Arrow0";
+    public static string G_Retrieve = "G_Retrieve";
+    public static string G_Tab = "G_Tab";
+    public static string G_Special = "G_Special";
+    public static string G_SpecialLab = "G_SpecialLab";
+    public static string G_Regular = "G_Regular";
+    public static string G_PosTraL = "G_PosTraL";
+    public static string G_PosTraR = "G_PosTraR";
+    public static string G_Scrr = "G_Scrr";
+    public static string G_SpecialScrr = "G_SpecialScrr";
+    public static string G_SpecialGrid = "G_SpecialGrid";
+    public static string G_RegularScrr = "G_RegularScrr";
+    public static string G_RegularGrid = "G_RegularGrid";
+    public static string G_Collect = "G_Collect";
+    public static string G_RetrieveLab = "G_RetrieveLab";
+    public static string G_Tit = "G_Tit";
+    public static string G_RegularLab = "G_RegularLab";
+    public static string G_CollectLab1 = "G_CollectLab1";
+    public static string G_CollectLab2 = "G_CollectLab2";
+    public static string H_FlowerCard = "H_FlowerCard";
+    public static string H_FlowerCard0 = "H_FlowerCard0";
+    public static string H_Lab = "H_Lab";
+    public static string H_Desc = "H_Desc";
+    public static string H_AmtLab = "H_AmtLab";
+    public static string H_Rotate = "H_Rotate";
+    public static string H_Icon1 = "H_Icon1";
+    public static string H_UIFlashLight = "H_UIFlashLight";
+    public static string H_UIFlash = "H_UIFlash";
+    public static string H_UIFlash2 = "H_UIFlash2";
+    public static string H_UIParticleSystem = "H_UIParticleSystem";
+    public static string H_Icon2 = "H_Icon2";
+    public static string H_ArrowPos = "H_ArrowPos";
+    public static string H_ArrowParent = "H_ArrowParent";
+    public static string H_Arrow = "H_Arrow";
+    public static string H_Close = "H_Close";
+    public static string H_HGroup = "H_HGroup";
+    public static string H_Btn = "H_Btn";
+    public static string H_BtnLab = "H_BtnLab";
+    public static string H_BtnImagePlus = "H_BtnImagePlus";
+    public static string H_Btn1 = "H_Btn1";
+    public static string H_BtnLab1 = "H_BtnLab1";
+    public static string H_BtnImagePlus1 = "H_BtnImagePlus1";
+    public static string M_Achieve = "M_Achieve";
+    public static string M_Achieve0 = "M_Achieve0";
+    public static string M_Close = "M_Close";
+    public static string M_CloseExtent = "M_CloseExtent";
+    public static string M_Tit = "M_Tit";
+    public static string M_Scrr = "M_Scrr";
+    public static string M_Grid = "M_Grid";
+    public static string M_PosTra = "M_PosTra";
+    public static string P_DressRoom = "P_DressRoom";
+    public static string P_ChangeDressPanel = "P_ChangeDressPanel";
+    public static string P_ShareParent = "P_ShareParent";
+    public static string P_Share = "P_Share";
+    public static string P_ScreenShotRect = "P_ScreenShotRect";
+    public static string P_Group = "P_Group";
+    public static string P_HorizontalGroup = "P_HorizontalGroup";
+    public static string P_FashionShowButton = "P_FashionShowButton";
+    public static string P_Reset = "P_Reset";
+    public static string P_Save = "P_Save";
+    public static string P_Return = "P_Return";
+    public static string P_Tutorial = "P_Tutorial";
+    public static string P_TutorialBg = "P_TutorialBg";
+    public static string P_CloseTipBK = "P_CloseTipBK";
+    public static string P_CloseTip = "P_CloseTip";
+    public static string P_CreateTipBK = "P_CreateTipBK";
+    public static string P_CreateTip = "P_CreateTip";
+    public static string P_CloseArrow0 = "P_CloseArrow0";
+    public static string P_CloseArrow1 = "P_CloseArrow1";
+    public static string P_SidePanel = "P_SidePanel";
+    public static string P_Close = "P_Close";
+    public static string P_Open = "P_Open";
+    public static string P_Data = "P_Data";
+    public static string P_CoinLab = "P_CoinLab";
+    public static string P_DiamondLab = "P_DiamondLab";
+    public static string P_TabBtn = "P_TabBtn";
+    public static string P_Top = "P_Top";
+    public static string P_TopIcon = "P_TopIcon";
+    public static string P_TopLab = "P_TopLab";
+    public static string P_Dress = "P_Dress";
+    public static string P_DressIcon = "P_DressIcon";
+    public static string P_DressLab = "P_DressLab";
+    public static string P_Shoe = "P_Shoe";
+    public static string P_ShoeIcon = "P_ShoeIcon";
+    public static string P_ShoeLab = "P_ShoeLab";
+    public static string P_Decarator = "P_Decarator";
+    public static string P_DecaratorIcon = "P_DecaratorIcon";
+    public static string P_DecaratorLab = "P_DecaratorLab";
+    public static string P_Wing = "P_Wing";
+    public static string P_WingIcon = "P_WingIcon";
+    public static string P_WingLab = "P_WingLab";
+    public static string P_Hair = "P_Hair";
+    public static string P_HairIcon = "P_HairIcon";
+    public static string P_HairLab = "P_HairLab";
+    public static string P_Pos = "P_Pos";
+    public static string P_Tab = "P_Tab";
+    public static string Pa_HairTab = "Pa_HairTab";
+    public static string Pa_HairGrid = "Pa_HairGrid";
+    public static string Pb_TopTab = "Pb_TopTab";
+    public static string Pb_TopGrid = "Pb_TopGrid";
+    public static string Pc_DressTab = "Pc_DressTab";
+    public static string Pc_DressGrid = "Pc_DressGrid";
+    public static string Pd_DecaratorTab = "Pd_DecaratorTab";
+    public static string Pd_DecaratorGrid = "Pd_DecaratorGrid";
+    public static string Pe_WingTab = "Pe_WingTab";
+    public static string Pe_WingGrid = "Pe_WingGrid";
+    public static string Pf_ShoeTab = "Pf_ShoeTab";
+    public static string Pf_ShoeGrid = "Pf_ShoeGrid";
+    public static string P_CancelShare = "P_CancelShare";
+    public static string P_CloseTipBtn = "P_CloseTipBtn";
+    public static string AL_ChangeMousePanel = "AL_ChangeMousePanel";
+    public static string AL_Bg = "AL_Bg";
+    public static string AL_Close = "AL_Close";
+    public static string AL_CloseLab = "AL_CloseLab";
+    public static string AL_Tit = "AL_Tit";
+    public static string AL_Buttons = "AL_Buttons";
+    public static string AL_Reset = "AL_Reset";
+    public static string AL_Save = "AL_Save";
+    public static string AL_Shadow = "AL_Shadow";
+    public static string AL_CostLab = "AL_CostLab";
+    public static string AL_CostLabImagePlus = "AL_CostLabImagePlus";
+    public static string AL_PlayerPos = "AL_PlayerPos";
+    public static string AL_Dress = "AL_Dress";
+    public static string AL_ScrollMouse = "AL_ScrollMouse";
+    public static string AL_MouseTab = "AL_MouseTab";
+    public static string AL_ScrollEye = "AL_ScrollEye";
+    public static string AL_EyeTab = "AL_EyeTab";
+    public static string AL_TabBtn = "AL_TabBtn";
+    public static string AL_HairBtn = "AL_HairBtn";
+    public static string AL_HairIcon = "AL_HairIcon";
+    public static string AL_HairLab = "AL_HairLab";
+    public static string AL_DressBtn = "AL_DressBtn";
+    public static string AL_DressIcon = "AL_DressIcon";
+    public static string AL_DressLab = "AL_DressLab";
+    public static string AM_Bubble = "AM_Bubble";
+    public static string AM_Bubble0 = "AM_Bubble0";
+    public static string AM_Title = "AM_Title";
+    public static string AM_Gold = "AM_Gold";
+    public static string AM_CoinLab = "AM_CoinLab";
+    public static string AM_Diamond = "AM_Diamond";
+    public static string AM_DiamondLab = "AM_DiamondLab";
+    public static string AM_HGroup = "AM_HGroup";
+    public static string AM_Confirm = "AM_Confirm";
+    public static string AM_ConfirmLab = "AM_ConfirmLab";
+    public static string AM_Cancel = "AM_Cancel";
+    public static string AM_CancelLab = "AM_CancelLab";
+    public static string Pi_FashionShowHomePanel = "Pi_FashionShowHomePanel";
+    public static string Pi_FashionShowHomePanelPosition = "Pi_FashionShowHomePanelPosition";
+    public static string Pi_FashionShowHomeSidePanel = "Pi_FashionShowHomeSidePanel";
+    public static string Pi_Tutorial = "Pi_Tutorial";
+    public static string Pi_TutorialBg = "Pi_TutorialBg";
+    public static string Pi_HomePageArrow0 = "Pi_HomePageArrow0";
+    public static string Pi_HomePageArrow1 = "Pi_HomePageArrow1";
+    public static string Pi_SidePanelBg = "Pi_SidePanelBg";
+    public static string Pi_Ribbon = "Pi_Ribbon";
+    public static string Pi_Return = "Pi_Return";
+    public static string Pi_TabButtons = "Pi_TabButtons";
+    public static string Pi_CuteTabButton = "Pi_CuteTabButton";
+    public static string Pi_CuteTabBubble = "Pi_CuteTabBubble";
+    public static string Pi_CuteTabButtonText = "Pi_CuteTabButtonText";
+    public static string Pi_GraceTabButton = "Pi_GraceTabButton";
+    public static string Pi_GraceTabBubble = "Pi_GraceTabBubble";
+    public static string Pi_GraceTabButtonText = "Pi_GraceTabButtonText";
+    public static string Pi_VividTabButton = "Pi_VividTabButton";
+    public static string Pi_VividTabBubble = "Pi_VividTabBubble";
+    public static string Pi_VividTabButtonText = "Pi_VividTabButtonText";
+    public static string Pi_SimpleTabButton = "Pi_SimpleTabButton";
+    public static string Pi_SimpleTabBubble = "Pi_SimpleTabBubble";
+    public static string Pi_SimpleTabButtonText = "Pi_SimpleTabButtonText";
+    public static string Pi_GloryTabButton = "Pi_GloryTabButton";
+    public static string Pi_GloryTabBubble = "Pi_GloryTabBubble";
+    public static string Pi_GloryTabButtonText = "Pi_GloryTabButtonText";
+    public static string Pi_MineTabButton = "Pi_MineTabButton";
+    public static string Pi_MineTabButtonArrow = "Pi_MineTabButtonArrow";
+    public static string Pi_MineTabBubble = "Pi_MineTabBubble";
+    public static string Pi_MineTabButtonText = "Pi_MineTabButtonText";
+    public static string Pi_HomeTabButton = "Pi_HomeTabButton";
+    public static string Pi_HomeTabBubble = "Pi_HomeTabBubble";
+    public static string Pi_HomeTabButtonText = "Pi_HomeTabButtonText";
+    public static string Pi_RecommendTitle = "Pi_RecommendTitle";
+    public static string Pi_HomeTab = "Pi_HomeTab";
+    public static string Pi_HomeScrollRect = "Pi_HomeScrollRect";
+    public static string Ph_HomeGrid = "Ph_HomeGrid";
+    public static string Pi_CuteTab = "Pi_CuteTab";
+    public static string Pi_CuteScrollRect = "Pi_CuteScrollRect";
+    public static string Ph_CuteGrid = "Ph_CuteGrid";
+    public static string Pi_GraceTab = "Pi_GraceTab";
+    public static string Pi_GraceScrollRect = "Pi_GraceScrollRect";
+    public static string Ph_GraceGrid = "Ph_GraceGrid";
+    public static string Pi_VividTab = "Pi_VividTab";
+    public static string Pi_VividScrollRect = "Pi_VividScrollRect";
+    public static string Ph_VividGrid = "Ph_VividGrid";
+    public static string Pi_SimpleTab = "Pi_SimpleTab";
+    public static string Pi_SimpleScrollRect = "Pi_SimpleScrollRect";
+    public static string Ph_SimpleGrid = "Ph_SimpleGrid";
+    public static string Pi_GloryTab = "Pi_GloryTab";
+    public static string Pi_GloryScrollRect = "Pi_GloryScrollRect";
+    public static string Ph_GloryGrid = "Ph_GloryGrid";
+    public static string Pi_MineTab = "Pi_MineTab";
+    public static string Pi_MineScrollRect = "Pi_MineScrollRect";
+    public static string Ph_MineGrid = "Ph_MineGrid";
+    public static string Pi_ShareArrow = "Pi_ShareArrow";
+    public static string Pi_ShareBg = "Pi_ShareBg";
+    public static string Pi_Share = "Pi_Share";
+    public static string Pi_HomePageTipBtn = "Pi_HomePageTipBtn";
+    public static string Pi_HomePageTipBK = "Pi_HomePageTipBK";
+    public static string Pi_HomePageTip = "Pi_HomePageTip";
+    public static string Pi_LeaveTipBK = "Pi_LeaveTipBK";
+    public static string Pi_LeaveTip = "Pi_LeaveTip";
+    public static string Pg_FashionShowEditPanel = "Pg_FashionShowEditPanel";
+    public static string Pg_FashionShowEditPanelPosition = "Pg_FashionShowEditPanelPosition";
+    public static string Pg_Ribbon = "Pg_Ribbon";
+    public static string Pg_Return = "Pg_Return";
+    public static string Pg_CurrentData = "Pg_CurrentData";
+    public static string Pg_CoinText = "Pg_CoinText";
+    public static string Pg_DiamondText = "Pg_DiamondText";
+    public static string Pg_RecommendTitle = "Pg_RecommendTitle";
+    public static string Pg_DisplayBackground = "Pg_DisplayBackground";
+    public static string Image = "Image";
+    public static string Pg_DisplayEditButton = "Pg_DisplayEditButton";
+    public static string Pg_HorizontalGroup = "Pg_HorizontalGroup";
+    public static string Pg_DeleteButton = "Pg_DeleteButton";
+    public static string Pg_ResetButton = "Pg_ResetButton";
+    public static string Pg_SaveButton = "Pg_SaveButton";
+    public static string Pg_PraiseButton = "Pg_PraiseButton";
+    public static string Pg_PraiseText = "Pg_PraiseText";
+    public static string Pg_CommentButton = "Pg_CommentButton";
+    public static string Pg_ShareButton = "Pg_ShareButton";
+    public static string Pg_FashionTitleBackground = "Pg_FashionTitleBackground";
+    public static string Pg_FashionTitleParent = "Pg_FashionTitleParent";
+    public static string Pg_FashionTitle = "Pg_FashionTitle";
+    public static string Pg_FashionTitlePlaceHolder = "Pg_FashionTitlePlaceHolder";
+    public static string Pg_FashionTitleEditButton = "Pg_FashionTitleEditButton";
+    public static string Pg_Content = "Pg_Content";
+    public static string Pg_FashionContentBackground = "Pg_FashionContentBackground";
+    public static string Pg_FashionContentParent = "Pg_FashionContentParent";
+    public static string Pg_FashionContent = "Pg_FashionContent";
+    public static string Pg_FashionContentPlaceHolder = "Pg_FashionContentPlaceHolder";
+    public static string Pg_FashionContentEditButton = "Pg_FashionContentEditButton";
+    public static string Pg_SliderBackground = "Pg_SliderBackground";
+    public static string Pg_VerticalSliderGroup = "Pg_VerticalSliderGroup";
+    public static string Pg_CuteSlider = "Pg_CuteSlider";
+    public static string Pg_CuteTitle = "Pg_CuteTitle";
+    public static string Pg_CuteValue = "Pg_CuteValue";
+    public static string Pg_CuteBackground = "Pg_CuteBackground";
+    public static string Pg_CuteFillArea = "Pg_CuteFillArea";
+    public static string Pg_CuteFill = "Pg_CuteFill";
+    public static string Pg_CuteHandleSlideArea = "Pg_CuteHandleSlideArea";
+    public static string Pg_CuteHandle = "Pg_CuteHandle";
+    public static string Pg_CuteRateBackground = "Pg_CuteRateBackground";
+    public static string Pg_CuteRateText = "Pg_CuteRateText";
+    public static string Pg_GraceSlider = "Pg_GraceSlider";
+    public static string Pg_GraceTitle = "Pg_GraceTitle";
+    public static string Pg_GraceValue = "Pg_GraceValue";
+    public static string Pg_GraceBackground = "Pg_GraceBackground";
+    public static string Pg_GraceFillArea = "Pg_GraceFillArea";
+    public static string Pg_GraceFill = "Pg_GraceFill";
+    public static string Pg_GraceHandleSlideArea = "Pg_GraceHandleSlideArea";
+    public static string Pg_GraceHandle = "Pg_GraceHandle";
+    public static string Pg_GraceRateBackground = "Pg_GraceRateBackground";
+    public static string Pg_GraceRateText = "Pg_GraceRateText";
+    public static string Pg_VividSlider = "Pg_VividSlider";
+    public static string Pg_VividTitle = "Pg_VividTitle";
+    public static string Pg_VividValue = "Pg_VividValue";
+    public static string Pg_VividBackground = "Pg_VividBackground";
+    public static string Pg_VividFillArea = "Pg_VividFillArea";
+    public static string Pg_VividFill = "Pg_VividFill";
+    public static string Pg_VividHandleSlideArea = "Pg_VividHandleSlideArea";
+    public static string Pg_VividHandle = "Pg_VividHandle";
+    public static string Pg_VividRateBackground = "Pg_VividRateBackground";
+    public static string Pg_VividRateText = "Pg_VividRateText";
+    public static string Pg_SimpleSlider = "Pg_SimpleSlider";
+    public static string Pg_SimpleTitle = "Pg_SimpleTitle";
+    public static string Pg_SimpleValue = "Pg_SimpleValue";
+    public static string Pg_SimpleBackground = "Pg_SimpleBackground";
+    public static string Pg_SimpleFillArea = "Pg_SimpleFillArea";
+    public static string Pg_SimpleFill = "Pg_SimpleFill";
+    public static string Pg_SimpleHandleSlideArea = "Pg_SimpleHandleSlideArea";
+    public static string Pg_SimpleHandle = "Pg_SimpleHandle";
+    public static string Pg_SimpleRateBackground = "Pg_SimpleRateBackground";
+    public static string Pg_SimpleRateText = "Pg_SimpleRateText";
+    public static string Pg_GlorySlider = "Pg_GlorySlider";
+    public static string Pg_GloryTitle = "Pg_GloryTitle";
+    public static string Pg_GloryValue = "Pg_GloryValue";
+    public static string Pg_GloryBackground = "Pg_GloryBackground";
+    public static string Pg_GloryFillArea = "Pg_GloryFillArea";
+    public static string Pg_GloryFill = "Pg_GloryFill";
+    public static string Pg_GloryHandleSlideArea = "Pg_GloryHandleSlideArea";
+    public static string Pg_GloryHandle = "Pg_GloryHandle";
+    public static string Pg_GloryRateBackground = "Pg_GloryRateBackground";
+    public static string Pg_GloryRateText = "Pg_GloryRateText";
+    public static string Pg_SubmitRateButton = "Pg_SubmitRateButton";
+    public static string Pg_ResetRateButton = "Pg_ResetRateButton";
+    public static string Pg_RateButton = "Pg_RateButton";
+    public static string Pg_Frame = "Pg_Frame";
+    public static string Pg_FashionShowClosesTitle = "Pg_FashionShowClosesTitle";
+    public static string Pg_FashionShowCloseScrollRect = "Pg_FashionShowCloseScrollRect";
+    public static string Pg_FashionShowCloseGrid = "Pg_FashionShowCloseGrid";
+    public static string Pg_CloseTotalCoinImage = "Pg_CloseTotalCoinImage";
+    public static string Pg_CloseTotalCoinText = "Pg_CloseTotalCoinText";
+    public static string Pg_CloseTotalDiamondImage = "Pg_CloseTotalDiamondImage";
+    public static string Pg_CloseTotalDiamondText = "Pg_CloseTotalDiamondText";
+    public static string Pg_BuyAllButton = "Pg_BuyAllButton";
+    public static string Pg_BuyAllButtonText = "Pg_BuyAllButtonText";
+    public static string Ph_CommentMask = "Ph_CommentMask";
+    public static string Ph_CommentPanel = "Ph_CommentPanel";
+    public static string Ph_Frame = "Ph_Frame";
+    public static string Ph_NicknameTitle = "Ph_NicknameTitle";
+    public static string Ph_ContentTitle = "Ph_ContentTitle";
+    public static string Ph_Title = "Ph_Title";
+    public static string Ph_CloseButton = "Ph_CloseButton";
+    public static string Ph_CloseButtonText = "Ph_CloseButtonText";
+    public static string Ph_ScrollRect = "Ph_ScrollRect";
+    public static string Ph_Grid = "Ph_Grid";
+    public static string Ph_InputFieldBK = "Ph_InputFieldBK";
+    public static string Ph_SendCommentButton = "Ph_SendCommentButton";
+    public static string Ph_SendCommentButtonText = "Ph_SendCommentButtonText";
+    public static string Ph_InputField = "Ph_InputField";
+    public static string Ph_Placeholder = "Ph_Placeholder";
+    public static string Ph_PlaceholderText = "Ph_PlaceholderText";
+    public static string Ph_Tip = "Ph_Tip";
+    public static string Pa_Info = "Pa_Info";
+    public static string Pa_Info0 = "Pa_Info0";
+    public static string Pa_Tit = "Pa_Tit";
+    public static string Pa_Icon0 = "Pa_Icon0";
+    public static string Pa_Icon1 = "Pa_Icon1";
+    public static string Pa_Icon2 = "Pa_Icon2";
+    public static string Pa_Icon3 = "Pa_Icon3";
+    public static string Pa_Lab = "Pa_Lab";
+    public static string Pa_Desc = "Pa_Desc";
+    public static string Pa_Btn = "Pa_Btn";
+    public static string Pa_BtnLab = "Pa_BtnLab";
+    public static string Pa_ImagePlus = "Pa_ImagePlus";
+    public static string Pa_Close = "Pa_Close";
+    public static string R_Notify0 = "R_Notify0";
+    public static string R_Notify = "R_Notify";
+    public static string R_NotifyBK = "R_NotifyBK";
+    public static string R_Close = "R_Close";
+    public static string R_CloseLab = "R_CloseLab";
+    public static string R_NotifyTit = "R_NotifyTit";
+    public static string R_ScrollRect = "R_ScrollRect";
+    public static string R_Grid = "R_Grid";
+    public static string Q_Comment = "Q_Comment";
+    public static string Q_CommentBK = "Q_CommentBK";
+    public static string Q_CommentPanel = "Q_CommentPanel";
+    public static string Q_Frame = "Q_Frame";
+    public static string Q_NicknameTitle = "Q_NicknameTitle";
+    public static string Q_ContentTitle = "Q_ContentTitle";
+    public static string Q_FriendFilterButton = "Q_FriendFilterButton";
+    public static string Q_FriendFilterIcon = "Q_FriendFilterIcon";
+    public static string Q_FriendFilterTitle = "Q_FriendFilterTitle";
+    public static string Q_Tit = "Q_Tit";
+    public static string Q_Close = "Q_Close";
+    public static string Q_CloseLab = "Q_CloseLab";
+    public static string Q_ScrollRect = "Q_ScrollRect";
+    public static string Q_Grid = "Q_Grid";
+    public static string Q_InputBK = "Q_InputBK";
+    public static string Q_CommentBtn = "Q_CommentBtn";
+    public static string Q_CommentLab = "Q_CommentLab";
+    public static string Q_InputField = "Q_InputField";
+    public static string Q_Placeholder = "Q_Placeholder";
+    public static string Q_Lab = "Q_Lab";
+    public static string Q_Tip = "Q_Tip";
+    public static string S_Rank = "S_Rank";
+    public static string S_RankBK = "S_RankBK";
+    public static string S_RankPanel = "S_RankPanel";
+    public static string S_Close = "S_Close";
+    public static string S_CloseLab = "S_CloseLab";
+    public static string S_ScrollRect = "S_ScrollRect";
+    public static string S_Grid = "S_Grid";
+    public static string S_Tit = "S_Tit";
+    public static string Z_PlazaRoomList = "Z_PlazaRoomList";
+    public static string Z_BK = "Z_BK";
+    public static string Z_Panel = "Z_Panel";
+    public static string Z_Create = "Z_Create";
+    public static string Z_CreateLab = "Z_CreateLab";
+    public static string Z_Close = "Z_Close";
+    public static string Z_CloseLab = "Z_CloseLab";
+    public static string Z_ScrollRect = "Z_ScrollRect";
+    public static string Z_Frame = "Z_Frame";
+    public static string Z_Grid = "Z_Grid";
+    public static string Z_Tit = "Z_Tit";
+    public static string Z_Info = "Z_Info";
+    public static string Z_Info0 = "Z_Info0";
+    public static string Z_InfoLab0 = "Z_InfoLab0";
+    public static string Z_Info1 = "Z_Info1";
+    public static string Z_InfoLab1 = "Z_InfoLab1";
+    public static string Z_Info2 = "Z_Info2";
+    public static string Z_InfoLab2 = "Z_InfoLab2";
+    public static string Z_Info3 = "Z_Info3";
+    public static string Z_InfoLab3 = "Z_InfoLab3";
+    public static string Z_Info4 = "Z_Info4";
+    public static string Z_InfoLab4 = "Z_InfoLab4";
+    public static string Z_Info5 = "Z_Info5";
+    public static string Z_InfoImg50 = "Z_InfoImg50";
+    public static string Z_InfoImg51 = "Z_InfoImg51";
+    public static string Z_InfoLab5 = "Z_InfoLab5";
+    public static string Z_Tip = "Z_Tip";
+    public static string AA_CreatePlazaRoom = "AA_CreatePlazaRoom";
+    public static string AA_Panel = "AA_Panel";
+    public static string AA_Lab = "AA_Lab";
+    public static string AA_InputField = "AA_InputField";
+    public static string AA_InputFieldLab = "AA_InputFieldLab";
+    public static string AA_Close = "AA_Close";
+    public static string AA_Desc = "AA_Desc";
+    public static string AA_DestImagePlus = "AA_DestImagePlus";
+    public static string AA_Btn = "AA_Btn";
+    public static string AA_BtnLab = "AA_BtnLab";
+    public static string AAa_Slider = "AAa_Slider";
+    public static string AAa_Tit = "AAa_Tit";
+    public static string AAa_ValueLab = "AAa_ValueLab";
+    public static string AAa_Background = "AAa_Background";
+    public static string AAa_FillArea = "AAa_FillArea";
+    public static string AAa_Fill = "AAa_Fill";
+    public static string AAa_HandleSlideArea = "AAa_HandleSlideArea";
+    public static string AAa_Handle = "AAa_Handle";
+    public static string AAb_Slider = "AAb_Slider";
+    public static string AAb_Tit = "AAb_Tit";
+    public static string AAb_ValueLab = "AAb_ValueLab";
+    public static string AAb_Background = "AAb_Background";
+    public static string AAb_FillArea = "AAb_FillArea";
+    public static string AAb_Fill = "AAb_Fill";
+    public static string AAb_HandleSlideArea = "AAb_HandleSlideArea";
+    public static string AAb_Handle = "AAb_Handle";
+    public static string AA_Tip = "AA_Tip";
+    public static string W_HudParent = "W_HudParent";
+    public static string I_BlackMask = "I_BlackMask";
+    public static string I_Lab = "I_Lab";
+    public static string X_PlazaRoom = "X_PlazaRoom";
+    public static string X_Coin = "X_Coin";
+    public static string X_CoinBK = "X_CoinBK";
+    public static string X_CoinText = "X_CoinText";
+    public static string X_Diamond = "X_Diamond";
+    public static string X_DiamondBK = "X_DiamondBK";
+    public static string X_DiamondText = "X_DiamondText";
+    public static string X_InfoParent = "X_InfoParent";
+    public static string X_InfoBK = "X_InfoBK";
+    public static string X_InfoMask = "X_InfoMask";
+    public static string X_Info = "X_Info";
+    public static string X_CloseInfo = "X_CloseInfo";
+    public static string X_CurrentInfo = "X_CurrentInfo";
+    public static string X_CurrentInfoLab = "X_CurrentInfoLab";
+    public static string X_CurrentInfoImagePlus = "X_CurrentInfoImagePlus";
+    public static string X_OpenInfo = "X_OpenInfo";
+    public static string X_Quit = "X_Quit";
+    public static string X_InputField = "X_InputField";
+    public static string X_InputFieldLab = "X_InputFieldLab";
+    public static string X_SendPublicMessage = "X_SendPublicMessage";
+    public static string X_Expression = "X_Expression";
+    public static string X_Mask = "X_Mask";
+    public static string X_GridBK = "X_GridBK";
+    public static string X_Grid = "X_Grid";
+    public static string X_HappyFace = "X_HappyFace";
+    public static string X_HopeFace = "X_HopeFace";
+    public static string X_SurpriseFace = "X_SurpriseFace";
+    public static string X_ChagrinFace = "X_ChagrinFace";
+    public static string X_BlueFace = "X_BlueFace";
+    public static string X_OgleFace = "X_OgleFace";
+    public static string X_SweatFace = "X_SweatFace";
+    public static string X_CryFace = "X_CryFace";
+    public static string X_CreateChest = "X_CreateChest";
+    public static string X_MemberButton = "X_MemberButton";
+    public static string X_MemberIcon = "X_MemberIcon";
+    public static string Y_Chest = "Y_Chest";
+    public static string Y_BK = "Y_BK";
+    public static string Y_Close = "Y_Close";
+    public static string Ya_GetAward = "Ya_GetAward";
+    public static string Ya_Btn = "Ya_Btn";
+    public static string Ya_BtnLab = "Ya_BtnLab";
+    public static string Ya_Rotate = "Ya_Rotate";
+    public static string Ya_Icon = "Ya_Icon";
+    public static string Ya_Desc = "Ya_Desc";
+    public static string Y_Guess = "Y_Guess";
+    public static string Y_RewardItem = "Y_RewardItem";
+    public static string Y_RewardIcon = "Y_RewardIcon";
+    public static string Y_RewardLab = "Y_RewardLab";
+    public static string Y_Btn = "Y_Btn";
+    public static string Y_BtnLab = "Y_BtnLab";
+    public static string Y_Desc = "Y_Desc";
+    public static string Y_Tit = "Y_Tit";
+    public static string Y_InputField = "Y_InputField";
+    public static string Y_InputFieldLab = "Y_InputFieldLab";
+    public static string Yb_CreateChest = "Yb_CreateChest";
+    public static string Yb_Tit = "Yb_Tit";
+    public static string Yb_Icon = "Yb_Icon";
+    public static string Yb_InputField = "Yb_InputField";
+    public static string Yb_InputFieldLab = "Yb_InputFieldLab";
+    public static string Yb_Slider = "Yb_Slider";
+    public static string Yb_SliderTit = "Yb_SliderTit";
+    public static string Yb_SliderValueLab = "Yb_SliderValueLab";
+    public static string Yb_Background = "Yb_Background";
+    public static string Yb_FillArea = "Yb_FillArea";
+    public static string Yb_Fill = "Yb_Fill";
+    public static string Yb_HandleSlideArea = "Yb_HandleSlideArea";
+    public static string Yb_Handle = "Yb_Handle";
+    public static string Yb_Desc = "Yb_Desc";
+    public static string Yb_CostLab = "Yb_CostLab";
+    public static string Yb_CostImagePlus = "Yb_CostImagePlus";
+    public static string Yb_Btn = "Yb_Btn";
+    public static string Yb_BtnLab = "Yb_BtnLab";
+    public static string Yb_Toggle0 = "Yb_Toggle0";
+    public static string Yb_ToggleIcon0 = "Yb_ToggleIcon0";
+    public static string Yb_ToggleLab0 = "Yb_ToggleLab0";
+    public static string Yb_Toggle1 = "Yb_Toggle1";
+    public static string Yb_ToggleIcon1 = "Yb_ToggleIcon1";
+    public static string Yb_ToggleLab1 = "Yb_ToggleLab1";
+    public static string Yb_Toggle2 = "Yb_Toggle2";
+    public static string Yb_ToggleIcon2 = "Yb_ToggleIcon2";
+    public static string Yb_ToggleLab2 = "Yb_ToggleLab2";
+    public static string Y_Tip = "Y_Tip";
+    public static string O_Toast = "O_Toast";
+    public static string O_Pos = "O_Pos";
+    public static string O_Lab = "O_Lab";
+    public static string V_BlackMask = "V_BlackMask";
+    public static string T_NickName = "T_NickName";
+    public static string T_NickNameBK = "T_NickNameBK";
+    public static string T_NickNameCard = "T_NickNameCard";
+    public static string T_CloseParent = "T_CloseParent";
+    public static string T_Close = "T_Close";
+    public static string T_Confirm = "T_Confirm";
+    public static string T_ConfirmLab = "T_ConfirmLab";
+    public static string T_Tit = "T_Tit";
+    public static string T_InputField = "T_InputField";
+    public static string T_InputLab = "T_InputLab";
+    public static string T_Random = "T_Random";
+    public static string T_CostTxt = "T_CostTxt";
+    public static string T_CostImagePlus = "T_CostImagePlus";
+    public static string AC_EnterMinigamePanelMask = "AC_EnterMinigamePanelMask";
+    public static string AC_EnterMinigamePanel = "AC_EnterMinigamePanel";
+    public static string AC_Title = "AC_Title";
+    public static string AC_CloseButton = "AC_CloseButton";
+    public static string AC_ConfirmButton = "AC_ConfirmButton";
+    public static string AC_ConfirmButtonTitle = "AC_ConfirmButtonTitle";
+    public static string AC_ChangeButton = "AC_ChangeButton";
+    public static string AC_ChangeButtonTitle = "AC_ChangeButtonTitle";
+    public static string AC_CostText = "AC_CostText";
+    public static string AC_CostTextImagePlus = "AC_CostTextImagePlus";
+    public static string AC_Mask = "AC_Mask";
+    public static string AC_ScrollPos0 = "AC_ScrollPos0";
+    public static string AC_ScrollPos1 = "AC_ScrollPos1";
+    public static string AC_ScrollPos2 = "AC_ScrollPos2";
+    public static string AC_GamaTypeText0 = "AC_GamaTypeText0";
+    public static string AC_GamaTypeText1 = "AC_GamaTypeText1";
+    public static string AE_PlazaroomMemberPanelParent = "AE_PlazaroomMemberPanelParent";
+    public static string AE_PlazaroomMemberPanelMask = "AE_PlazaroomMemberPanelMask";
+    public static string AE_PlazaroomMemberPanel = "AE_PlazaroomMemberPanel";
+    public static string AE_Frame = "AE_Frame";
+    public static string AE_NicknameTitle = "AE_NicknameTitle";
+    public static string AE_ContentTitle = "AE_ContentTitle";
+    public static string AE_FriendFilterButton = "AE_FriendFilterButton";
+    public static string AE_FriendFilterIcon = "AE_FriendFilterIcon";
+    public static string AE_FriendFilterTitle = "AE_FriendFilterTitle";
+    public static string AE_PanelTitle = "AE_PanelTitle";
+    public static string AE_CloseButton = "AE_CloseButton";
+    public static string AE_CloseButtonTitle = "AE_CloseButtonTitle";
+    public static string AE_ScrollRect = "AE_ScrollRect";
+    public static string AE_Grid = "AE_Grid";
+    public static string AE_FriendListButton = "AE_FriendListButton";
+    public static string AE_FriendListImage = "AE_FriendListImage";
+    public static string AD_CDMinigameMask = "AD_CDMinigameMask";
+    public static string AD_CDMinigamePanel = "AD_CDMinigamePanel";
+    public static string AD_Title = "AD_Title";
+    public static string AD_CoinToggle = "AD_CoinToggle";
+    public static string AD_CoinTick = "AD_CoinTick";
+    public static string AD_CoinCostText = "AD_CoinCostText";
+    public static string AD_CoinCostTextImagePlus = "AD_CoinCostTextImagePlus";
+    public static string AD_CoinDescription = "AD_CoinDescription";
+    public static string AD_DiamondToggle = "AD_DiamondToggle";
+    public static string AD_DiamondTick = "AD_DiamondTick";
+    public static string AD_DiamondDescription = "AD_DiamondDescription";
+    public static string AD_DiamondCostText = "AD_DiamondCostText";
+    public static string AD_DiamondCostTextImagePlus = "AD_DiamondCostTextImagePlus";
+    public static string AD_CloseButton = "AD_CloseButton";
+    public static string AD_ConfirmButton = "AD_ConfirmButton";
+    public static string AD_ConfirmButtonTitle = "AD_ConfirmButtonTitle";
+    public static string AF_FriendPanelParent = "AF_FriendPanelParent";
+    public static string AF_FriendPanelMask = "AF_FriendPanelMask";
+    public static string AF_FriendPanel = "AF_FriendPanel";
+    public static string AF_Frame = "AF_Frame";
+    public static string AF_NicknameTitle = "AF_NicknameTitle";
+    public static string AF_ContentTitle = "AF_ContentTitle";
+    public static string AF_NewMessageFlag = "AF_NewMessageFlag";
+    public static string AF_NewMessageFlagText = "AF_NewMessageFlagText";
+    public static string AF_ApplicantButton = "AF_ApplicantButton";
+    public static string AF_NewApplicantFlagImage = "AF_NewApplicantFlagImage";
+    public static string AF_ApplicantIcon = "AF_ApplicantIcon";
+    public static string AF_ApplicantTitle = "AF_ApplicantTitle";
+    public static string AF_PanelTitle = "AF_PanelTitle";
+    public static string AF_FriendScrollRect = "AF_FriendScrollRect";
+    public static string AF_FriendGrid = "AF_FriendGrid";
+    public static string AF_ApplicantScrollRect = "AF_ApplicantScrollRect";
+    public static string AF_ApplicantGrid = "AF_ApplicantGrid";
+    public static string AF_HorizontalGroup = "AF_HorizontalGroup";
+    public static string AF_AcceptAllButton = "AF_AcceptAllButton";
+    public static string AF_AcceptAllButtonTitle = "AF_AcceptAllButtonTitle";
+    public static string AF_AddFriendButton = "AF_AddFriendButton";
+    public static string AF_AddFriendTitle = "AF_AddFriendTitle";
+    public static string AF_CloseButton = "AF_CloseButton";
+    public static string AF_CloseButtonTitle = "AF_CloseButtonTitle";
+    public static string AF_FriendAmountText = "AF_FriendAmountText";
+    public static string AG_AddFriendPanelMask = "AG_AddFriendPanelMask";
+    public static string AG_AddFriendPanel = "AG_AddFriendPanel";
+    public static string AG_Title = "AG_Title";
+    public static string AG_InputField = "AG_InputField";
+    public static string AG_InputFieldText = "AG_InputFieldText";
+    public static string AG_SearchButton = "AG_SearchButton";
+    public static string AG_SearchButtonTitle = "AG_SearchButtonTitle";
+    public static string AG_TipText = "AG_TipText";
+    public static string AG_NicknameText = "AG_NicknameText";
+    public static string AG_ChangeButton = "AG_ChangeButton";
+    public static string AG_ChangeButtonUnderline = "AG_ChangeButtonUnderline";
+    public static string AG_CloseButton = "AG_CloseButton";
+    public static string AG_ApplyButton = "AG_ApplyButton";
+    public static string AG_ApplyButtonTitle = "AG_ApplyButtonTitle";
+    public static string AH_MessagePanelParent = "AH_MessagePanelParent";
+    public static string AH_MessagePanelMask = "AH_MessagePanelMask";
+    public static string AH_MessagePanel = "AH_MessagePanel";
+    public static string AH_Frame = "AH_Frame";
+    public static string AH_NicknameTitle = "AH_NicknameTitle";
+    public static string AH_ContentTitle = "AH_ContentTitle";
+    public static string AH_TimeTitle = "AH_TimeTitle";
+    public static string AH_PanelTitle = "AH_PanelTitle";
+    public static string AH_CloseButton = "AH_CloseButton";
+    public static string AH_CloseButtonTitle = "AH_CloseButtonTitle";
+    public static string AH_ScrollRect = "AH_ScrollRect";
+    public static string AH_Grid = "AH_Grid";
+    public static string AH_InputFieldParent = "AH_InputFieldParent";
+    public static string AH_InputField = "AH_InputField";
+    public static string AH_PlaceholderTitle = "AH_PlaceholderTitle";
+    public static string AH_InputText = "AH_InputText";
+    public static string AH_SendMessageButton = "AH_SendMessageButton";
+    public static string AH_SendMessageButtonTitle = "AH_SendMessageButtonTitle";
+    public static string AH_LoadingTitle = "AH_LoadingTitle";
+    public static string B_SignIn0 = "B_SignIn0";
+    public static string B_SignIn = "B_SignIn";
+    public static string Bb_SignIn = "Bb_SignIn";
+    public static string Bb_Get = "Bb_Get";
+    public static string Bb_GetLab = "Bb_GetLab";
+    public static string Bb_Title = "Bb_Title";
+    public static string Bb_Grid = "Bb_Grid";
+    public static string Bb_Rotate = "Bb_Rotate";
+    public static string Bb_Info = "Bb_Info";
+    public static string Bb_IconB = "Bb_IconB";
+    public static string Bb_InfoLabB = "Bb_InfoLabB";
+    public static string Bb_IconA = "Bb_IconA";
+    public static string Bb_IconA0 = "Bb_IconA0";
+    public static string Bb_InfoLabA = "Bb_InfoLabA";
+    public static string Bb_Confirm = "Bb_Confirm";
+    public static string Bb_ConfirmLab = "Bb_ConfirmLab";
+    public static string Ba_Notice0 = "Ba_Notice0";
+    public static string Ba_Notice = "Ba_Notice";
+    public static string Ba_Confirm = "Ba_Confirm";
+    public static string Ba_ConfirmLab = "Ba_ConfirmLab";
+    public static string Ba_Lab = "Ba_Lab";
+    public static string Ba_Lab2 = "Ba_Lab2";
+    public static string Ba_Group = "Ba_Group";
+    public static string Ba_Icon = "Ba_Icon";
+    public static string Ba_IconLab = "Ba_IconLab";
+    public static string Bc_Lottery = "Bc_Lottery";
+    public static string Bc_LotteryItem1 = "Bc_LotteryItem1";
+    public static string Bc_LotteryBK11 = "Bc_LotteryBK11";
+    public static string Bc_LotteryBK12 = "Bc_LotteryBK12";
+    public static string Bc_LotteryBtn1 = "Bc_LotteryBtn1";
+    public static string Bc_LotteryIcon11 = "Bc_LotteryIcon11";
+    public static string Bc_LotteryIcon12 = "Bc_LotteryIcon12";
+    public static string Bc_LotteryIcon13 = "Bc_LotteryIcon13";
+    public static string Bc_LotteryLab1 = "Bc_LotteryLab1";
+    public static string Bc_LotteryBack1 = "Bc_LotteryBack1";
+    public static string Bc_LotteryItem2 = "Bc_LotteryItem2";
+    public static string Bc_LotteryBK21 = "Bc_LotteryBK21";
+    public static string Bc_LotteryBK22 = "Bc_LotteryBK22";
+    public static string Bc_LotteryBtn2 = "Bc_LotteryBtn2";
+    public static string Bc_LotteryIcon21 = "Bc_LotteryIcon21";
+    public static string Bc_LotteryIcon22 = "Bc_LotteryIcon22";
+    public static string Bc_LotteryIcon23 = "Bc_LotteryIcon23";
+    public static string Bc_LotteryLab2 = "Bc_LotteryLab2";
+    public static string Bc_LotteryBack2 = "Bc_LotteryBack2";
+    public static string Bc_LotteryItem3 = "Bc_LotteryItem3";
+    public static string Bc_LotteryBK31 = "Bc_LotteryBK31";
+    public static string Bc_LotteryBK32 = "Bc_LotteryBK32";
+    public static string Bc_LotteryBtn3 = "Bc_LotteryBtn3";
+    public static string Bc_LotteryIcon31 = "Bc_LotteryIcon31";
+    public static string Bc_LotteryIcon32 = "Bc_LotteryIcon32";
+    public static string Bc_LotteryIcon33 = "Bc_LotteryIcon33";
+    public static string Bc_LotteryLab3 = "Bc_LotteryLab3";
+    public static string Bc_LotteryBack3 = "Bc_LotteryBack3";
+    public static string Bc_Lab = "Bc_Lab";
+    public static string Bc_Confirm = "Bc_Confirm";
+    public static string Bc_ConfirmLab = "Bc_ConfirmLab";
+    public static string Bd_Mail = "Bd_Mail";
+    public static string Bd_Mail0 = "Bd_Mail0";
+    public static string Bd_Text = "Bd_Text";
+    public static string Bd_Get = "Bd_Get";
+    public static string Bd_GetLab = "Bd_GetLab";
+    public static string Bd_Title = "Bd_Title";
+    public static string Bd_ScrollRect = "Bd_ScrollRect";
+    public static string Bd_Grid = "Bd_Grid";
+    public static string N_Tutorial = "N_Tutorial";
+    public static string N_Mask = "N_Mask";
+    public static string N_Arrow = "N_Arrow";
+    public static string N_ArrowIcon = "N_ArrowIcon";
+    public static string N_LabBK = "N_LabBK";
+    public static string N_Lab = "N_Lab";
+    public static string N_Button = "N_Button";
+    public static string N_Confirm = "N_Confirm";
+    public static string N_ConfirmLab = "N_ConfirmLab";
+    public static string N_FormerPlayerButton = "N_FormerPlayerButton";
+    public static string N_FormerPlayerButtonText = "N_FormerPlayerButtonText";
+    public static string AB_RechargeGiftPanel = "AB_RechargeGiftPanel";
+    public static string AB_PanelBK = "AB_PanelBK";
+    public static string AB_Confirm = "AB_Confirm";
+    public static string AB_ConfirmText = "AB_ConfirmText";
+    public static string AB_RotateIcon = "AB_RotateIcon";
+    public static string AB_Title = "AB_Title";
+    public static string AB_Description = "AB_Description";
+    public static string AB_AwardImages = "AB_AwardImages";
+    public static string AB_AwardImage0 = "AB_AwardImage0";
+    public static string AB_AwardImage1 = "AB_AwardImage1";
+    public static string AB_AwardImage2 = "AB_AwardImage2";
+    public static string AB_FlowerAwardImage = "AB_FlowerAwardImage";
+    public static string K_Bubble = "K_Bubble";
+    public static string K_Bubble0 = "K_Bubble0";
+    public static string K_Tit = "K_Tit";
+    public static string K_VGroup = "K_VGroup";
+    public static string K_Icon = "K_Icon";
+    public static string K_Lab = "K_Lab";
+    public static string K_Lab2 = "K_Lab2";
+    public static string K_ImagePlus2 = "K_ImagePlus2";
+    public static string K_Lab1 = "K_Lab1";
+    public static string K_ImagePlus1 = "K_ImagePlus1";
+    public static string K_Lab3 = "K_Lab3";
+    public static string K_LinkButton = "K_LinkButton";
+    public static string K_NotifyLab = "K_NotifyLab";
+    public static string K_NotifyImagePlus = "K_NotifyImagePlus";
+    public static string K_HGroup = "K_HGroup";
+    public static string K_Confirm = "K_Confirm";
+    public static string K_ConfirmLab = "K_ConfirmLab";
+    public static string K_Cancel = "K_Cancel";
+    public static string K_CancelLab = "K_CancelLab";
+    public static string AI_AlertPanel = "AI_AlertPanel";
+    public static string AI_BK = "AI_BK";
+    public static string AI_Tit = "AI_Tit";
+    public static string AI_Grid = "AI_Grid";
+    public static string AI_HGroup = "AI_HGroup";
+    public static string AI_Confirm = "AI_Confirm";
+    public static string AI_ConfirmLab = "AI_ConfirmLab";
+    public static string AI_Cancel = "AI_Cancel";
+    public static string AI_CancelLab = "AI_CancelLab";
+    public static string A_HudParent = "A_HudParent";
+    public static string U_LoadingPanel = "U_LoadingPanel";
+    public static string U_Parent = "U_Parent";
+    public static string U_DebugLab = "U_DebugLab";
+    public static string U_VGroup = "U_VGroup";
+    public static string U_WarningTitle = "U_WarningTitle";
+    public static string U_WarningText = "U_WarningText";
+    public static string U_Group = "U_Group";
+    public static string U_Icon = "U_Icon";
+    public static string U_Lab = "U_Lab";
+    public static string AJ_UpdatePanel = "AJ_UpdatePanel";
+    public static string AJ_bg = "AJ_bg";
+    public static string AJ_Title = "AJ_Title";
+    public static string AJ_Content = "AJ_Content";
+    public static string AJ_Progress = "AJ_Progress";
+    //EndMark-Used by LabelUtility-Do not remove
 }

+ 6 - 0
Assets/Script/Label/LanguageLabel.cs

@@ -315,6 +315,12 @@ public class LanguageLabel
     	public static string UI__AH_SendPrivateMessageFailed = "UI__AH_SendPrivateMessageFailed";
     	public static string UI__AH_Current = "UI__AH_Current";
     	public static string UI__AK_Desc = "UI__AK_Desc";
+    	public static string UI__AL_Title = "UI__AL_Title";
+    	public static string UI__AL_Cost = "UI__AL_Cost";
+    	public static string UI__AL_Close = "UI__AL_Close";
+    	public static string UI__AL_Eye = "UI__AL_Eye";
+    	public static string UI__AL_Mouse = "UI__AL_Mouse";
+    	public static string UI__AL_Tip = "UI__AL_Tip";
     	public static string FriendItem = "FriendItem";
     	public static string FriendItem__SendMessageButtonText = "FriendItem__SendMessageButtonText";
     	public static string FriendItem__DeleteButtonText = "FriendItem__DeleteButtonText";

+ 82 - 81
Assets/Script/Label/PlayerConfigLabel.cs

@@ -1,82 +1,83 @@
-using System.Collections;
-using System.Collections.Generic;
-
-using UnityEngine;
-
-public class PlayerConfigLabel
-{
-    public static string DefaultID = "Default";
-    public static string DefaultSerialNumber = "Default";
-
-    public static string MinigameCoolFlag = "MinigameCoolFlag";
-    public static string FindMissingMinigameTutorial = "FindMissingMinigameTutorial";
-    public static string FindMissingMinigameTutorialIndex = "FindMissingMinigameTutorialIndex";
-    public static string AttributeName = "value";
-    public static string LastApplicantSerialNumber = "LastApplicantSerialNumber";
-    public static string LastPrivateMessageDate = "LastPrivateMessageDate";
-    public static string CurrentMinigameType = "CurrentMinigameType";
-    public static string OneTimeReward = "OneTimeReward";
-    public static string PackLock = "PackLock";
-    public static string RefundNode = "Refund";
-    public static string ReceivedNode = "Received";
-    public static string RootNode = "PlayerConfig";
-    public static string ExtraSlot = "ExtraSlot";
-    public static string Version = "Version";
-    public static string ReplayVersion = "ReplayVersion";
-    public static string SkillList = "SkillList";
-    public static string Skill = "Skill";
-    public static string ID = "ID";
-    public static string SkillType = "SkillType";
-    public static string ItemStatus = "ItemStatus";
-    public static string Level = "Level";
-    public static string CoolTimer = "CoolTimer";
-    public static string UseTimer = "UseTimer";
-    public static string BarStatus = "BarStatus";
-    public static string DressList = "DressList";
-    public static string DressData = "DressData";
-    public static string AchieveList = "AchieveList";
-    public static string AchieveData = "AchieveData";
-    public static string PlantList = "PlantList";
-    public static string Coin = "Coin";
-    public static string Diamond = "Diamond";
-    public static string SignTime = "SignTime";
-    public static string SignIndex = "SignIndex";
-    public static string SignRound = "SignRound";
-    public static string QuitFlag = "QuitFlag";
-    public static string QuitTime = "QuitTime";
-    public static string MiniTimer = "MiniTimer";
-    public static string CircleTimer = "CircleTimer";
-    public static string SerialNumber = "SerialNumber";
-    public static string Language = "Language";
-    public static string MiniGameIndex = "MiniGameIndex";
-    public static string NewplayerTutorial = "TutorialA";
-    public static string MemoryMinigameTutorial = "TutorialB";
-    public static string VisitTutorial = "TutorialC";
-    public static string DressroomTutorial = "TutorialD";
-    public static string FashionShowTutorial = "FashionShowTutorial";
-    public static string FashionShowTutorialIndex = "FashionShowTutorialIndex";
-    public static string FindSoloMinigameTutorial = "TutorialE";
-    public static string TutorialPlazaRoom = "TutorialPlazaRoom";
-    public static string NewplayerTutorialIndex = "TutorialIndexA";
-    public static string MemoryMinigameTutorialIndex = "TutorialIndexB";
-    public static string VisitTutorialIndex = "TutorialIndexC";
-    public static string DressroomIndex = "TutorialIndexD";
-    public static string FindSoloMinigameTutorialIndex = "TutorialIndexE";
-    public static string TutorialIndexPlazaRoom = "TutorialIndexPlazaRoom";
-    public static string FlowerList = "FlowerList";
-    public static string FlowerAmtList = "FlowerAmtList";
-    public static string ADPlayTime = "ADPlayTime";
-    public static string NotificationIndex = "NotificationIndex";
-    public static string NickName = "NickName";
-    public static string LeftLongSleeveSlot = "LeftLongSleeveSlot";
-    public static string LeftShortSleeveSlot = "LeftShortSleeveSlot";
-    public static string RightLongSleeveSlot = "RightLongSleeveSlot";
-    public static string RightShortSleeveSlot = "RightShortSleeveSlot";
-    public static string NewFlowerFlag = "NewFlowerFlag";
-    public static string CreateRoomAmt = "CreateRoomAmt";
-    public static string CreateChestAmt = "CreateChestAmt";
-    public static string CreateLuckyChestAmt = "CreateLuckyChestAmt";
-    public static string CreateGuessColorChestAmt = "CreateGuessColorChestAmt";
-    public static string CreateGuessNumberChestAmt = "CreateGuessNumberChestAmt";
-    public static string GetChestAwardAmt = "GetChestAwardAmt";
+using System.Collections;
+using System.Collections.Generic;
+
+using UnityEngine;
+
+public class PlayerConfigLabel
+{
+    public static string DefaultID = "Default";
+    public static string DefaultSerialNumber = "Default";
+
+    public static string MinigameCoolFlag = "MinigameCoolFlag";
+    public static string ChangeMouseTutorial = "ChangeMouseTutorial";
+    public static string FindMissingMinigameTutorial = "FindMissingMinigameTutorial";
+    public static string FindMissingMinigameTutorialIndex = "FindMissingMinigameTutorialIndex";
+    public static string AttributeName = "value";
+    public static string LastApplicantSerialNumber = "LastApplicantSerialNumber";
+    public static string LastPrivateMessageDate = "LastPrivateMessageDate";
+    public static string CurrentMinigameType = "CurrentMinigameType";
+    public static string OneTimeReward = "OneTimeReward";
+    public static string PackLock = "PackLock";
+    public static string RefundNode = "Refund";
+    public static string ReceivedNode = "Received";
+    public static string RootNode = "PlayerConfig";
+    public static string ExtraSlot = "ExtraSlot";
+    public static string Version = "Version";
+    public static string ReplayVersion = "ReplayVersion";
+    public static string SkillList = "SkillList";
+    public static string Skill = "Skill";
+    public static string ID = "ID";
+    public static string SkillType = "SkillType";
+    public static string ItemStatus = "ItemStatus";
+    public static string Level = "Level";
+    public static string CoolTimer = "CoolTimer";
+    public static string UseTimer = "UseTimer";
+    public static string BarStatus = "BarStatus";
+    public static string DressList = "DressList";
+    public static string DressData = "DressData";
+    public static string AchieveList = "AchieveList";
+    public static string AchieveData = "AchieveData";
+    public static string PlantList = "PlantList";
+    public static string Coin = "Coin";
+    public static string Diamond = "Diamond";
+    public static string SignTime = "SignTime";
+    public static string SignIndex = "SignIndex";
+    public static string SignRound = "SignRound";
+    public static string QuitFlag = "QuitFlag";
+    public static string QuitTime = "QuitTime";
+    public static string MiniTimer = "MiniTimer";
+    public static string CircleTimer = "CircleTimer";
+    public static string SerialNumber = "SerialNumber";
+    public static string Language = "Language";
+    public static string MiniGameIndex = "MiniGameIndex";
+    public static string NewplayerTutorial = "TutorialA";
+    public static string MemoryMinigameTutorial = "TutorialB";
+    public static string VisitTutorial = "TutorialC";
+    public static string DressroomTutorial = "TutorialD";
+    public static string FashionShowTutorial = "FashionShowTutorial";
+    public static string FashionShowTutorialIndex = "FashionShowTutorialIndex";
+    public static string FindSoloMinigameTutorial = "TutorialE";
+    public static string TutorialPlazaRoom = "TutorialPlazaRoom";
+    public static string NewplayerTutorialIndex = "TutorialIndexA";
+    public static string MemoryMinigameTutorialIndex = "TutorialIndexB";
+    public static string VisitTutorialIndex = "TutorialIndexC";
+    public static string DressroomIndex = "TutorialIndexD";
+    public static string FindSoloMinigameTutorialIndex = "TutorialIndexE";
+    public static string TutorialIndexPlazaRoom = "TutorialIndexPlazaRoom";
+    public static string FlowerList = "FlowerList";
+    public static string FlowerAmtList = "FlowerAmtList";
+    public static string ADPlayTime = "ADPlayTime";
+    public static string NotificationIndex = "NotificationIndex";
+    public static string NickName = "NickName";
+    public static string LeftLongSleeveSlot = "LeftLongSleeveSlot";
+    public static string LeftShortSleeveSlot = "LeftShortSleeveSlot";
+    public static string RightLongSleeveSlot = "RightLongSleeveSlot";
+    public static string RightShortSleeveSlot = "RightShortSleeveSlot";
+    public static string NewFlowerFlag = "NewFlowerFlag";
+    public static string CreateRoomAmt = "CreateRoomAmt";
+    public static string CreateChestAmt = "CreateChestAmt";
+    public static string CreateLuckyChestAmt = "CreateLuckyChestAmt";
+    public static string CreateGuessColorChestAmt = "CreateGuessColorChestAmt";
+    public static string CreateGuessNumberChestAmt = "CreateGuessNumberChestAmt";
+    public static string GetChestAwardAmt = "GetChestAwardAmt";
 }

+ 154 - 153
Assets/Script/Label/ResourceLabel.cs

@@ -1,154 +1,155 @@
-using System.Collections;
-using System.Collections.Generic;
-
-using UnityEngine;
-
-public class ResourceLabel
-{
-    //public static string NewDressConfig = "new_dress_config";
-    public static string NewDressSke = "new_dress_ske";
-    public static string NewDressTex = "new_dress_tex";
-    public static string NewLanguage = "new_language_config";
-    //public static string NewFlowerConfig = "new_flower_config";
-    public static string NewFlowerTex = "new_flower_tex";
-
-    public static string ChestTimer = "ChestTimer";
-    public static string PlazaRoom = "PlazaRoom";
-    public static string ObjPool = "ObjPool";
-
-    public static string SkillAtlas = "SkillAtlas";
-    public static string Atlas = "Atlas";
-    public static string TimerMat = "TimerMat";
-    public static string EventSystem = "EventSystem";
-    public static string MainCamera = "MainCamera";
-    public static string Canvas = "Canvas";
-    public static string UI = "UI";
-
-    public static string LOGO0005 = "LOGO0005";
-    public static string PlazaroomMemberItem = "PlazaroomMemberItem";
-    public static string MailItem = "MailItem";
-    public static string NotifyTitle = "NotifyTitle";
-    public static string NotifySplit = "NotifySplit";
-    public static string NotifyContent = "NotifyContent";
-    public static string NotifyDate = "NotifyDate";
-    public static string NotifyImage = "NotifyImage";
-    //public static string NotifyItem = "NotifyItem";
-    public static string Music = "Music";
-    public static string MessageBox = "MessageBox";
-    public static string NickName = "NickName";
-    public static string PlazaRoomItem = "PlazaRoomItem";
-    public static string PlazaRoomStar = "PlazaRoomStar";
-    public static string CloseItem = "CloseItem";
-    public static string FlyGold = "FlyGold";
-    public static string FlowerItem = "FlowerItem";
-    public static string SignItem = "SignItem";
-    public static string LightwallUI = "LightwallUI";
-    public static string Firework = "Firework";
-    public static string AchieveItem = "AchieveItem";
-    public static string SkillItem = "SkillItem";
-    public static string CommentItem = "CommentItem";
-    public static string RankItem = "RankItem";
-    public static string HudText = "HudText";
-    public static string GardenInfoItem = "GardenInfoItem";
-    public static string PlazaInfoItem = "PlazaInfoItem";
-    public static string FashionShowCloseItem = "FashionShowCloseItem";
-    public static string Flower = "Flower";
-    public static string DropGold = "DropGold";
-    public static string DropDiamond = "DropDiamond";
-    public static string PlazaRoomChest = "PlazaRoomChest";
-    public static string ADChest = "ADChest";
-    public static string Star = "Star";
-    public static string Page = "Page";
-    public static string Player = "Player";
-    public static string Garden = "Garden";
-    public static string Tutorial = "Tutorial";
-    public static string DressRoom = "DressRoom";
-
-    public static string Expression_BlueFace = "郁闷按钮";
-    public static string Expression_SweatFace = "汗颜按钮";
-    public static string Expression_SurpriseFace = "惊讶按钮";
-    public static string Expression_HappyFace = "开心按钮";
-    public static string Expression_CryFace = "哭按钮";
-    public static string Expression_HopeFace = "期待按钮";
-    public static string Expression_OgleFace = "色咪咪按钮";
-    public static string Expression_ChagrinFace = "委屈按钮";
-    public static string Expression_SendPublicMessage = "发送按钮";
-    public static string Expression_Expression = "表情按钮";
-    public static string Expression_InputField = "打字框";
-
-    public static string WifiOn = "wifi_ok";
-    public static string WifiOff = "wifi_lost";
-    public static string Expression = "Expression";
-    public static string Slot = "未开垦图标";
-    public static string SystemChest = "系统宝箱";
-    public static string DiamondChest = "钻石宝箱";
-    public static string NumberChest = "数字宝箱";
-    public static string FlowerChest = "花朵宝箱";
-    public static string FlowerShadow = "花影子";
-    public static string Chest = "宝箱";
-    public static string Rip = "Rip";
-    public static string Water = "Water";
-    public static string Fertilize = "Fertilize";
-    public static string Pack = "礼包";
-    public static string Gold = "金币";
-    public static string Diamond = "钻石";
-    public static string BigGold = "大金币图标";
-    public static string MinigameRateStar = "游戏等级评分";
-
-    public static string RobotConfig = "robot_config";
-    public static string StandTex0 = "stand_tex_0";
-    public static string StandTex1 = "stand_tex_1";
-    public static string StandSke = "stand_ske";
-    public static string StandTexture0 = "stand_texture_0";
-    public static string StandTexture1 = "stand_texture_1";
-    public static string PhonoGraphTex = "PhonoGraph_tex";
-    public static string PhonoGraphSke = "PhonoGraph_ske";
-    public static string PhonoGraphTexture = "PhonoGraph_texture";
-
-    public static string Setting = "Setting";
-    public static string English = "English";
-    public static string ChineseSimplified = "ChineseSimplified";
-    public static string ChineseTraditional = "ChineseTraditional";
-    public static string DefaultNickName = "DefaultNickName";
-    public static string Config = "config";
-    public static string MinigameConfig = "minigame_config";
-    public static string DressroomConfig = "dressRoom_config";
-    public static string CostConfig = "cost_config";
-    public static string AchieveConfig = "achieve_config";
-    public static string LotteryConfig = "lottery_config";
-    public static string FlowerConfig = "flower_config";
-    public static string SigninConfig = "signin_config";
-    public static string PackConfig = "pack_config";
-    public static string SkillConfig = "skill_config";
-    public static string AbilityConfig = "ability_config";
-    public static string VisitConfig = "visit_config";
-    public static string PlazaroomConfig = "plaza_room_config";
-    public static string AwardConfig = "award_config";
-    public static string IAPConfig = "iap_config";
-    public static string OfflineConfig = "offline_config";
-    public static string PlayerConfig= "PlayerConfig";
-    public static string PlayerConfigXml = "PlayerConfig.xml";
-    public static string NewDressroomConfig = "new_dressRoom_config";
-    public static string NewEnglish = "new_English";
-    public static string NewChineseSimplified = "new_ChineseSimplified";
-    public static string NewChineseTraditional = "new_ChineseTraditional";
-    public static string DefaultEnglish = "default_English";
-    public static string DefaultChineseSimplified = "default_ChineseSimplified";
-    public static string DefaultChineseTraditional = "default_ChineseTraditional";
-
-    public static string BtnClip = "BtnClip";
-    public static string SkillClip = "SkillClip";
-    public static string ErrorClip = "ErrorClip";
-    public static string DropClip = "DropClip";
-    public static string CloseClip = "CloseClip";
-    public static string FlowerClip = "FlowerClip";
-    public static string BubbleClip = "BubbleClip";
-    public static string CurrentClip = "CurrentClip";
-    public static string MiniEndClip = "MiniEndClip";
-
-    public static string GrayMat = "GrayMat";
-    public static string UIMaskMat = "UIMaskMat";
-    public static string GraySpriteMat = "GraySpriteMat";
-    public static string GrayMeshMat = "GrayMeshMat";
-    public static string DragonboneUGUIMat = "DragonboneUGUIMat";
+using System.Collections;
+using System.Collections.Generic;
+
+using UnityEngine;
+
+public class ResourceLabel
+{
+    //public static string NewDressConfig = "new_dress_config";
+    public static string NewDressSke = "new_dress_ske";
+    public static string NewDressTex = "new_dress_tex";
+    public static string NewLanguage = "new_language_config";
+    //public static string NewFlowerConfig = "new_flower_config";
+    public static string NewFlowerTex = "new_flower_tex";
+
+    public static string MouseCloseItem = "MouseCloseItem";
+    public static string ChestTimer = "ChestTimer";
+    public static string PlazaRoom = "PlazaRoom";
+    public static string ObjPool = "ObjPool";
+
+    public static string SkillAtlas = "SkillAtlas";
+    public static string Atlas = "Atlas";
+    public static string TimerMat = "TimerMat";
+    public static string EventSystem = "EventSystem";
+    public static string MainCamera = "MainCamera";
+    public static string Canvas = "Canvas";
+    public static string UI = "UI";
+
+    public static string LOGO0005 = "LOGO0005";
+    public static string PlazaroomMemberItem = "PlazaroomMemberItem";
+    public static string MailItem = "MailItem";
+    public static string NotifyTitle = "NotifyTitle";
+    public static string NotifySplit = "NotifySplit";
+    public static string NotifyContent = "NotifyContent";
+    public static string NotifyDate = "NotifyDate";
+    public static string NotifyImage = "NotifyImage";
+    //public static string NotifyItem = "NotifyItem";
+    public static string Music = "Music";
+    public static string MessageBox = "MessageBox";
+    public static string NickName = "NickName";
+    public static string PlazaRoomItem = "PlazaRoomItem";
+    public static string PlazaRoomStar = "PlazaRoomStar";
+    public static string CloseItem = "CloseItem";
+    public static string FlyGold = "FlyGold";
+    public static string FlowerItem = "FlowerItem";
+    public static string SignItem = "SignItem";
+    public static string LightwallUI = "LightwallUI";
+    public static string Firework = "Firework";
+    public static string AchieveItem = "AchieveItem";
+    public static string SkillItem = "SkillItem";
+    public static string CommentItem = "CommentItem";
+    public static string RankItem = "RankItem";
+    public static string HudText = "HudText";
+    public static string GardenInfoItem = "GardenInfoItem";
+    public static string PlazaInfoItem = "PlazaInfoItem";
+    public static string FashionShowCloseItem = "FashionShowCloseItem";
+    public static string Flower = "Flower";
+    public static string DropGold = "DropGold";
+    public static string DropDiamond = "DropDiamond";
+    public static string PlazaRoomChest = "PlazaRoomChest";
+    public static string ADChest = "ADChest";
+    public static string Star = "Star";
+    public static string Page = "Page";
+    public static string Player = "Player";
+    public static string Garden = "Garden";
+    public static string Tutorial = "Tutorial";
+    public static string DressRoom = "DressRoom";
+
+    public static string Expression_BlueFace = "郁闷按钮";
+    public static string Expression_SweatFace = "汗颜按钮";
+    public static string Expression_SurpriseFace = "惊讶按钮";
+    public static string Expression_HappyFace = "开心按钮";
+    public static string Expression_CryFace = "哭按钮";
+    public static string Expression_HopeFace = "期待按钮";
+    public static string Expression_OgleFace = "色咪咪按钮";
+    public static string Expression_ChagrinFace = "委屈按钮";
+    public static string Expression_SendPublicMessage = "发送按钮";
+    public static string Expression_Expression = "表情按钮";
+    public static string Expression_InputField = "打字框";
+
+    public static string WifiOn = "wifi_ok";
+    public static string WifiOff = "wifi_lost";
+    public static string Expression = "Expression";
+    public static string Slot = "未开垦图标";
+    public static string SystemChest = "系统宝箱";
+    public static string DiamondChest = "钻石宝箱";
+    public static string NumberChest = "数字宝箱";
+    public static string FlowerChest = "花朵宝箱";
+    public static string FlowerShadow = "花影子";
+    public static string Chest = "宝箱";
+    public static string Rip = "Rip";
+    public static string Water = "Water";
+    public static string Fertilize = "Fertilize";
+    public static string Pack = "礼包";
+    public static string Gold = "金币";
+    public static string Diamond = "钻石";
+    public static string BigGold = "大金币图标";
+    public static string MinigameRateStar = "游戏等级评分";
+
+    public static string RobotConfig = "robot_config";
+    public static string StandTex0 = "stand_tex_0";
+    public static string StandTex1 = "stand_tex_1";
+    public static string StandSke = "stand_ske";
+    public static string StandTexture0 = "stand_texture_0";
+    public static string StandTexture1 = "stand_texture_1";
+    public static string PhonoGraphTex = "PhonoGraph_tex";
+    public static string PhonoGraphSke = "PhonoGraph_ske";
+    public static string PhonoGraphTexture = "PhonoGraph_texture";
+
+    public static string Setting = "Setting";
+    public static string English = "English";
+    public static string ChineseSimplified = "ChineseSimplified";
+    public static string ChineseTraditional = "ChineseTraditional";
+    public static string DefaultNickName = "DefaultNickName";
+    public static string Config = "config";
+    public static string MinigameConfig = "minigame_config";
+    public static string DressroomConfig = "dressRoom_config";
+    public static string CostConfig = "cost_config";
+    public static string AchieveConfig = "achieve_config";
+    public static string LotteryConfig = "lottery_config";
+    public static string FlowerConfig = "flower_config";
+    public static string SigninConfig = "signin_config";
+    public static string PackConfig = "pack_config";
+    public static string SkillConfig = "skill_config";
+    public static string AbilityConfig = "ability_config";
+    public static string VisitConfig = "visit_config";
+    public static string PlazaroomConfig = "plaza_room_config";
+    public static string AwardConfig = "award_config";
+    public static string IAPConfig = "iap_config";
+    public static string OfflineConfig = "offline_config";
+    public static string PlayerConfig= "PlayerConfig";
+    public static string PlayerConfigXml = "PlayerConfig.xml";
+    public static string NewDressroomConfig = "new_dressRoom_config";
+    public static string NewEnglish = "new_English";
+    public static string NewChineseSimplified = "new_ChineseSimplified";
+    public static string NewChineseTraditional = "new_ChineseTraditional";
+    public static string DefaultEnglish = "default_English";
+    public static string DefaultChineseSimplified = "default_ChineseSimplified";
+    public static string DefaultChineseTraditional = "default_ChineseTraditional";
+
+    public static string BtnClip = "BtnClip";
+    public static string SkillClip = "SkillClip";
+    public static string ErrorClip = "ErrorClip";
+    public static string DropClip = "DropClip";
+    public static string CloseClip = "CloseClip";
+    public static string FlowerClip = "FlowerClip";
+    public static string BubbleClip = "BubbleClip";
+    public static string CurrentClip = "CurrentClip";
+    public static string MiniEndClip = "MiniEndClip";
+
+    public static string GrayMat = "GrayMat";
+    public static string UIMaskMat = "UIMaskMat";
+    public static string GraySpriteMat = "GraySpriteMat";
+    public static string GrayMeshMat = "GrayMeshMat";
+    public static string DragonboneUGUIMat = "DragonboneUGUIMat";
 }

+ 86 - 0
Assets/Script/Manage/CommentRewardManager.cs

@@ -0,0 +1,86 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Xml;
+using UnityEngine;
+using Random = UnityEngine.Random;
+
+public class CommentRewardManager : Regist
+{
+    public static double rewardCoin;
+    public static float rewardTime;
+    public static float rewardChance;
+
+    public static string rewardCoinFml;
+    public static string rewardTimeFml;
+    public static string rewardChanceFml;
+
+    public static float timer;
+
+    public override void ThirdInit()
+    {
+        XmlDocument document = ConfigManager.GetXmlDocument(ResourceLabel.CostConfig);
+        XmlNodeList nodes = document.SelectSingleNode(ConfigLabel.RootNode).ChildNodes;
+        rewardCoinFml = nodes[3].Attributes[1].Value;
+        rewardChanceFml = nodes[4].Attributes[1].Value;
+        rewardTimeFml = nodes[5].Attributes[1].Value;
+
+        rewardCoin = Auxiliary.FmlParse(rewardCoinFml, "c", (Manager.CircleIncome*6).ToString("0"));
+        rewardCoin = (long) rewardCoin;
+        rewardTime = (float) Auxiliary.FmlParse(rewardTimeFml);
+        rewardChance = (float) Auxiliary.FmlParse(rewardChanceFml);
+
+        //rewardChance = 1;
+        //rewardTime = 1;
+    }
+
+    public void Update()
+    {
+        timer -= Time.deltaTime;
+    }
+
+    public static void GetReward()
+    {
+        if (timer >= 0)
+        {
+            return;
+        }
+
+        if (Random.Range(0f, 1f) > rewardChance)
+        {
+            return;
+        }
+
+        Transform flyGold = ResourceManager.Get("UIFlyGold", Folder.UI, false, ResourceManager.Get(CanvasLabel.Canvas), false);
+        flyGold.transform.localPosition = new Vector3(0, 0, 0);
+        TweenRoot tweenRoot = flyGold.CreateTweenGra(1, 0, 0.25f, true, false, Curve.EaseOutQuad);
+        tweenRoot.AddEventOnetime(EventType.ForwardFinish, () => { Destroy(flyGold.gameObject); });
+
+        Move2D move2D = new Move2D(flyGold);
+        move2D.Restrain2D = Restrain2D.Y;
+        Vector3 destination = ResourceManager.Get(CanvasLabel.C_Coin).position;
+        move2D.StartMove(destination, 0.5f, false, Curve.EaseOutQuad);
+        
+        move2D = new Move2D(flyGold);
+        move2D.Restrain2D = Restrain2D.X;
+        destination = ResourceManager.Get(CanvasLabel.C_Coin).position;
+        move2D.StartMove(destination, 0.5f, false, Curve.Linear);
+
+        DelayCall.Call
+        (
+            0.4f,
+            () =>
+            {
+                tweenRoot.StartForward();
+                Manager.AddCoin(rewardCoin, StaticsManager.ItemID.获得金币, StaticsManager.ConsumeModule.ClickFlower);
+            }
+        );
+
+        AudioManager.PlayClip(ResourceLabel.CurrentClip);
+
+        ResourceManager.GetHudText(string.Format("{0}+{1}", TransferLabel.CoinSprite, rewardCoin), Color.gray, 90, ResourceManager.Get("UIFlyGoldPos"), ResourceManager.Get(CanvasLabel.A_HudParent), true);
+
+        timer = rewardTime;
+    }
+}

+ 13 - 0
Assets/Script/Manage/CommentRewardManager.cs.meta

@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 70d72bd2d06a31d419b7a0d58a9dd9b4
+timeCreated: 1525684192
+licenseType: Pro
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 38 - 0
Assets/Script/Manage/ConfigManager.cs

@@ -554,6 +554,7 @@ public class ConfigManager : Regist
         ConfigRootNode.SelectSingleNode(PlayerConfigLabel.DressroomTutorial).Attributes[0].Value = TutorialManager.dressroomTutorial.ToInt().ToString();
 
         ConfigRootNode.SelectSingleNode(PlayerConfigLabel.FashionShowTutorial).Attributes[0].Value = TutorialManager.fashionShowTutorial.ToInt().ToString();
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.ChangeMouseTutorial).Attributes[0].Value = TutorialManager.changeMouseTutorial.ToInt().ToString();
 
         if (TutorialManager.findSoloMinigameTutorial || TutorialManager.FindSoloMinigameTutorial)
         {
@@ -1547,6 +1548,20 @@ public class ConfigManager : Regist
             ToVersion37(nativeDoc, defaultDoc);
         }
 
+        if (nativeVersion < 38)
+        {
+            Debug.LogWarning("UpdateArchive to 38");
+
+            ToVersion38(nativeDoc, defaultDoc);
+        }
+
+        if (nativeVersion < 39)
+        {
+            Debug.LogWarning("UpdateArchive to 39");
+
+            ToVersion39(nativeDoc, defaultDoc);
+        }
+
         return nativeDoc;
     }
 
@@ -2082,4 +2097,27 @@ public class ConfigManager : Regist
 
         return nativeDoc;
     }
+
+    public static XmlDocument ToVersion38(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 38.ToString();
+
+        XmlNode xmlNode = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.ChangeMouseTutorial);
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode, true));
+
+        return nativeDoc;
+    }
+
+    public static XmlDocument ToVersion39(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 39.ToString();
+
+        string persistentFolderPath = string.Format("{0}{1}HotUpdate", Application.persistentDataPath, Path.DirectorySeparatorChar);
+        if (Directory.Exists(persistentFolderPath))
+        {
+            Directory.Delete(persistentFolderPath, true);
+        }
+
+        return nativeDoc;
+    }
 }

+ 2 - 0
Assets/Script/Manage/HttpManager.cs

@@ -749,6 +749,8 @@ public class HttpManager : Regist
                 {
                     Bubble.Show(null, Language.GetStr(LanguageLabel.UI__Q_CommentDone));
                     SocialManager.UpdateCommentPage(false);
+
+                    CommentRewardManager.GetReward();
                 }
                 else
                 {

+ 562 - 550
Assets/Script/Manage/Initializer.cs

@@ -1,551 +1,563 @@
-using LitJson;
-
-using UnityEngine;
-using UnityEngine.UI;
-using UnityEngine.EventSystems;
-
-using System;
-using System.Xml;
-using System.Collections;
-using System.Collections.Generic;
-using System.Linq.Expressions;
-
-public class LogoSceneLabel
-{
-    public static string DebugText = "DebugText";
-    public static string ManagerGame = "ManagerGame";
-}
-
-public class Initializer : MonoBehaviour
-{
-    #region Config
-
-    //public Texture2D Texture2D;
-
-    public bool AuditEdition;
-    public bool DebugMode;
-    public bool CatchException;
-    public GameObject DebugModeGo;
-
-    public static bool Inited;
-    public static bool IsGameActivated;
-    public static string InitScriptProgress;
-    public static Text DebugText;
-    public static Initializer Instance;
-    public static List<Regist> RegistList = new List<Regist>();
-
-    #endregion
-
-    private void Awake()
-    {
-        if (!Application.isEditor)
-        {
-            Debug.unityLogger.logEnabled = false;
-        }
-
-        if (CatchException)
-        {
-            try
-            {
-                InitDataEye();
-            }
-            catch (Exception)
-            {
-
-            }
-        }
-        else
-        {
-            InitDataEye();
-        }
-
-        if (CatchException)
-        {
-            try
-            {
-                InitScript();
-            }
-            catch (Exception e)
-            {
-                Text debugText = GameObject.Find(LogoSceneLabel.DebugText).GetComponent<Text>();
-                debugText.SetAlpha(1);
-                debugText.text = InitScriptProgress + "\n" + e;
-                throw new Exception();
-            }
-        }
-        else
-        {
-            InitScript();
-        }
-    }
-
-    private void InitDataEye()
-    {
-        if (Application.platform == RuntimePlatform.IPhonePlayer)
-        {
-            DataEyeGA.Init("C5790DBD2CFE97BD18C7BE9A95482C05", DataEyeGA.PlatformType.IOS, "Official", "IOS");
-        }
-        else if (Application.isMobilePlatform)
-        {
-            DataEyeGA.Init("ADE884FAAF61A2CB45B02431A70932B8", DataEyeGA.PlatformType.ADR, "Official", "Android");
-        }
-        else if (Application.isEditor)
-        {
-            DataEyeGA.Init("ADE884FAAF61A2CB45B02431A70932B8", DataEyeGA.PlatformType.WP, "Official", "Windows");
-        }
-    }
-
-    private void InitScript()
-    {
-        int index = 1;
-
-        HttpManager.LoadMd5();
-        HttpManager.LoadMd5Dictionary();
-
-        InitScriptProgress = index++.ToString();
-        Application.targetFrameRate = 50;
-
-        InitScriptProgress = index++.ToString();
-        DontDestroyOnLoad(gameObject);
-
-        InitScriptProgress = index++.ToString();
-        HttpManager.Login(Manager.FirstTimeLoginCallback);
-
-        InitScriptProgress = index++.ToString();
-        HttpManager.GetMailAwardData();
-
-        InitScriptProgress = index++.ToString();
-        HttpManager.GetRankData();
-
-        InitScriptProgress = index++.ToString();
-        HttpManager.GetAlipayFlag();
-
-        InitScriptProgress = index++.ToString();
-        HttpManager.GetAnnounceData();
-
-        Instance = this;
-
-        InitScriptProgress = index++.ToString();
-        if (DebugMode)
-        {
-            Bundle bundle = Instantiate(DebugModeGo, transform).GetComponent<Bundle>();
-            bundle.Begin();
-        }
-        else
-        {
-            gameObject.AddComponent<Bundle>().Begin();
-        }
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddComponent<IAPManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddComponent<VisitManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddComponent<DebugManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<Auxiliary>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<ConfigManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<ResourceManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<TutorialManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<LanguageManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<AnimManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<AudioManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<AchieveManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<UIManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<SignManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<Manager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<GardenManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<PlayerManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<HttpManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<MiniGameManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<InfoBoxManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<SocialManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<NickNameManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<SFSManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<PlazaRoomManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<ChestManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<RobotManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<CDMinigamePanelManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<EnterMinigamePanelManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<PlazaroomMemberPanel>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<FriendPanel>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<AddFriendPanel>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<MessagePanel>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<FashionShowEditPage>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<FashionShowCommentPanel>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<FashionShowHomePage>();
-
-        InitScriptProgress = index++.ToString();
-
-        StartCoroutine(WaitToInit());
-    }
-
-
-    public static void InitEntrance()
-    {
-        if (Instance.CatchException)
-        {
-            DebugManager.TryCatch(InitGame, EnableDebugLab);
-        }
-        else
-        {
-            InitGame();
-        }
-    }
-
-    public static void InstantiatePrefabs()
-    {
-        DebugText.text = "Error code : 1";
-
-        TutorialManager.NewplayerTutorial = ConfigManager.GetBoolFormConfig(PlayerConfigLabel.NewplayerTutorial);
-        DebugText.text = "Error code : 1-1";
-
-        TutorialManager.memoryMinigameTutorial = ConfigManager.GetBoolFormConfig(PlayerConfigLabel.MemoryMinigameTutorial);
-        DebugText.text = "Error code : 1-2";
-
-        TutorialManager.visitTutorial = ConfigManager.GetBoolFormConfig(PlayerConfigLabel.VisitTutorial);
-        DebugText.text = "Error code : 1-3";
-
-        TutorialManager.dressroomTutorial = ConfigManager.GetBoolFormConfig(PlayerConfigLabel.DressroomTutorial);
-        DebugText.text = "Error code : 1-4";
-
-        TutorialManager.fashionShowTutorial = ConfigManager.GetBoolFormConfig(PlayerConfigLabel.FashionShowTutorial);
-        DebugText.text = "Error code : 1-4-1";
-
-        TutorialManager.findSoloMinigameTutorial = ConfigManager.GetBoolFormConfig(PlayerConfigLabel.FindSoloMinigameTutorial);
-        DebugText.text = "Error code : 1-5";
-
-        TutorialManager.findMissingMinigameTutorial = ConfigManager.GetBoolFormConfig(PlayerConfigLabel.FindMissingMinigameTutorial);
-        DebugText.text = "Error code : 1-5-0";
-
-        TutorialManager.plazaRoomTutorial = ConfigManager.GetBoolFormConfig(PlayerConfigLabel.TutorialPlazaRoom);
-        DebugText.text = "Error code : 1-5-1";
-
-        TutorialManager.NewplayerTutorialIndex = ConfigManager.GetIntFormConfig(PlayerConfigLabel.NewplayerTutorialIndex);
-        DebugText.text = "Error code : 1-6";
-
-        TutorialManager.MemoryMinigameTutorialIndex = ConfigManager.GetIntFormConfig(PlayerConfigLabel.MemoryMinigameTutorialIndex);
-        DebugText.text = "Error code : 1-7";
-
-        TutorialManager.VisitTutorialIndex = ConfigManager.GetIntFormConfig(PlayerConfigLabel.VisitTutorialIndex);
-        DebugText.text = "Error code : 1-8";
-
-        TutorialManager.DressroomTutorialIndex = ConfigManager.GetIntFormConfig(PlayerConfigLabel.DressroomIndex);
-        DebugText.text = "Error code : 1-9";
-
-        TutorialManager.FindSoloMinigameTutorialIndex = ConfigManager.GetIntFormConfig(PlayerConfigLabel.FindSoloMinigameTutorialIndex);
-        DebugText.text = "Error code : 1-10";
-
-        TutorialManager.FindMissingMinigameTutorialIndex = ConfigManager.GetIntFormConfig(PlayerConfigLabel.FindMissingMinigameTutorialIndex);
-        DebugText.text = "Error code : 1-10-0";
-
-        TutorialManager.PlazaRoomTutorialIndex = ConfigManager.GetIntFormConfig(PlayerConfigLabel.TutorialIndexPlazaRoom);
-        DebugText.text = "Error code : 1-10-1";
-
-        TutorialManager.FashionShowTutorialIndex = ConfigManager.GetIntFormConfig(PlayerConfigLabel.FashionShowTutorialIndex);
-        DebugText.text = "Error code : 1-10-1";
-
-        Bundle.LoadAtlasSprites();
-
-        DebugText.text = "Error code : 7";
-        List<XmlAttributeCollection> attributeList = ConfigManager.GetDressRoomConfig();
-        attributeList.RemoveAt(0);
-        //attributeList.AddRange(Bundle.NewDressroomConfigs);
-        PlayerManager.CreateCloseItems(attributeList);
-
-        DebugText.text = "Error code : 1-11";
-        //Bundle.LoadAllDressBundleAssetsIntoDragonbone();
-        DebugText.text = "Error code : 1-11-1";
-
-        for (int i = 0; i < RegistList.Count; i++)
-        {
-            DebugText.text = "Error code : 1-12-" + i;
-            //Debug.Log(i + " " + RegistList[i].GetType());
-            RegistList[i].InstantiatePrefabs();
-        }
-
-        DebugText.text = "Error code : 2";
-    }
-
-    public static void InitGame()
-    {
-        InstantiatePrefabs();
-
-        for (int i = 0; i < RegistList.Count; i++)
-        {
-            DebugText.text = "Error code : 2-" + i;
-            RegistList[i].RegistReference();
-        }
-
-        DebugText.text = "Error code : 3";
-
-        for (int i = 0; i < RegistList.Count; i++)
-        {
-            DebugText.text = "Error code : 3-" + i;
-            RegistList[i].FirstInit();
-        }
-
-        DebugText.text = "Error code : 4";
-
-        for (int i = 0; i < RegistList.Count; i++)
-        {
-            DebugText.text = "Error code : 4-" + i;
-            RegistList[i].SecondInit();
-        }
-
-        DebugText.text = "Error code : 5";
-
-        for (int i = 0; i < RegistList.Count; i++)
-        {
-            DebugText.text = "Error code : 5-" + i;
-            RegistList[i].ThirdInit();
-
-            RegistList[i].enabled = true;
-        }
-
-        DebugText.text = "Error code : 6";
-
-        Inited = true;
-
-        if (HttpManager.IsAnnounceReady)
-        {
-            ResourceManager.SetActive(CanvasLabel.C_NotifyParent, true);
-            ResourceManager.Get(CanvasLabel.C_Notify).TweenForCG();
-        }
-
-        LeftSidePanel.Init();
-
-        DebugText.text = "Error code : 7-1";
-        PlayerManager.InitDressRoom();
-
-        DebugText.text = "Error code : 8";
-        Manager.FirstTimeLoginCallback(new JsonData());
-
-        //debugLab.text = "Error code : 9";
-        //SFSManager.GardenSmartFox.Connector.Connect();
-
-        DebugText.text = "Error code : 10";
-        StringFilter.Init();
-
-        DebugText.text = "Error code : 11";
-        IAPManager.Init();
-
-        DebugText.text = "Error code : 12";
-        VisitManager.Init();
-
-        DebugText.text = "Error code : 13";
-        SocialManager.InitRankPanel();
-
-        if (Instance.DebugMode)
-        {
-            ActivateGame();
-        }
-        else
-        {
-            ShowLoadingPanel();
-        }
-    }
-
-    public IEnumerator WaitToInit()
-    {
-        while (!Logo.Complete)
-        {
-            yield return null;
-        }
-
-        while (!Bundle.Complete)
-        {
-            yield return null;
-        }
-
-        //EnableDebugLab();
-        DebugText = GameObject.Find(CanvasLabel.U_DebugLab).GetComponent<Text>();
-        //DebugText.text = "W3";
-
-        Bundle.CopyAssetBundles();
-        while (!Bundle.CopyComplete)
-        {
-            yield return null;
-        }
-
-        ResourceManager.Get(CanvasLabel.AJ_UpdatePanel).AddComponent<UpdatePanel>().Init();
-        bool haveError = Bundle.UpdateAssetBundles();
-
-        while (haveError)
-        {
-            yield return null;
-        }
-
-        //DebugText.text = "W4";
-        while (!Bundle.UpdateComplete)
-        {
-            //DebugText.text = "W5";
-            yield return null;
-        }
-
-        //UpdatePanel.Show();
-        //while (true)
-        //{
-        //    yield return null;
-        //}
-
-        //DebugText.text = "W5-2";
-        SetWarningTitle();
-
-        //DebugText.text = "W6";
-        while (ConfigManager.PlayerDocumentDamageFlag)
-        {
-            //DebugText.text = "W7";
-            yield return null;
-        }
-
-        Language.Initialize();
-        UIManager.Init(Instance.DebugMode);
-        AudioManager.Init();
-        InitEntrance();
-    }
-
-
-    private static float LoadingDelayTime = 3f;
-    private static void ShowLoadingPanel()
-    {
-        DelayCall.Call(1, () =>
-        {
-            Canvas canvas = ResourceManager.Get(CanvasLabel.U_Parent).AddComponent<Canvas>();
-            ResourceManager.Get(CanvasLabel.U_Parent).AddComponent<GraphicRaycaster>();
-            canvas.overrideSorting = true;
-            canvas.sortingOrder = 5;
-        });
-
-        ResourceManager.Get(CanvasLabel.U_Group).TweenForCG();
-        ResourceManager.Get<CanvasGroup>(CanvasLabel.C_Main).alpha = 0;
-
-        ResourceManager.SetText(CanvasLabel.U_Lab, Language.GetStr(LanguageLabel.UI__U_Lab, Application.systemLanguage));
-
-        //SetWarningTitleAndText();
-
-        Auxiliary.Instance.DelayCall(ActivateGame, LoadingDelayTime);
-    }
-
-    public static void SetWarningTitle()
-    {
-        SystemLanguage language = Application.systemLanguage;
-
-        if (Instance.AuditEdition)
-        {
-            language = SystemLanguage.ChineseSimplified;
-        }
-
-        ResourceManager.SetText(CanvasLabel.U_WarningTitle, Language.GetStr(LanguageLabel.UI__U_WarningTitle, language));
-    }
-
-    public static void SetWarningText()
-    {
-        SystemLanguage language = Application.systemLanguage;
-
-        if (Instance.AuditEdition)
-        {
-            language = SystemLanguage.ChineseSimplified;
-        }
-
-        if (language == SystemLanguage.ChineseSimplified)
-        {
-            ResourceManager.SetActive(CanvasLabel.U_WarningTitle, false);
-            ResourceManager.SetText(CanvasLabel.U_WarningText, Language.GetStr(LanguageLabel.UI__U_WarningText, language));
-        }
-        else if (language == SystemLanguage.ChineseTraditional)
-        {
-            ResourceManager.SetActive(CanvasLabel.U_WarningTitle, false);
-            ResourceManager.SetText(CanvasLabel.U_WarningText, Language.GetStr(LanguageLabel.UI__U_WarningText, language));
-        }
-        else
-        {
-            ResourceManager.SetActive(CanvasLabel.U_WarningText, false);
-        }
-    }
-
-
-    private static void ActivateGame()
-    {
-        ResourceManager.Get<CanvasGroup>(CanvasLabel.C_Main).alpha = 1;
-
-        TweenRoot tweenRoot = ResourceManager.Get(CanvasLabel.U_LoadingPanel).TweenForCG();
-        tweenRoot.AddEventOnetime
-        (
-            EventType.ForwardFinish,
-            () => ResourceManager.Get(CanvasLabel.U_Icon).GetTweenEuler().Pause()
-        );
-
-        AudioManager.GardenThemeAudio.TweenForAudio();
-        IsGameActivated = true;
-    }
-
-    public static void EnableDebugLab()
-    {
-        ResourceManager.Get<CanvasGroup>(CanvasLabel.U_Group).alpha = 0;
-        ResourceManager.Get<Text>(CanvasLabel.U_DebugLab).enabled = true;
-    }
+using LitJson;
+
+using UnityEngine;
+using UnityEngine.UI;
+using UnityEngine.EventSystems;
+
+using System;
+using System.Xml;
+using System.Collections;
+using System.Collections.Generic;
+using System.Linq.Expressions;
+
+public class LogoSceneLabel
+{
+    public static string DebugText = "DebugText";
+    public static string ManagerGame = "ManagerGame";
+}
+
+public class Initializer : MonoBehaviour
+{
+    #region Config
+
+    //public Texture2D Texture2D;
+
+    public bool AuditEdition;
+    public bool DebugMode;
+    public bool CatchException;
+    public GameObject DebugModeGo;
+
+    public static bool Inited;
+    public static bool IsGameActivated;
+    public static string InitScriptProgress;
+    public static Text DebugText;
+    public static Initializer Instance;
+    public static List<Regist> RegistList = new List<Regist>();
+
+    #endregion
+
+    private void Awake()
+    {
+        if (!Application.isEditor)
+        {
+            Debug.unityLogger.logEnabled = false;
+        }
+
+        if (CatchException)
+        {
+            try
+            {
+                InitDataEye();
+            }
+            catch (Exception)
+            {
+
+            }
+        }
+        else
+        {
+            InitDataEye();
+        }
+
+        if (CatchException)
+        {
+            try
+            {
+                InitScript();
+            }
+            catch (Exception e)
+            {
+                Text debugText = GameObject.Find(LogoSceneLabel.DebugText).GetComponent<Text>();
+                debugText.SetAlpha(1);
+                debugText.text = InitScriptProgress + "\n" + e;
+                throw new Exception();
+            }
+        }
+        else
+        {
+            InitScript();
+        }
+    }
+
+    private void InitDataEye()
+    {
+        if (Application.platform == RuntimePlatform.IPhonePlayer)
+        {
+            DataEyeGA.Init("C5790DBD2CFE97BD18C7BE9A95482C05", DataEyeGA.PlatformType.IOS, "Official", "IOS");
+        }
+        else if (Application.isMobilePlatform)
+        {
+            DataEyeGA.Init("ADE884FAAF61A2CB45B02431A70932B8", DataEyeGA.PlatformType.ADR, "Official", "Android");
+        }
+        else if (Application.isEditor)
+        {
+            DataEyeGA.Init("ADE884FAAF61A2CB45B02431A70932B8", DataEyeGA.PlatformType.WP, "Official", "Windows");
+        }
+    }
+
+    private void InitScript()
+    {
+        int index = 1;
+
+        HttpManager.LoadMd5();
+        HttpManager.LoadMd5Dictionary();
+
+        InitScriptProgress = index++.ToString();
+        Application.targetFrameRate = 50;
+
+        InitScriptProgress = index++.ToString();
+        DontDestroyOnLoad(gameObject);
+
+        InitScriptProgress = index++.ToString();
+        HttpManager.Login(Manager.FirstTimeLoginCallback);
+
+        InitScriptProgress = index++.ToString();
+        HttpManager.GetMailAwardData();
+
+        InitScriptProgress = index++.ToString();
+        HttpManager.GetRankData();
+
+        InitScriptProgress = index++.ToString();
+        HttpManager.GetAlipayFlag();
+
+        InitScriptProgress = index++.ToString();
+        HttpManager.GetAnnounceData();
+
+        Instance = this;
+
+        InitScriptProgress = index++.ToString();
+        if (DebugMode)
+        {
+            Bundle bundle = Instantiate(DebugModeGo, transform).GetComponent<Bundle>();
+            bundle.Begin();
+        }
+        else
+        {
+            gameObject.AddComponent<Bundle>().Begin();
+        }
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddComponent<IAPManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddComponent<VisitManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddComponent<DebugManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<Auxiliary>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<ConfigManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<ResourceManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<TutorialManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<LanguageManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<AnimManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<AudioManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<AchieveManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<UIManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<SignManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<Manager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<GardenManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<PlayerManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<HttpManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<MiniGameManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<InfoBoxManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<SocialManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<NickNameManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<SFSManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<PlazaRoomManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<ChestManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<RobotManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<CDMinigamePanelManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<EnterMinigamePanelManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<PlazaroomMemberPanel>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<FriendPanel>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<AddFriendPanel>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<MessagePanel>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<FashionShowEditPage>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<FashionShowCommentPanel>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<CommentRewardManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<ChangeMousePanel>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<ChangeMouseBubble>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<FashionShowHomePage>();
+
+        InitScriptProgress = index++.ToString();
+
+        StartCoroutine(WaitToInit());
+    }
+
+
+    public static void InitEntrance()
+    {
+        if (Instance.CatchException)
+        {
+            DebugManager.TryCatch(InitGame, EnableDebugLab);
+        }
+        else
+        {
+            InitGame();
+        }
+    }
+
+    public static void InstantiatePrefabs()
+    {
+        DebugText.text = "Error code : 1";
+
+        TutorialManager.NewplayerTutorial = ConfigManager.GetBoolFormConfig(PlayerConfigLabel.NewplayerTutorial);
+        DebugText.text = "Error code : 1-1";
+
+        TutorialManager.memoryMinigameTutorial = ConfigManager.GetBoolFormConfig(PlayerConfigLabel.MemoryMinigameTutorial);
+        DebugText.text = "Error code : 1-2";
+
+        TutorialManager.visitTutorial = ConfigManager.GetBoolFormConfig(PlayerConfigLabel.VisitTutorial);
+        DebugText.text = "Error code : 1-3";
+
+        TutorialManager.dressroomTutorial = ConfigManager.GetBoolFormConfig(PlayerConfigLabel.DressroomTutorial);
+        DebugText.text = "Error code : 1-4";
+
+        TutorialManager.fashionShowTutorial = ConfigManager.GetBoolFormConfig(PlayerConfigLabel.FashionShowTutorial);
+        DebugText.text = "Error code : 1-4-1";
+
+        TutorialManager.changeMouseTutorial = ConfigManager.GetBoolFormConfig(PlayerConfigLabel.ChangeMouseTutorial);
+        DebugText.text = "Error code : 1-4-2";
+
+        TutorialManager.findSoloMinigameTutorial = ConfigManager.GetBoolFormConfig(PlayerConfigLabel.FindSoloMinigameTutorial);
+        DebugText.text = "Error code : 1-5";
+
+        TutorialManager.findMissingMinigameTutorial = ConfigManager.GetBoolFormConfig(PlayerConfigLabel.FindMissingMinigameTutorial);
+        DebugText.text = "Error code : 1-5-0";
+
+        TutorialManager.plazaRoomTutorial = ConfigManager.GetBoolFormConfig(PlayerConfigLabel.TutorialPlazaRoom);
+        DebugText.text = "Error code : 1-5-1";
+
+        TutorialManager.NewplayerTutorialIndex = ConfigManager.GetIntFormConfig(PlayerConfigLabel.NewplayerTutorialIndex);
+        DebugText.text = "Error code : 1-6";
+
+        TutorialManager.MemoryMinigameTutorialIndex = ConfigManager.GetIntFormConfig(PlayerConfigLabel.MemoryMinigameTutorialIndex);
+        DebugText.text = "Error code : 1-7";
+
+        TutorialManager.VisitTutorialIndex = ConfigManager.GetIntFormConfig(PlayerConfigLabel.VisitTutorialIndex);
+        DebugText.text = "Error code : 1-8";
+
+        TutorialManager.DressroomTutorialIndex = ConfigManager.GetIntFormConfig(PlayerConfigLabel.DressroomIndex);
+        DebugText.text = "Error code : 1-9";
+
+        TutorialManager.FindSoloMinigameTutorialIndex = ConfigManager.GetIntFormConfig(PlayerConfigLabel.FindSoloMinigameTutorialIndex);
+        DebugText.text = "Error code : 1-10";
+
+        TutorialManager.FindMissingMinigameTutorialIndex = ConfigManager.GetIntFormConfig(PlayerConfigLabel.FindMissingMinigameTutorialIndex);
+        DebugText.text = "Error code : 1-10-0";
+
+        TutorialManager.PlazaRoomTutorialIndex = ConfigManager.GetIntFormConfig(PlayerConfigLabel.TutorialIndexPlazaRoom);
+        DebugText.text = "Error code : 1-10-1";
+
+        TutorialManager.FashionShowTutorialIndex = ConfigManager.GetIntFormConfig(PlayerConfigLabel.FashionShowTutorialIndex);
+        DebugText.text = "Error code : 1-10-1";
+
+        Bundle.LoadAtlasSprites();
+
+        DebugText.text = "Error code : 7";
+        List<XmlAttributeCollection> attributeList = ConfigManager.GetDressRoomConfig();
+        attributeList.RemoveAt(0);
+        //attributeList.AddRange(Bundle.NewDressroomConfigs);
+        PlayerManager.CreateCloseItems(attributeList);
+
+        DebugText.text = "Error code : 1-11";
+        //Bundle.LoadAllDressBundleAssetsIntoDragonbone();
+        DebugText.text = "Error code : 1-11-1";
+
+        for (int i = 0; i < RegistList.Count; i++)
+        {
+            DebugText.text = "Error code : 1-12-" + i;
+            //Debug.Log(i + " " + RegistList[i].GetType());
+            RegistList[i].InstantiatePrefabs();
+        }
+
+        DebugText.text = "Error code : 2";
+    }
+
+    public static void InitGame()
+    {
+        InstantiatePrefabs();
+
+        for (int i = 0; i < RegistList.Count; i++)
+        {
+            DebugText.text = "Error code : 2-" + i;
+            RegistList[i].RegistReference();
+        }
+
+        DebugText.text = "Error code : 3";
+
+        for (int i = 0; i < RegistList.Count; i++)
+        {
+            DebugText.text = "Error code : 3-" + i;
+            RegistList[i].FirstInit();
+        }
+
+        DebugText.text = "Error code : 4";
+
+        for (int i = 0; i < RegistList.Count; i++)
+        {
+            DebugText.text = "Error code : 4-" + i;
+            RegistList[i].SecondInit();
+        }
+
+        DebugText.text = "Error code : 5";
+
+        for (int i = 0; i < RegistList.Count; i++)
+        {
+            DebugText.text = "Error code : 5-" + i;
+            RegistList[i].ThirdInit();
+
+            RegistList[i].enabled = true;
+        }
+
+        DebugText.text = "Error code : 6";
+
+        Inited = true;
+
+        if (HttpManager.IsAnnounceReady)
+        {
+            ResourceManager.SetActive(CanvasLabel.C_NotifyParent, true);
+            ResourceManager.Get(CanvasLabel.C_Notify).TweenForCG();
+        }
+
+        LeftSidePanel.Init();
+
+        DebugText.text = "Error code : 7-1";
+        PlayerManager.InitDressRoom();
+
+        DebugText.text = "Error code : 8";
+        Manager.FirstTimeLoginCallback(new JsonData());
+
+        //debugLab.text = "Error code : 9";
+        //SFSManager.GardenSmartFox.Connector.Connect();
+
+        DebugText.text = "Error code : 10";
+        StringFilter.Init();
+
+        DebugText.text = "Error code : 11";
+        IAPManager.Init();
+
+        DebugText.text = "Error code : 12";
+        VisitManager.Init();
+
+        DebugText.text = "Error code : 13";
+        SocialManager.InitRankPanel();
+
+        if (Instance.DebugMode)
+        {
+            ActivateGame();
+        }
+        else
+        {
+            ShowLoadingPanel();
+        }
+    }
+
+    public IEnumerator WaitToInit()
+    {
+        while (!Logo.Complete)
+        {
+            yield return null;
+        }
+
+        while (!Bundle.Complete)
+        {
+            yield return null;
+        }
+
+        //EnableDebugLab();
+        DebugText = GameObject.Find(CanvasLabel.U_DebugLab).GetComponent<Text>();
+        //DebugText.text = "W3";
+
+        Bundle.CopyAssetBundles();
+        while (!Bundle.CopyComplete)
+        {
+            yield return null;
+        }
+
+        ResourceManager.Get(CanvasLabel.AJ_UpdatePanel).AddComponent<UpdatePanel>().Init();
+        bool haveError = Bundle.UpdateAssetBundles();
+
+        while (haveError)
+        {
+            yield return null;
+        }
+
+        //DebugText.text = "W4";
+        while (!Bundle.UpdateComplete)
+        {
+            //DebugText.text = "W5";
+            yield return null;
+        }
+
+        //UpdatePanel.Show();
+        //while (true)
+        //{
+        //    yield return null;
+        //}
+
+        //DebugText.text = "W5-2";
+        SetWarningTitle();
+
+        //DebugText.text = "W6";
+        while (ConfigManager.PlayerDocumentDamageFlag)
+        {
+            //DebugText.text = "W7";
+            yield return null;
+        }
+
+        Language.Initialize();
+        UIManager.Init(Instance.DebugMode);
+        AudioManager.Init();
+        InitEntrance();
+    }
+
+
+    private static float LoadingDelayTime = 3f;
+    private static void ShowLoadingPanel()
+    {
+        DelayCall.Call(1, () =>
+        {
+            Canvas canvas = ResourceManager.Get(CanvasLabel.U_Parent).AddComponent<Canvas>();
+            ResourceManager.Get(CanvasLabel.U_Parent).AddComponent<GraphicRaycaster>();
+            canvas.overrideSorting = true;
+            canvas.sortingOrder = 5;
+        });
+
+        ResourceManager.Get(CanvasLabel.U_Group).TweenForCG();
+        ResourceManager.Get<CanvasGroup>(CanvasLabel.C_Main).alpha = 0;
+
+        ResourceManager.SetText(CanvasLabel.U_Lab, Language.GetStr(LanguageLabel.UI__U_Lab, Application.systemLanguage));
+
+        //SetWarningTitleAndText();
+
+        Auxiliary.Instance.DelayCall(ActivateGame, LoadingDelayTime);
+    }
+
+    public static void SetWarningTitle()
+    {
+        SystemLanguage language = Application.systemLanguage;
+
+        if (Instance.AuditEdition)
+        {
+            language = SystemLanguage.ChineseSimplified;
+        }
+
+        ResourceManager.SetText(CanvasLabel.U_WarningTitle, Language.GetStr(LanguageLabel.UI__U_WarningTitle, language));
+    }
+
+    public static void SetWarningText()
+    {
+        SystemLanguage language = Application.systemLanguage;
+
+        if (Instance.AuditEdition)
+        {
+            language = SystemLanguage.ChineseSimplified;
+        }
+
+        if (language == SystemLanguage.ChineseSimplified)
+        {
+            ResourceManager.SetActive(CanvasLabel.U_WarningTitle, false);
+            ResourceManager.SetText(CanvasLabel.U_WarningText, Language.GetStr(LanguageLabel.UI__U_WarningText, language));
+        }
+        else if (language == SystemLanguage.ChineseTraditional)
+        {
+            ResourceManager.SetActive(CanvasLabel.U_WarningTitle, false);
+            ResourceManager.SetText(CanvasLabel.U_WarningText, Language.GetStr(LanguageLabel.UI__U_WarningText, language));
+        }
+        else
+        {
+            ResourceManager.SetActive(CanvasLabel.U_WarningText, false);
+        }
+    }
+
+
+    private static void ActivateGame()
+    {
+        ResourceManager.Get<CanvasGroup>(CanvasLabel.C_Main).alpha = 1;
+
+        TweenRoot tweenRoot = ResourceManager.Get(CanvasLabel.U_LoadingPanel).TweenForCG();
+        tweenRoot.AddEventOnetime
+        (
+            EventType.ForwardFinish,
+            () => ResourceManager.Get(CanvasLabel.U_Icon).GetTweenEuler().Pause()
+        );
+
+        AudioManager.GardenThemeAudio.TweenForAudio();
+        IsGameActivated = true;
+    }
+
+    public static void EnableDebugLab()
+    {
+        ResourceManager.Get<CanvasGroup>(CanvasLabel.U_Group).alpha = 0;
+        ResourceManager.Get<Text>(CanvasLabel.U_DebugLab).enabled = true;
+    }
 }

+ 1547 - 1538
Assets/Script/Manage/Manager.cs

@@ -1,1539 +1,1548 @@
-using LitJson;
-
-using UnityEngine;
-using UnityEngine.UI;
-using UnityEngine.Events;
-using UnityEngine.Analytics;
-using UnityEngine.EventSystems;
-
-using System;
-using System.Xml;
-using System.Collections;
-using System.Collections.Generic;
-
-public class Manager : Regist 
-{
-    #region Config
-
-    #region 成就
-
-    public static double PlayADsAmt
-    {
-        get { return playADsAmt; }
-        set
-        {
-            playADsAmt = value;
-
-            AchieveManager.UpdateStatus(AchieveType.PlayADsAmt, playADsAmt);
-        }
-    }
-    private static double playADsAmt;
-
-    public static double UseSkillAmt
-    {
-        get { return useSkillAmt; }
-        set
-        {
-            useSkillAmt = value;
-
-            AchieveManager.UpdateStatus(AchieveType.UseSkillAmt, useSkillAmt);
-        }
-    }
-    private static double useSkillAmt;
-
-    public static double SignAmt
-    {
-        get { return signAmt; }
-        set
-        {
-            signAmt = value;
-
-            AchieveManager.UpdateStatus(AchieveType.SignAmt, signAmt);
-        }
-    }
-    private static double signAmt;
-
-    public static double CloseAmt
-    {
-        get { return closeAmt; }
-        set
-        {
-            closeAmt = value;
-
-            AchieveManager.UpdateStatus(AchieveType.CloseAmt, closeAmt);
-        }
-    }
-    private static double closeAmt;
-
-    public static double ShareAmt
-    {
-        get { return shareAmt; }
-        set
-        {
-            shareAmt = value;
-
-            AchieveManager.UpdateStatus(AchieveType.ShareAmt, shareAmt);
-        }
-    }
-    private static double shareAmt;
-
-    public static double PlayMinigameAmt
-    {
-        get { return playMinigameAmt; }
-        set
-        {
-            playMinigameAmt = value;
-
-            AchieveManager.UpdateStatus(AchieveType.PlayMinigameAmt, playMinigameAmt);
-        }
-    }
-    private static double playMinigameAmt;
-
-    public static double AllElfLevel
-    {
-        get { return allElfLevel; }
-        set
-        {
-            allElfLevel = value;
-
-            AchieveManager.UpdateStatus(AchieveType.AllElfLevel, allElfLevel);
-        }
-    }
-    private static double allElfLevel;
-
-    public static double TotalCoin
-    {
-        get { return totalCoin; }
-        set
-        {
-            totalCoin = value;
-
-            AchieveManager.UpdateStatus(AchieveType.TotalCoin, totalCoin);
-        }
-    }
-    private static double totalCoin;
-
-    public static double TotalFlowerAwardCoin
-    {
-        get { return totalFlowerAwardCoin; }
-        set
-        {
-            totalFlowerAwardCoin = value;
-            
-            AchieveManager.UpdateStatus(AchieveType.TotalFlowerAwardCoin, totalFlowerAwardCoin);
-        }
-    }
-    private static double totalFlowerAwardCoin;
-
-    public static double TotalVisitPerson
-    {
-        get { return totalVisitPerson; }
-        set
-        {
-            totalVisitPerson = value;
-
-            AchieveManager.UpdateStatus(AchieveType.TotalVisitPerson, totalVisitPerson);
-        }
-    }
-    private static double totalVisitPerson;
-
-    public static double TotalSpendDiamond
-    {
-        get { return totalSpendDiamond; }
-        set
-        {
-            totalSpendDiamond = value;
-
-            AchieveManager.UpdateStatus(AchieveType.TotalSpendDiamond, totalSpendDiamond);
-        }
-    }
-    private static double totalSpendDiamond;
-
-    public static double CreateRoomAmt
-    {
-        get { return createRoomAmt; }
-        set
-        {
-            createRoomAmt = value;
-
-            AchieveManager.UpdateStatus(AchieveType.CreateRoomAmt, createRoomAmt);
-        }
-    }
-    private static double createRoomAmt;
-
-    public static double CreateChestAmt
-    {
-        get { return createChestAmt; }
-        set
-        {
-            createChestAmt = value;
-
-            AchieveManager.UpdateStatus(AchieveType.CreateChestAmt, createChestAmt);
-        }
-    }
-    private static double createChestAmt;
-
-    public static double CreateLuckyChestAmt
-    {
-        get { return createLuckyChestAmt; }
-        set
-        {
-            createLuckyChestAmt = value;
-
-            AchieveManager.UpdateStatus(AchieveType.CreateLuckyChestAmt, createLuckyChestAmt);
-        }
-    }
-    private static double createLuckyChestAmt;
-
-    public static double CreateGuessColorChestAmt
-    {
-        get { return createGuessColorChestAmt; }
-        set
-        {
-            createGuessColorChestAmt = value;
-
-            AchieveManager.UpdateStatus(AchieveType.CreateGuessColorChestAmt, createGuessColorChestAmt);
-        }
-    }
-    private static double createGuessColorChestAmt;
-
-    public static double CreateGuessNumberChestAmt
-    {
-        get { return createGuessNumberChestAmt; }
-        set
-        {
-            createGuessNumberChestAmt = value;
-
-            AchieveManager.UpdateStatus(AchieveType.CreateGuessNumberChestAmt, createGuessNumberChestAmt);
-        }
-    }
-    private static double createGuessNumberChestAmt;
-
-    public static double GetChestAwardAmt
-    {
-        get { return getChestAwardAmt; }
-        set
-        {
-            getChestAwardAmt = value;
-
-            AchieveManager.UpdateStatus(AchieveType.GetChestAwardAmt, getChestAwardAmt);
-        }
-    }
-    private static double getChestAwardAmt;
-
-    #endregion
-
-    public static Action<int> OnLevelChange;
-    public static Action<double> OnCoinChange;
-    public static Action<double> OnDiamondChange;
-
-    public static int GardenLevel
-    {
-        get { return gardenLevel; }
-        set
-        {
-            gardenLevel = value;
-
-            if (!Inited)
-            {
-                return;
-            }
-
-            LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.C_LevelText), new MulLanStr(LanguageLabel.UI__C_Level), gardenLevel.ToString());
-
-            VisitManager.UpdateVisitCost();
-
-            AchieveManager.UpdateStatus(AchieveType.GardenLevel, gardenLevel);
-            
-            for (int i = 0; i < SkillList.Count; i++)
-            {
-                SkillList[i].UpdateStatus();
-            }
-
-            foreach (var kv in PlayerManager.CloseItemDictionary)
-            {
-                kv.Value.OnLevelChange();
-            }
-
-            if (OnLevelChange != null)
-            {
-                OnLevelChange.Invoke(gardenLevel);
-            }
-
-            if (gardenLevel >= TutorialManager.MemoryMinigameTutorialLevel)
-            {
-                if (TutorialManager.memoryMinigameTutorial)
-                {
-                    TutorialManager.MemoryMinigameTutorial = true;
-                }
-            }
-
-            if (GardenLevel < TutorialManager.DressroomTutorialLevel)
-            {
-                ResourceManager.Get<Image>(CanvasLabel.C_DressRoom).material = Lib.GrayMat;
-            }
-            else
-            {
-                ResourceManager.Get<Image>(CanvasLabel.C_DressRoom).material = null;
-            }
-
-            if (GardenManager.TotalUnlockFlower >= TutorialManager.MinFlowerForFindSoloGame && gardenLevel >= TutorialManager.FindSoloMinigameTutorialLevel)
-            {
-                if (TutorialManager.findSoloMinigameTutorial)
-                {
-                    TutorialManager.PlayFindSoloGame();
-                }
-            }
-
-            if (GardenManager.TotalUnlockFlower >= TutorialManager.MinFlowerForFindMissingGame && gardenLevel >= TutorialManager.FindMissingMinigameTutorialLevel)
-            {
-                if (TutorialManager.findMissingMinigameTutorial)
-                {
-                    TutorialManager.PlayFindMissingGame();
-                }
-            }
-
-            if (gardenLevel >= TutorialManager.CommentTutorialLevel)
-            {
-                ResourceManager.Get(CanvasLabel.C_CommentParent).TweenForCG();
-            }
-
-            if (gardenLevel >= TutorialManager.VisitTutorialLevel)
-            {
-                if (TutorialManager.visitTutorial)
-                {
-                    TutorialManager.ClickVisitBtn();
-                    return;
-                }
-                else
-                {
-                    ResourceManager.SetActive(CanvasLabel.C_Visit, true);
-                }
-            }
-
-            if (gardenLevel >= TutorialManager.DressroomTutorialLevel)
-            {
-                if (TutorialManager.dressroomTutorial)
-                {
-                    TutorialManager.ClickDressroomButton();
-                    return;
-                }
-            }
-
-            if (gardenLevel >= TutorialManager.PlazaRoomTutorialLevel)
-            {
-                if (TutorialManager.plazaRoomTutorial)
-                {
-                    TutorialManager.ClickPlazaRoomBtn();
-                    return;
-                }
-                else
-                {
-                    ResourceManager.SetActive(CanvasLabel.C_EnterPlazaRoom, true);
-                    ResourceManager.SetActive(CanvasLabel.C_EnterPlazaRoom0, true);
-                }
-            }
-
-            if (gardenLevel >= TutorialManager.FashionShowTutorialLevel)
-            {
-                if (TutorialManager.fashionShowTutorial)
-                {
-                    TutorialManager.BeginFashionShowTutorial();
-                    return;
-                }
-            }
-        }
-    }
-    private static int gardenLevel;
-
-    public static float Person
-    {
-        get { return person; }
-        set
-        {
-            person = value;
-            ResourceManager.SetText(CanvasLabel.F_PersonLab,  Auxiliary.ShrinkBigNumberStr(CurrentPerson*60));
-        }
-    }
-    private static float person;
-    public static List<string> ExtraPersonSourceSpritesName = new List<string>();
-
-    public static float CoinPerson
-    {
-        get { return coinPerson; }
-        set
-        {
-            coinPerson = value;
-
-            ResourceManager.SetText(CanvasLabel.F_CoinPersonLab, Auxiliary.ShrinkBigNumberStr(CurrentCoinPerson));
-        }
-    }
-    private static float coinPerson;
-    public static List<string> ExtraCoinPersonSourceSpritesName = new List<string>();
-
-    public static float SkillPerson
-    {
-        get { return skillPerson; }
-        set
-        {
-            skillPerson = value;
-
-            //TweenOutline tween = ResourceManager.Get(CanvasLabel.F_PersonLab).GetTweenOutline();
-
-            //if (skillPerson.Equal(0))
-            //{
-            //    tween.Pause();
-
-            //    tween.Target.enabled = false;
-            //}
-            //else
-            //{
-            //    if (tween.InPause)
-            //    {
-            //        tween.Resume();
-
-            //        tween.Target.enabled = true;
-            //    }
-            //    else
-            //    {
-            //        tween.StartForward();
-            //    }
-            //}
-
-            Person = Person;
-        }
-    }
-    public static float skillPerson;
-
-    public static float TempSkillPerson
-    {
-        get { return tempSkillPerson; }
-        set
-        {
-            tempSkillPerson = value;
-
-            TweenOutline tween = ResourceManager.Get(CanvasLabel.F_PersonLab).GetTweenOutline();
-            
-            if (tempSkillPerson.Equal(0) && tempSkillPersonBuff.Equal(0))
-            {
-                tween.Pause();
-
-                tween.Target.enabled = false;
-            }
-            else
-            {
-                if (tween.InPause)
-                {
-                    tween.Resume();
-
-                    tween.Target.enabled = true;
-                }
-                else
-                {
-                    tween.StartForward();
-                }
-            }
-
-            Person = Person;
-        }
-    }
-    public static float tempSkillPerson;
-
-    public static float SkillPersonBuff
-    {
-        get { return skillPersonBuff; }
-        set
-        {
-            skillPersonBuff = value;
-
-            Person = Person;
-        }
-    }
-    public static float skillPersonBuff;
-
-    public static float TempSkillPersonBuff
-    {
-        get { return tempSkillPersonBuff; }
-        set
-        {
-            tempSkillPersonBuff = value;
-
-            TweenOutline tween = ResourceManager.Get(CanvasLabel.F_PersonLab).GetTweenOutline();
-
-            if (tempSkillPerson.Equal(0) && tempSkillPersonBuff.Equal(0))
-            {
-                tween.Pause();
-
-                tween.Target.enabled = false;
-            }
-            else
-            {
-                if (tween.InPause)
-                {
-                    tween.Resume();
-
-                    tween.Target.enabled = true;
-                }
-                else
-                {
-                    tween.StartForward();
-                }
-            }
-
-            Person = Person;
-        }
-    }
-    public static float tempSkillPersonBuff;
-
-    public static float SkillCoinPerson
-    {
-        get { return skillCoinPerson; }
-        set
-        {
-            skillCoinPerson = value;
-
-            CoinPerson = CoinPerson;
-        }
-    }
-    public static float skillCoinPerson;
-
-    public static float TempSkillCoinPerson
-    {
-        get { return tempSkillCoinPerson; }
-        set
-        {
-            tempSkillCoinPerson = value;
-
-            TweenOutline tween = ResourceManager.Get(CanvasLabel.F_CoinPersonLab).GetTweenOutline();
-
-            if (tempSkillCoinPerson.Equal(0) && tempSkillCoinPersonBuff.Equal(0))
-            {
-                tween.Pause();
-
-                tween.Target.enabled = false;
-            }
-            else
-            {
-                if (tween.InPause)
-                {
-                    tween.Resume();
-
-                    tween.Target.enabled = true;
-                }
-                else
-                {
-                    tween.StartForward();
-                }
-            }
-
-            CoinPerson = CoinPerson;
-        }
-    }
-    public static float tempSkillCoinPerson;
-
-    public static float SkillCoinPersonBuff
-    {
-        get { return skillCoinPersonBuff; }
-        set
-        {
-            skillCoinPersonBuff = value;
-
-            CoinPerson = CoinPerson;
-        }
-    }
-    public static float skillCoinPersonBuff;
-
-    public static float TempSkillCoinPersonBuff
-    {
-        get { return tempSkillCoinPersonBuff; }
-        set
-        {
-            tempSkillCoinPersonBuff = value;
-
-            TweenOutline tween = ResourceManager.Get(CanvasLabel.F_CoinPersonLab).GetTweenOutline();
-
-            if (tempSkillCoinPersonBuff.Equal(0) && tempSkillCoinPerson.Equal(0))
-            {
-                tween.Pause();
-
-                tween.Target.enabled = false;
-            }
-            else
-            {
-                if (tween.InPause)
-                {
-                    tween.Resume();
-
-                    tween.Target.enabled = true;
-                }
-                else
-                {
-                    tween.StartForward();
-                }
-            }
-
-            CoinPerson = CoinPerson;
-        }
-    }
-    public static float tempSkillCoinPersonBuff;
-
-    public static float IncomeBuff
-    {
-        get { return SkillCoinPersonBuff + FlowerPlus; }
-    }
-
-    public static float FlowerPlus
-    {
-        get { return flowerPlus; }
-        set
-        {
-            flowerPlus = value;
-        }
-    }
-    public static float flowerPlus;
-
-    public static float CurrentPerson
-    {
-        get
-        {
-            //Debug.Log(Person * (1 + SkillPersonBuff + TempSkillPersonBuff) + SkillPerson + TempSkillPerson);
-            return Person*(1 + SkillPersonBuff + TempSkillPersonBuff) + SkillPerson + TempSkillPerson;
-        }
-    }
-    public static float CurrentCoinPerson
-    {
-        get
-        {
-            //Debug.Log(CoinPerson * (1 + SkillCoinPersonBuff + TempSkillCoinPersonBuff) + SkillCoinPerson + TempSkillCoinPerson);
-            return CoinPerson*(1 + SkillCoinPersonBuff + TempSkillCoinPersonBuff) + SkillCoinPerson + TempSkillCoinPerson;
-        }
-    }
-
-    public static double Coin
-    {
-        get { return coin; }
-        set
-        {
-            coin = value;
-            
-            ResourceManager.SetText(CanvasLabel.F_CoinLab, Auxiliary.ShrinkBigNumberStr(coin));
-            ResourceManager.SetText(CanvasLabel.C_CoinLab, Auxiliary.ShrinkBigNumberStr(coin));
-            ResourceManager.SetText(CanvasLabel.P_CoinLab, Auxiliary.ShrinkBigNumberStr(coin));
-
-            AchieveManager.UpdateStatus(AchieveType.CurrentCoin, coin);
-
-            OnCoinChange.SafeInvoke(coin);
-        }
-    }
-    public static double coin;
-
-    public static double Diamond
-    {
-        get { return diamond; }
-        set
-        {
-            diamond = value;
-
-            ResourceManager.SetText(CanvasLabel.F_DiamondLab, Auxiliary.ShrinkBigNumberStr(diamond));
-            ResourceManager.SetText(CanvasLabel.P_DiamondLab, Auxiliary.ShrinkBigNumberStr(diamond));
-
-            OnDiamondChange.SafeInvoke(diamond);
-        }
-    }
-    public static double diamond;
-
-    public static bool MinigameFlag;
-    public static bool UploadConfigFlag;
-    public static bool LoginFlag;
-    public static bool ReactiveFlag;
-    public static bool DownloadConfigFlag;
-    public static bool SceneSwitchFlag;
-
-    public static bool Inited;
-    public static bool IsFirstFrame = true;
-    public static bool InBackground;
-
-    public static float IncomeDisplayTime = 60f;
-    public static float IncomeCircleTime = 10;
-    public static float IncomeCircleTimer;
-    public static float CircleIncome
-    {
-        get
-        {
-            return CurrentPerson * IncomeCircleTime * CurrentCoinPerson * (1 + FlowerPlus);
-        }
-    }
-
-    public static float GameBeginTime;
-    public static bool AlreadyGetOfflineIncome;
-    public static bool OfflineFlag;
-    public static float OfflineTime;
-    public static string OfflineIncomeFml;
-    public static double OfflineMaxCoin;
-    public static double OfflineMaxTime;
-    public static double OfflineMinTime = 120;
-
-    public static float InputDetectTime = 45;
-    public static float InputDetectTimer;
-
-    public static float LoginTime = 10f;
-    public static float LoginTimer;
-
-    public static float MinigameCDTimer;
-
-    public static float UploadConfigTime = 60f;
-    public static float UploadConfigTimer;
-
-    public static Manager Instance;
-    public static DateTime LastQuitTime;
-
-    public static List<Skill> UsingSkillList = new List<Skill>();
-    public static List<Skill> CoolSkillList = new List<Skill>();
-    public static List<Skill> OfflineCoolSkillList = new List<Skill>();
-    public static List<List<Skill>> OfflineUsingSkillList = new List<List<Skill>>();
-
-    public static List<SkillRoot> SkillList = new List<SkillRoot>();
-    public static Dictionary<string, SkillRoot> SkillDictionary = new Dictionary<string, SkillRoot>();
-
-    #endregion
-    
-    private void Update()
-    {
-        LoginThread();
-        
-        if (TutorialManager.NewplayerTutorial)
-        {
-            return;
-        }
-
-        InputDetectThread();
-
-        ProcessSkillThread();
-
-        MinigameCDThread();
-
-        UploadConfigThread();
-
-        IncomeCircleThread();
-    }
-
-    private void InputDetectThread()
-    {
-        //if (VisitManager.InVisit)
-        //{
-        //    return;
-        //}
-
-        if (Auxiliary.AnyKeyUp)
-        {
-            InputDetectTimer = 0;
-
-            ResourceManager.Get(CanvasLabel.C_Group).TweenForCG();
-        }
-        else
-        {
-            InputDetectTimer += Time.deltaTime;
-
-            if (InputDetectTimer >= InputDetectTime)
-            {
-                InputDetectTimer = 0;
-
-                ResourceManager.Get(CanvasLabel.C_Group).TweenBacCG();
-            }
-        }
-    }
-
-    private void ProcessSkillThread()
-    {
-        for (int i = 0; i < UsingSkillList.Count; i++)
-        {
-            if (UsingSkillList[i].DoUpdate())
-            {
-                UsingSkillList.RemoveAt(i--);
-            }
-        }
-
-        for (int i = 0; i < CoolSkillList.Count; i++)
-        {
-            if (CoolSkillList[i].DoCD())
-            {
-                CoolSkillList.RemoveAt(i--);
-            }
-        }
-    }
-
-    private void MinigameCDThread()
-    {
-        if (!MinigameFlag)
-        {
-            MinigameCDTimer -= Time.deltaTime;
-
-            ResourceManager.SetText(CanvasLabel.C_MiniGameLab, Mathf.CeilToInt(MinigameCDTimer).ToString());
-
-            if (MinigameCDTimer < 0)
-            {
-                MinigameFlag = true;
-
-                ResourceManager.Get(CanvasLabel.C_MiniGame).TweenBacRect();
-
-                CDMinigamePanelManager.EnableCDButton();
-
-                ResourceManager.SetText(CanvasLabel.C_MiniGameLab, "");
-
-                StaticsManager.GetInstance().RewardItem(StaticsManager.ItemID.获得小游戏, StaticsManager.ItemType.小游戏, "1", StaticsManager.ConsumeModule.None);
-            }
-        }
-    }
-
-    private void UploadConfigThread()
-    {
-        if (DownloadConfigFlag)
-        {
-            return;
-        }
-
-        UploadConfigTimer += Time.deltaTime;
-
-        if (UploadConfigTimer >= UploadConfigTime)
-        {
-            UploadConfigTimer = 0;
-
-            if (!PlayerPrefManager.GetBool(PlayerPrefManager.INTERACT_CONFIG, false))
-            {
-                HttpManager.GetSelfConfig();
-            }
-            else
-            {
-                HttpManager.UploadConfig();
-            }
-        }
-    }
-
-    private void LoginThread()
-    {
-        LoginTimer += Time.deltaTime;
-
-        if (LoginTimer >= LoginTime)
-        {
-            LoginTimer = 0;
-
-            HttpManager.Login();
-
-            StaticsManager.GetInstance().Online();
-        }
-    }
-
-    private void IncomeCircleThread()
-    {
-        IncomeCircleTimer -= Time.deltaTime;
-
-        if (IncomeCircleTimer < 0)
-        {
-            IncomeCircleTimer = IncomeCircleTime;
-
-            TotalVisitPerson += CurrentPerson * IncomeCircleTime;
-            
-            float circleIncome = CircleIncome;
-
-            AddCoin(circleIncome, StaticsManager.ItemID.获得金币, StaticsManager.ConsumeModule.Income);
-
-            ResourceManager.Get(CanvasLabel.C_IncomeLab).TweenReForGra();
-            ResourceManager.Get(CanvasLabel.C_IncomeLab).TweenReForVec();
-            ResourceManager.SetText(CanvasLabel.C_IncomeLab, "+" + Auxiliary.ShrinkBigNumberStr(circleIncome, 0));
-        }
-    }
-
-
-    public static void AddCoin(double amt, StaticsManager.ItemID itemId, StaticsManager.ConsumeModule consumeModule)
-    {
-        Coin += amt;
-
-        if (amt > 0)
-        {
-            TotalCoin += amt;
-
-            StaticsManager.GetInstance().RewardItem(itemId, StaticsManager.ItemType.金币, amt.ToString("0"), consumeModule);
-        }
-    }
-
-    public static void AddDiamond(double amt, StaticsManager.ItemID itemId, StaticsManager.ConsumeModule consumeModule)
-    {
-        Diamond += amt;
-
-        if (amt > 0)
-        {
-            StaticsManager.GetInstance().RewardItem(itemId, StaticsManager.ItemType.钻石, amt.ToString("0"), consumeModule);
-        }
-    }
-
-
-    public override void Reactive()
-    {
-        foreach (var kv in SkillDictionary)
-        {
-            kv.Value.Reactive();
-        }
-
-        InitAllSkill(false);
-        GetOfflineIncome();
-
-        SignManager.ShowPanels();
-    }
-
-    public override void InstantiatePrefabs()
-    {
-        #region 生成技能条
-
-        #region 读技能配置
-
-        List<XmlAttributeCollection> attributeList = ConfigManager.GetSkillConfig();
-
-        for (int i = 0; i < attributeList.Count; i++)
-        {
-            SkillRoot skillRoot;
-
-            #region MyRegion
-
-            if (attributeList[i].Count == 18)
-            {
-                skillRoot = new Pack(attributeList[i]);
-            }
-            else if (attributeList[i].Count == 24)
-            {
-                skillRoot = new Ability(attributeList[i]);
-            }
-            else if (attributeList[i].Count == 34)
-            {
-                if (string.IsNullOrEmpty(attributeList[i][4].Value))
-                {
-                    skillRoot = new Skill(attributeList[i]);
-                }
-                else
-                {
-                    skillRoot = new BigSkill(attributeList[i]);
-                }
-            }
-            else
-            {
-                throw new Exception(attributeList[i].Count.ToString());
-            }
-
-            #endregion
-
-            SkillDictionary.Add(skillRoot.FullID, skillRoot);
-            SkillList.Add(skillRoot);
-        }
-
-        SkillList.Sort(SkillRoot.Sort);
-
-        #endregion
-
-        for (int i = 0; i < SkillList.Count; i++)
-        {
-            if (SkillList[i].SkillTab != SkillTab.Null)
-            {
-                ResourceManager.GetSkillItem(SkillList[i]);
-            }
-        }
-
-        #endregion
-    }
-
-    public override void FirstInit()
-    {
-        ResourceManager.Get<Graphic>(CanvasLabel.F_Elf).material = Lib.GrayMat;
-        ResourceManager.Get<Graphic>(CanvasLabel.F_Store).material = Lib.GrayMat;
-        ResourceManager.Get<Graphic>(CanvasLabel.F_Magic).material = Lib.GrayMat;
-
-        ResourceManager.Get<Graphic>(CanvasLabel.F_ElfLab).material = Lib.GrayMat;
-        ResourceManager.Get<Graphic>(CanvasLabel.F_StoreLab).material = Lib.GrayMat;
-        ResourceManager.Get<Graphic>(CanvasLabel.F_MagicLab).material = Lib.GrayMat;
-
-        ResourceManager.Get<Button>(CanvasLabel.F_Elf).interactable = false;
-        ResourceManager.Get<Button>(CanvasLabel.F_Store).interactable = false;
-        ResourceManager.Get<Button>(CanvasLabel.F_Magic).interactable = false;
-
-
-        List<XmlAttributeCollection> attributeList = ConfigManager.GetSkillList();
-
-        for (int i = 0; i < attributeList.Count; i++)
-        {
-            SkillRoot skillRoot = SkillDictionary[attributeList[i][0].Value];
-
-            if (!(skillRoot is Skill))
-            {
-                skillRoot.RegistReference();
-
-                skillRoot.Init(true, OfflineTime, OfflineUsingSkillList, attributeList[i]);
-            }
-        }
-    }
-
-    public override void SecondInit()
-    {
-        Instance = this;
-
-        Coin = ConfigManager.GetDoubleFormConfig(PlayerConfigLabel.Coin);
-        Diamond = ConfigManager.GetDoubleFormConfig(PlayerConfigLabel.Diamond);
-        MinigameCDTimer = ConfigManager.GetFloatFormConfig(PlayerConfigLabel.MiniTimer);
-        IncomeCircleTimer = ConfigManager.GetFloatFormConfig(PlayerConfigLabel.CircleTimer);
-
-        if (MinigameCDTimer > 0)
-        {
-            ResourceManager.Get(CanvasLabel.C_MiniGame).TweenForRect();
-            if (ConfigManager.GetBoolFormConfig(PlayerConfigLabel.MinigameCoolFlag))
-            {
-                CDMinigamePanelManager.DisableCDButton();
-            }
-        }
-        else
-        {
-            MinigameFlag = true;
-        }
-
-        HttpManager.ID = ConfigManager.GetStringFormConfig(PlayerConfigLabel.ID);
-        HttpManager.SerialNumber = ConfigManager.GetStringFormConfig(PlayerConfigLabel.SerialNumber);
-
-        List<string> offlineList = ConfigManager.GetOfflineConfig();
-
-        OfflineMaxCoin = Auxiliary.StringToLong(offlineList[1], 999999999999999999);
-        OfflineMaxTime = Auxiliary.StringToLong(offlineList[2], 999999999999999999);
-        OfflineIncomeFml = offlineList[0];
-
-
-        List<double> dataList = ConfigManager.GetAchieveValues();
-
-        PlayADsAmt = dataList[0];
-        AllElfLevel = dataList[4];
-        UseSkillAmt = dataList[1];
-        SignAmt = dataList[2];
-        ShareAmt = dataList[3];
-        TotalFlowerAwardCoin = dataList[6];
-        TotalVisitPerson = dataList[7];
-        TotalSpendDiamond = dataList[8];
-        PlayMinigameAmt = dataList[5];
-        CreateRoomAmt = dataList[9];
-        CreateChestAmt = dataList[10];
-        CreateLuckyChestAmt = dataList[11];
-        CreateGuessColorChestAmt = dataList[12];
-        CreateGuessNumberChestAmt = dataList[13];
-        GetChestAwardAmt = dataList[14];
-    }
-
-
-    public static void InitAllSkill(bool firstRegist)
-    {
-        OfflineFlag = false;
-        float realOfflineTime = 0;
-
-        ResourceManager.SetActive(CanvasLabel.Ba_Lab2, false);
-
-        if (HttpManager.IsConnect && ConfigManager.GetBoolFormConfig(PlayerConfigLabel.QuitFlag))
-        {
-            AlreadyGetOfflineIncome = true;
-            LastQuitTime = DateTime.Parse(ConfigManager.GetStringFormConfig(PlayerConfigLabel.QuitTime));
-
-            OfflineTime = (float)HttpManager.CurrentDateTime.Subtract(LastQuitTime).TotalSeconds;
-
-            MinigameCDTimer -= OfflineTime;
-
-            if (OfflineTime <= OfflineMinTime)
-            {
-                realOfflineTime = OfflineTime;
-                OfflineTime = 0;
-            }
-            else
-            {
-                OfflineFlag = true;
-            }
-
-            if (OfflineTime > OfflineMaxTime)
-            {
-                OfflineTime = (long)OfflineMaxTime;
-
-                ResourceManager.SetText(CanvasLabel.Ba_Lab2, Language.GetStr(LanguageLabel.UI__Ba_Lab2));
-                ResourceManager.SetActive(CanvasLabel.Ba_Lab2, true);
-            }
-        }
-        else
-        {
-            if (ConfigManager.GetBoolFormConfig(PlayerConfigLabel.QuitFlag))
-            {
-                AlreadyGetOfflineIncome = false;
-                LastQuitTime = DateTime.Parse(ConfigManager.GetStringFormConfig(PlayerConfigLabel.QuitTime));
-                GameBeginTime = Time.time;
-            }
-        }
-
-
-        OfflineUsingSkillList = new List<List<Skill>>();
-        OfflineCoolSkillList = new List<Skill>();
-
-        if (OfflineTime > IncomeCircleTimer)
-        {
-            int circle = 1 + Mathf.FloorToInt((OfflineTime - IncomeCircleTimer) / IncomeCircleTime);
-
-            for (int i = 0; i < circle; i++)
-            {
-                OfflineUsingSkillList.Add(new List<Skill>());
-            }
-        }
-
-
-        List<XmlAttributeCollection> attributeList = ConfigManager.GetSkillList();
-
-        for (int i = 0; i < attributeList.Count; i++)
-        {
-            SkillRoot skillRoot = SkillDictionary[attributeList[i][0].Value];
-
-            if (skillRoot is Skill)
-            {
-                skillRoot.RegistReference();
-
-                skillRoot.Init(firstRegist, OfflineTime, OfflineUsingSkillList, attributeList[i]);
-            }
-        }
-
-        if (OfflineFlag == false)
-        {
-            foreach (var skill in CoolSkillList)
-            {
-                skill.CoolTimer -= realOfflineTime;
-            }
-        }
-    }
-    
-    public static void GetOfflineIncome()
-    {
-        double coin = 0;
-
-        for (int i = 0; i < OfflineUsingSkillList.Count; i++)
-        {
-            for (int j = 0; j < OfflineCoolSkillList.Count; j++)
-            {
-                OfflineCoolSkillList[j].CoolTimer -= IncomeCircleTime;
-            }
-
-            for (int j = 0; j < OfflineUsingSkillList[i].Count; j++)
-            {
-                OfflineUsingSkillList[i][j].AnnulEffect();
-
-                OfflineCoolSkillList.Add(OfflineUsingSkillList[i][j]);
-            }
-
-            TotalVisitPerson += CurrentPerson*IncomeCircleTime;
-
-            coin += CircleIncome;
-        }
-
-        IncomeCircleTimer = (OfflineTime - IncomeCircleTimer)%IncomeCircleTime;
-
-        for (int j = 0; j < OfflineCoolSkillList.Count; j++)
-        {
-            OfflineCoolSkillList[j].CoolTimer -= IncomeCircleTime - IncomeCircleTimer;
-        }
-
-
-        coin = (long) AdjustOfflineIncome(coin);
-
-        AddCoin(coin, StaticsManager.ItemID.获得金币, StaticsManager.ConsumeModule.Income);
-
-        ResourceManager.SetText(CanvasLabel.Ba_IconLab, Auxiliary.ShrinkBigNumberStr(coin));
-    }
-
-    public static double AdjustOfflineIncome(double offlineIncome)
-    {
-        offlineIncome = (long)Auxiliary.FmlParse(OfflineIncomeFml, "c", offlineIncome.ToString());
-
-        if (offlineIncome > OfflineMaxCoin)
-        {
-            offlineIncome = OfflineMaxCoin;
-
-            ResourceManager.SetText(CanvasLabel.Ba_Lab2, Language.GetStr(LanguageLabel.UI__Ba_Lab2));
-            ResourceManager.SetActive(CanvasLabel.Ba_Lab2, true);
-        }
-
-        return offlineIncome;
-    }
-
-    public new static void SwitchLanguage()
-    {
-        Coin = Coin;
-        AddDiamond(0, StaticsManager.ItemID.None, StaticsManager.ConsumeModule.None);
-    }
-
-    public static void Pay(string id, double amt, Current current, UnityAction succeedCallback, StaticsManager.ItemID itemId, StaticsManager.ConsumeModule consumeModule, bool navigate = true, bool useBubbleTweenNavigate = true, UnityAction navigateCall = null, int buyAmount = 1)
-    {
-        if (TutorialManager.PayExempt)
-        {
-            succeedCallback.Invoke();
-
-            return;
-        }
-
-        amt = Auxiliary.ShrinkNumber(amt);
-
-        if (current == Current.Free)
-        {
-            succeedCallback.Invoke();
-        }
-        else if (current == Current.AD)
-        {
-            IAPManager.PlayAD(succeedCallback);
-        }
-        else if (current == Current.Cash)
-        {
-            IAPManager.TryPurchase(id);
-        }
-        else if (current == Current.Coin)
-        {
-            #region MyRegion
-
-            if (Coin >= amt)
-            {
-                Coin -= amt;
-
-                succeedCallback.Invoke();
-
-                StaticsManager.GetInstance().UseItem(itemId, StaticsManager.ItemType.金币, buyAmount.ToString(), consumeModule);
-            }
-            else
-            {
-                ResourceManager.Get(CanvasLabel.Fe_Info).TweenBacCG();
-
-                if (navigate)
-                {
-                    Bubble.Show
-                    (
-                        Language.GetStr(LanguageLabel.Common__ShortCoin),
-                        "",
-                        null,
-                        Lib.GoldSprite,
-                        () =>
-                        {
-                            navigateCall.SafeInvoke();
-
-                            if (useBubbleTweenNavigate)
-                            {
-                                TweenRoot tween = ResourceManager.Get(CanvasLabel.K_Bubble0).GetTweenScale();
-
-                                tween.AddEventOnetime
-                                (
-                                    EventType.BackwardFinish,
-                                    () =>
-                                    {
-                                        UIManager.NavigateToBuyCoin();
-                                    }
-                                );
-                            }
-                            else
-                            {
-                                TweenRoot tween = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
-
-                                tween.AddEventOnetime
-                                (
-                                    EventType.ForwardFinish,
-                                    () =>
-                                    {
-                                        UIManager.NavigateToBuyCoin();
-                                    }
-                                );
-                            }
-                        }
-                    );
-                    Bubble.Lab3.text = Language.GetStr(LanguageLabel.Common__NavigateCoin);
-                    Bubble.Lab3.SetActive(true);
-                    Bubble.Lab.SetActive(false);
-                }
-                else
-                {
-                    Bubble.Show
-                    (
-                        null,
-                        null,
-                        null,
-                        Lib.GoldSprite
-                    );
-                    Bubble.Lab3.text = Language.GetStr(LanguageLabel.Common__ShortCoin);
-                    Bubble.Lab3.SetActive(true);
-                }
-            }
-
-            #endregion
-        }
-        else if (current == Current.Diamond)
-        {
-            #region MyRegion
-
-            if (Diamond >= amt)
-            {
-                Diamond -= amt;
-
-                TotalSpendDiamond += amt;
-
-                succeedCallback.Invoke();
-
-                StaticsManager.GetInstance().PurchaseItem(itemId, StaticsManager.ItemType.钻石, buyAmount.ToString(), amt.ToString("0"), consumeModule);
-            }
-            else
-            {
-                ResourceManager.Get(CanvasLabel.Fe_Info).TweenBacCG();
-
-                if (navigate)
-                {
-                    Bubble.Show
-                    (
-                        Language.GetStr(LanguageLabel.Common__ShortDiamond),
-                        "",
-                        null,
-                        Lib.DiamondSprite,
-                        () =>
-                        {
-                            navigateCall.SafeInvoke();
-
-                            if (useBubbleTweenNavigate)
-                            {
-                                TweenRoot tween = ResourceManager.Get(CanvasLabel.K_Bubble0).GetTweenScale();
-
-                                tween.AddEventOnetime
-                                (
-                                    EventType.BackwardFinish,
-                                    () =>
-                                    {
-                                        UIManager.NavigateToBuyDiamond();
-                                    }
-                                );
-                            }
-                            else
-                            {
-                                TweenRoot tween = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
-
-                                tween.AddEventOnetime
-                                    (
-                                        EventType.ForwardFinish,
-                                        () =>
-                                        {
-                                            UIManager.NavigateToBuyDiamond();
-                                        }
-                                    );
-                            }
-                        }
-                    );
-                    Bubble.Lab3.text = Language.GetStr(LanguageLabel.Common__NavigateDiamond);
-                    Bubble.Lab3.SetActive(true);
-                    Bubble.Lab.SetActive(false);
-                }
-                else
-                {
-                    Bubble.Show
-                    (
-                        null,
-                        null,
-                        null,
-                        Lib.DiamondSprite
-                    );
-                    Bubble.Lab3.text = Language.GetStr(LanguageLabel.Common__ShortDiamond);
-                    Bubble.Lab3.SetActive(true);
-                }
-            }
-
-            #endregion
-        }
-        else
-        {
-            throw new Exception(current.ToString());
-        }
-    }
-
-
-    public static void FirstTimeLoginCallback(JsonData jsonData)
-    {
-        if (!Initializer.Inited || !HttpManager.Inited || Inited)
-        {
-            return;
-        }
-
-        HttpManager.GetBuyPackLimitFlag();
-
-        if (HttpManager.IsConnect)
-        {
-            if (ConfigManager.GetStringFormConfig(PlayerConfigLabel.ID) == PlayerConfigLabel.DefaultID)
-            {
-                HttpManager.ID = HttpManager.LoginCallbackData["o"].ToString();
-
-                ResourceManager.SetText(CanvasLabel.L_UserLab, HttpManager.ID);
-            }
-
-            if (ConfigManager.GetStringFormConfig(PlayerConfigLabel.SerialNumber) == PlayerConfigLabel.DefaultSerialNumber)
-            {
-                HttpManager.SerialNumber = HttpManager.LoginCallbackData["i"].ToString();
-            }
-        }
-
-        InitAllSkill(true);
-        GetOfflineIncome();
-
-        SignManager.ShowPanels();
-
-        Analytics.SetUserId(HttpManager.ID);
-
-        Inited = true;
-        
-        GardenLevel = GardenLevel;
-
-        if (!PlayerPrefManager.GetBool(PlayerPrefManager.INTERACT_CONFIG, false))
-        {
-            HttpManager.GetSelfConfig();
-        }
-        else
-        {
-            HttpManager.UploadConfig();
-        }
-
-        ConfigManager.SaveConfigDocument();
-        ConfigManager.SaveConfigDocumentToDisk();
-    }
-
-    public static void ReactiveLoginCallback(JsonData jsonData)
-    {
-        LoginFlag = false;
-
-        for (int i = 0; i < Initializer.RegistList.Count; i++)
-        {
-            Initializer.RegistList[i].Reactive();
-        }
-    }
-
-
-    public static void SwitchConfig(string id)
-    {
-        ResourceManager.SetText(CanvasLabel.La_Lab, Language.GetStr(LanguageLabel.UI__L_Downloading));
-
-        ResourceManager.SetActive(CanvasLabel.La_Lab, true);
-        ResourceManager.SetActive(CanvasLabel.La_Mask, true);
-
-
-        HttpManager.GetConfigByID(id, SwitchConfigCallback);
-    }
-    
-    public static void SwitchConfigCallback(JsonData jsonData)
-    {
-        if (jsonData.Inst_Object.Keys.Contains("l"))
-        {
-            ResourceManager.Get(CanvasLabel.La_Info).TweenBacCG();
-
-            ResourceManager.SetText(CanvasLabel.La_Lab, Language.GetStr(LanguageLabel.UI__La_Lab0));
-
-
-            ConfigManager.ConfigDocument.LoadXml(jsonData["l"].ToString());
-
-            ConfigManager.ConfigRootNode = ConfigManager.ConfigDocument.SelectSingleNode(PlayerConfigLabel.RootNode);
-
-
-            ResourceManager.SetText(CanvasLabel.L_UserLab, ConfigManager.GetStringFormConfig(PlayerConfigLabel.ID));
-
-            HttpManager.ID = ConfigManager.GetStringFormConfig(PlayerConfigLabel.ID);
-            HttpManager.SerialNumber = ConfigManager.GetStringFormConfig(PlayerConfigLabel.SerialNumber);
-            Debug.Log(HttpManager.ID);
-            Debug.Log(HttpManager.SerialNumber);
-            Bubble.Show(null, Language.GetStr(LanguageLabel.UI__La_Lab0), null, null, () => { Application.Quit(); }, null, false);
-
-
-            UploadConfigFlag = true;
-
-            DownloadConfigFlag = true;
-
-            ConfigManager.SaveConfigDocumentToDisk();
-            PlayerPrefs.SetString(Lib.ConfigPrefs, "");
-        }
-        else
-        {
-            ResourceManager.SetText(CanvasLabel.La_Lab, Language.GetStr(LanguageLabel.UI__La_Lab1));
-
-            ResourceManager.SetActive(CanvasLabel.La_Mask, false);
-        }
-    }
-
-
-    public void OnApplicationQuit()
-    {
-        if (!UploadConfigFlag)
-        {
-            VisitManager.ReverseConfigData();
-
-            ConfigManager.SaveConfigDocument();
-            ConfigManager.SaveConfigDocumentToDisk();
-        }
-    }
-
-    public void OnApplicationPause(bool pause)
-    {
-        if (pause)
-        {
-            InBackground = true;
-            AlreadyGetOfflineIncome = true;
-
-            if (DownloadConfigFlag)
-            {
-                return;
-            }
-
-            VisitManager.ReverseConfigData();
-
-            ConfigManager.SaveConfigDocument();
-            ConfigManager.SaveConfigDocumentToDisk();
-        }
-        else
-        {
-            StaticsManager.GetInstance().StartSession();
-
-            InBackground = false;
-
-            if (IsFirstFrame)
-            {
-                IsFirstFrame = false;
-            }
-            else
-            {
-                if (TutorialManager.NewplayerTutorial)
-                {
-                    return;
-                }
-
-                if (!Initializer.Inited)
-                {
-                    return;
-                }
-
-                if (!Initializer.IsGameActivated)
-                {
-                    return;
-                }
-
-                if (DownloadConfigFlag)
-                {
-                    return;
-                }
-
-                VisitManager.RecoverConfigData();
-
-                if (LoginFlag)
-                {
-                    return;
-                }
-
-                if (ReactiveFlag)
-                {
-                    ReactiveFlag = false;
-
-                    return;
-                }
-
-                LoginFlag = true;
-
-                HttpManager.Login(ReactiveLoginCallback);
-                HttpManager.GetMailAwardData();
-            }
-        }
-    }
+using LitJson;
+
+using UnityEngine;
+using UnityEngine.UI;
+using UnityEngine.Events;
+using UnityEngine.Analytics;
+using UnityEngine.EventSystems;
+
+using System;
+using System.Xml;
+using System.Collections;
+using System.Collections.Generic;
+
+public class Manager : Regist 
+{
+    #region Config
+
+    #region 成就
+
+    public static double PlayADsAmt
+    {
+        get { return playADsAmt; }
+        set
+        {
+            playADsAmt = value;
+
+            AchieveManager.UpdateStatus(AchieveType.PlayADsAmt, playADsAmt);
+        }
+    }
+    private static double playADsAmt;
+
+    public static double UseSkillAmt
+    {
+        get { return useSkillAmt; }
+        set
+        {
+            useSkillAmt = value;
+
+            AchieveManager.UpdateStatus(AchieveType.UseSkillAmt, useSkillAmt);
+        }
+    }
+    private static double useSkillAmt;
+
+    public static double SignAmt
+    {
+        get { return signAmt; }
+        set
+        {
+            signAmt = value;
+
+            AchieveManager.UpdateStatus(AchieveType.SignAmt, signAmt);
+        }
+    }
+    private static double signAmt;
+
+    public static double CloseAmt
+    {
+        get { return closeAmt; }
+        set
+        {
+            closeAmt = value;
+
+            AchieveManager.UpdateStatus(AchieveType.CloseAmt, closeAmt);
+        }
+    }
+    private static double closeAmt;
+
+    public static double ShareAmt
+    {
+        get { return shareAmt; }
+        set
+        {
+            shareAmt = value;
+
+            AchieveManager.UpdateStatus(AchieveType.ShareAmt, shareAmt);
+        }
+    }
+    private static double shareAmt;
+
+    public static double PlayMinigameAmt
+    {
+        get { return playMinigameAmt; }
+        set
+        {
+            playMinigameAmt = value;
+
+            AchieveManager.UpdateStatus(AchieveType.PlayMinigameAmt, playMinigameAmt);
+        }
+    }
+    private static double playMinigameAmt;
+
+    public static double AllElfLevel
+    {
+        get { return allElfLevel; }
+        set
+        {
+            allElfLevel = value;
+
+            AchieveManager.UpdateStatus(AchieveType.AllElfLevel, allElfLevel);
+        }
+    }
+    private static double allElfLevel;
+
+    public static double TotalCoin
+    {
+        get { return totalCoin; }
+        set
+        {
+            totalCoin = value;
+
+            AchieveManager.UpdateStatus(AchieveType.TotalCoin, totalCoin);
+        }
+    }
+    private static double totalCoin;
+
+    public static double TotalFlowerAwardCoin
+    {
+        get { return totalFlowerAwardCoin; }
+        set
+        {
+            totalFlowerAwardCoin = value;
+            
+            AchieveManager.UpdateStatus(AchieveType.TotalFlowerAwardCoin, totalFlowerAwardCoin);
+        }
+    }
+    private static double totalFlowerAwardCoin;
+
+    public static double TotalVisitPerson
+    {
+        get { return totalVisitPerson; }
+        set
+        {
+            totalVisitPerson = value;
+
+            AchieveManager.UpdateStatus(AchieveType.TotalVisitPerson, totalVisitPerson);
+        }
+    }
+    private static double totalVisitPerson;
+
+    public static double TotalSpendDiamond
+    {
+        get { return totalSpendDiamond; }
+        set
+        {
+            totalSpendDiamond = value;
+
+            AchieveManager.UpdateStatus(AchieveType.TotalSpendDiamond, totalSpendDiamond);
+        }
+    }
+    private static double totalSpendDiamond;
+
+    public static double CreateRoomAmt
+    {
+        get { return createRoomAmt; }
+        set
+        {
+            createRoomAmt = value;
+
+            AchieveManager.UpdateStatus(AchieveType.CreateRoomAmt, createRoomAmt);
+        }
+    }
+    private static double createRoomAmt;
+
+    public static double CreateChestAmt
+    {
+        get { return createChestAmt; }
+        set
+        {
+            createChestAmt = value;
+
+            AchieveManager.UpdateStatus(AchieveType.CreateChestAmt, createChestAmt);
+        }
+    }
+    private static double createChestAmt;
+
+    public static double CreateLuckyChestAmt
+    {
+        get { return createLuckyChestAmt; }
+        set
+        {
+            createLuckyChestAmt = value;
+
+            AchieveManager.UpdateStatus(AchieveType.CreateLuckyChestAmt, createLuckyChestAmt);
+        }
+    }
+    private static double createLuckyChestAmt;
+
+    public static double CreateGuessColorChestAmt
+    {
+        get { return createGuessColorChestAmt; }
+        set
+        {
+            createGuessColorChestAmt = value;
+
+            AchieveManager.UpdateStatus(AchieveType.CreateGuessColorChestAmt, createGuessColorChestAmt);
+        }
+    }
+    private static double createGuessColorChestAmt;
+
+    public static double CreateGuessNumberChestAmt
+    {
+        get { return createGuessNumberChestAmt; }
+        set
+        {
+            createGuessNumberChestAmt = value;
+
+            AchieveManager.UpdateStatus(AchieveType.CreateGuessNumberChestAmt, createGuessNumberChestAmt);
+        }
+    }
+    private static double createGuessNumberChestAmt;
+
+    public static double GetChestAwardAmt
+    {
+        get { return getChestAwardAmt; }
+        set
+        {
+            getChestAwardAmt = value;
+
+            AchieveManager.UpdateStatus(AchieveType.GetChestAwardAmt, getChestAwardAmt);
+        }
+    }
+    private static double getChestAwardAmt;
+
+    #endregion
+
+    public static Action<int> OnLevelChange;
+    public static Action<double> OnCoinChange;
+    public static Action<double> OnDiamondChange;
+
+    public static int GardenLevel
+    {
+        get { return gardenLevel; }
+        set
+        {
+            gardenLevel = value;
+
+            if (!Inited)
+            {
+                return;
+            }
+
+            LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.C_LevelText), new MulLanStr(LanguageLabel.UI__C_Level), gardenLevel.ToString());
+
+            VisitManager.UpdateVisitCost();
+
+            AchieveManager.UpdateStatus(AchieveType.GardenLevel, gardenLevel);
+            
+            for (int i = 0; i < SkillList.Count; i++)
+            {
+                SkillList[i].UpdateStatus();
+            }
+
+            foreach (var kv in PlayerManager.CloseItemDictionary)
+            {
+                kv.Value.OnLevelChange();
+            }
+
+            if (OnLevelChange != null)
+            {
+                OnLevelChange.Invoke(gardenLevel);
+            }
+
+            if (gardenLevel >= TutorialManager.MemoryMinigameTutorialLevel)
+            {
+                if (TutorialManager.memoryMinigameTutorial)
+                {
+                    TutorialManager.MemoryMinigameTutorial = true;
+                }
+            }
+
+            if (GardenLevel < TutorialManager.DressroomTutorialLevel)
+            {
+                ResourceManager.Get<Image>(CanvasLabel.C_DressRoom).material = Lib.GrayMat;
+            }
+            else
+            {
+                ResourceManager.Get<Image>(CanvasLabel.C_DressRoom).material = null;
+            }
+
+            if (GardenManager.TotalUnlockFlower >= TutorialManager.MinFlowerForFindSoloGame && gardenLevel >= TutorialManager.FindSoloMinigameTutorialLevel)
+            {
+                if (TutorialManager.findSoloMinigameTutorial)
+                {
+                    TutorialManager.PlayFindSoloGame();
+                }
+            }
+
+            if (GardenManager.TotalUnlockFlower >= TutorialManager.MinFlowerForFindMissingGame && gardenLevel >= TutorialManager.FindMissingMinigameTutorialLevel)
+            {
+                if (TutorialManager.findMissingMinigameTutorial)
+                {
+                    TutorialManager.PlayFindMissingGame();
+                }
+            }
+
+            if (gardenLevel >= TutorialManager.CommentTutorialLevel)
+            {
+                ResourceManager.Get(CanvasLabel.C_CommentParent).TweenForCG();
+            }
+
+            if (gardenLevel >= TutorialManager.VisitTutorialLevel)
+            {
+                if (TutorialManager.visitTutorial)
+                {
+                    TutorialManager.ClickVisitBtn();
+                    return;
+                }
+                else
+                {
+                    ResourceManager.SetActive(CanvasLabel.C_Visit, true);
+                }
+            }
+
+            if (gardenLevel >= TutorialManager.DressroomTutorialLevel)
+            {
+                if (TutorialManager.dressroomTutorial)
+                {
+                    TutorialManager.ClickDressroomButton();
+                    return;
+                }
+            }
+
+            if (gardenLevel >= TutorialManager.PlazaRoomTutorialLevel)
+            {
+                if (TutorialManager.plazaRoomTutorial)
+                {
+                    TutorialManager.ClickPlazaRoomBtn();
+                    return;
+                }
+                else
+                {
+                    ResourceManager.SetActive(CanvasLabel.C_EnterPlazaRoom, true);
+                    ResourceManager.SetActive(CanvasLabel.C_EnterPlazaRoom0, true);
+                }
+            }
+
+            if (gardenLevel >= TutorialManager.FashionShowTutorialLevel)
+            {
+                if (TutorialManager.fashionShowTutorial)
+                {
+                    TutorialManager.BeginFashionShowTutorial();
+                    return;
+                }
+            }
+
+            if (gardenLevel >= TutorialManager.ChangeMouseTutorialLevel)
+            {
+                if (TutorialManager.changeMouseTutorial)
+                {
+                    TutorialManager.BeginChangeMouseTutorial();
+                    return;
+                }
+            }
+        }
+    }
+    private static int gardenLevel;
+
+    public static float Person
+    {
+        get { return person; }
+        set
+        {
+            person = value;
+            ResourceManager.SetText(CanvasLabel.F_PersonLab,  Auxiliary.ShrinkBigNumberStr(CurrentPerson*60));
+        }
+    }
+    private static float person;
+    public static List<string> ExtraPersonSourceSpritesName = new List<string>();
+
+    public static float CoinPerson
+    {
+        get { return coinPerson; }
+        set
+        {
+            coinPerson = value;
+
+            ResourceManager.SetText(CanvasLabel.F_CoinPersonLab, Auxiliary.ShrinkBigNumberStr(CurrentCoinPerson));
+        }
+    }
+    private static float coinPerson;
+    public static List<string> ExtraCoinPersonSourceSpritesName = new List<string>();
+
+    public static float SkillPerson
+    {
+        get { return skillPerson; }
+        set
+        {
+            skillPerson = value;
+
+            //TweenOutline tween = ResourceManager.Get(CanvasLabel.F_PersonLab).GetTweenOutline();
+
+            //if (skillPerson.Equal(0))
+            //{
+            //    tween.Pause();
+
+            //    tween.Target.enabled = false;
+            //}
+            //else
+            //{
+            //    if (tween.InPause)
+            //    {
+            //        tween.Resume();
+
+            //        tween.Target.enabled = true;
+            //    }
+            //    else
+            //    {
+            //        tween.StartForward();
+            //    }
+            //}
+
+            Person = Person;
+        }
+    }
+    public static float skillPerson;
+
+    public static float TempSkillPerson
+    {
+        get { return tempSkillPerson; }
+        set
+        {
+            tempSkillPerson = value;
+
+            TweenOutline tween = ResourceManager.Get(CanvasLabel.F_PersonLab).GetTweenOutline();
+            
+            if (tempSkillPerson.Equal(0) && tempSkillPersonBuff.Equal(0))
+            {
+                tween.Pause();
+
+                tween.Target.enabled = false;
+            }
+            else
+            {
+                if (tween.InPause)
+                {
+                    tween.Resume();
+
+                    tween.Target.enabled = true;
+                }
+                else
+                {
+                    tween.StartForward();
+                }
+            }
+
+            Person = Person;
+        }
+    }
+    public static float tempSkillPerson;
+
+    public static float SkillPersonBuff
+    {
+        get { return skillPersonBuff; }
+        set
+        {
+            skillPersonBuff = value;
+
+            Person = Person;
+        }
+    }
+    public static float skillPersonBuff;
+
+    public static float TempSkillPersonBuff
+    {
+        get { return tempSkillPersonBuff; }
+        set
+        {
+            tempSkillPersonBuff = value;
+
+            TweenOutline tween = ResourceManager.Get(CanvasLabel.F_PersonLab).GetTweenOutline();
+
+            if (tempSkillPerson.Equal(0) && tempSkillPersonBuff.Equal(0))
+            {
+                tween.Pause();
+
+                tween.Target.enabled = false;
+            }
+            else
+            {
+                if (tween.InPause)
+                {
+                    tween.Resume();
+
+                    tween.Target.enabled = true;
+                }
+                else
+                {
+                    tween.StartForward();
+                }
+            }
+
+            Person = Person;
+        }
+    }
+    public static float tempSkillPersonBuff;
+
+    public static float SkillCoinPerson
+    {
+        get { return skillCoinPerson; }
+        set
+        {
+            skillCoinPerson = value;
+
+            CoinPerson = CoinPerson;
+        }
+    }
+    public static float skillCoinPerson;
+
+    public static float TempSkillCoinPerson
+    {
+        get { return tempSkillCoinPerson; }
+        set
+        {
+            tempSkillCoinPerson = value;
+
+            TweenOutline tween = ResourceManager.Get(CanvasLabel.F_CoinPersonLab).GetTweenOutline();
+
+            if (tempSkillCoinPerson.Equal(0) && tempSkillCoinPersonBuff.Equal(0))
+            {
+                tween.Pause();
+
+                tween.Target.enabled = false;
+            }
+            else
+            {
+                if (tween.InPause)
+                {
+                    tween.Resume();
+
+                    tween.Target.enabled = true;
+                }
+                else
+                {
+                    tween.StartForward();
+                }
+            }
+
+            CoinPerson = CoinPerson;
+        }
+    }
+    public static float tempSkillCoinPerson;
+
+    public static float SkillCoinPersonBuff
+    {
+        get { return skillCoinPersonBuff; }
+        set
+        {
+            skillCoinPersonBuff = value;
+
+            CoinPerson = CoinPerson;
+        }
+    }
+    public static float skillCoinPersonBuff;
+
+    public static float TempSkillCoinPersonBuff
+    {
+        get { return tempSkillCoinPersonBuff; }
+        set
+        {
+            tempSkillCoinPersonBuff = value;
+
+            TweenOutline tween = ResourceManager.Get(CanvasLabel.F_CoinPersonLab).GetTweenOutline();
+
+            if (tempSkillCoinPersonBuff.Equal(0) && tempSkillCoinPerson.Equal(0))
+            {
+                tween.Pause();
+
+                tween.Target.enabled = false;
+            }
+            else
+            {
+                if (tween.InPause)
+                {
+                    tween.Resume();
+
+                    tween.Target.enabled = true;
+                }
+                else
+                {
+                    tween.StartForward();
+                }
+            }
+
+            CoinPerson = CoinPerson;
+        }
+    }
+    public static float tempSkillCoinPersonBuff;
+
+    public static float IncomeBuff
+    {
+        get { return SkillCoinPersonBuff + FlowerPlus; }
+    }
+
+    public static float FlowerPlus
+    {
+        get { return flowerPlus; }
+        set
+        {
+            flowerPlus = value;
+        }
+    }
+    public static float flowerPlus;
+
+    public static float CurrentPerson
+    {
+        get
+        {
+            //Debug.Log(Person * (1 + SkillPersonBuff + TempSkillPersonBuff) + SkillPerson + TempSkillPerson);
+            return Person*(1 + SkillPersonBuff + TempSkillPersonBuff) + SkillPerson + TempSkillPerson;
+        }
+    }
+    public static float CurrentCoinPerson
+    {
+        get
+        {
+            //Debug.Log(CoinPerson * (1 + SkillCoinPersonBuff + TempSkillCoinPersonBuff) + SkillCoinPerson + TempSkillCoinPerson);
+            return CoinPerson*(1 + SkillCoinPersonBuff + TempSkillCoinPersonBuff) + SkillCoinPerson + TempSkillCoinPerson;
+        }
+    }
+
+    public static double Coin
+    {
+        get { return coin; }
+        set
+        {
+            coin = value;
+            
+            ResourceManager.SetText(CanvasLabel.F_CoinLab, Auxiliary.ShrinkBigNumberStr(coin));
+            ResourceManager.SetText(CanvasLabel.C_CoinLab, Auxiliary.ShrinkBigNumberStr(coin));
+            ResourceManager.SetText(CanvasLabel.P_CoinLab, Auxiliary.ShrinkBigNumberStr(coin));
+
+            AchieveManager.UpdateStatus(AchieveType.CurrentCoin, coin);
+
+            OnCoinChange.SafeInvoke(coin);
+        }
+    }
+    public static double coin;
+
+    public static double Diamond
+    {
+        get { return diamond; }
+        set
+        {
+            diamond = value;
+
+            ResourceManager.SetText(CanvasLabel.F_DiamondLab, Auxiliary.ShrinkBigNumberStr(diamond));
+            ResourceManager.SetText(CanvasLabel.P_DiamondLab, Auxiliary.ShrinkBigNumberStr(diamond));
+
+            OnDiamondChange.SafeInvoke(diamond);
+        }
+    }
+    public static double diamond;
+
+    public static bool MinigameFlag;
+    public static bool UploadConfigFlag;
+    public static bool LoginFlag;
+    public static bool ReactiveFlag;
+    public static bool DownloadConfigFlag;
+    public static bool SceneSwitchFlag;
+
+    public static bool Inited;
+    public static bool IsFirstFrame = true;
+    public static bool InBackground;
+
+    public static float IncomeDisplayTime = 60f;
+    public static float IncomeCircleTime = 10;
+    public static float IncomeCircleTimer;
+    public static float CircleIncome
+    {
+        get
+        {
+            return CurrentPerson * IncomeCircleTime * CurrentCoinPerson * (1 + FlowerPlus);
+        }
+    }
+
+    public static float GameBeginTime;
+    public static bool AlreadyGetOfflineIncome;
+    public static bool OfflineFlag;
+    public static float OfflineTime;
+    public static string OfflineIncomeFml;
+    public static double OfflineMaxCoin;
+    public static double OfflineMaxTime;
+    public static double OfflineMinTime = 120;
+
+    public static float InputDetectTime = 45;
+    public static float InputDetectTimer;
+
+    public static float LoginTime = 10f;
+    public static float LoginTimer;
+
+    public static float MinigameCDTimer;
+
+    public static float UploadConfigTime = 60f;
+    public static float UploadConfigTimer;
+
+    public static Manager Instance;
+    public static DateTime LastQuitTime;
+
+    public static List<Skill> UsingSkillList = new List<Skill>();
+    public static List<Skill> CoolSkillList = new List<Skill>();
+    public static List<Skill> OfflineCoolSkillList = new List<Skill>();
+    public static List<List<Skill>> OfflineUsingSkillList = new List<List<Skill>>();
+
+    public static List<SkillRoot> SkillList = new List<SkillRoot>();
+    public static Dictionary<string, SkillRoot> SkillDictionary = new Dictionary<string, SkillRoot>();
+
+    #endregion
+    
+    private void Update()
+    {
+        LoginThread();
+        
+        if (TutorialManager.NewplayerTutorial)
+        {
+            return;
+        }
+
+        InputDetectThread();
+
+        ProcessSkillThread();
+
+        MinigameCDThread();
+
+        UploadConfigThread();
+
+        IncomeCircleThread();
+    }
+
+    private void InputDetectThread()
+    {
+        //if (VisitManager.InVisit)
+        //{
+        //    return;
+        //}
+
+        if (Auxiliary.AnyKeyUp)
+        {
+            InputDetectTimer = 0;
+
+            ResourceManager.Get(CanvasLabel.C_Group).TweenForCG();
+        }
+        else
+        {
+            InputDetectTimer += Time.deltaTime;
+
+            if (InputDetectTimer >= InputDetectTime)
+            {
+                InputDetectTimer = 0;
+
+                ResourceManager.Get(CanvasLabel.C_Group).TweenBacCG();
+            }
+        }
+    }
+
+    private void ProcessSkillThread()
+    {
+        for (int i = 0; i < UsingSkillList.Count; i++)
+        {
+            if (UsingSkillList[i].DoUpdate())
+            {
+                UsingSkillList.RemoveAt(i--);
+            }
+        }
+
+        for (int i = 0; i < CoolSkillList.Count; i++)
+        {
+            if (CoolSkillList[i].DoCD())
+            {
+                CoolSkillList.RemoveAt(i--);
+            }
+        }
+    }
+
+    private void MinigameCDThread()
+    {
+        if (!MinigameFlag)
+        {
+            MinigameCDTimer -= Time.deltaTime;
+
+            ResourceManager.SetText(CanvasLabel.C_MiniGameLab, Mathf.CeilToInt(MinigameCDTimer).ToString());
+
+            if (MinigameCDTimer < 0)
+            {
+                MinigameFlag = true;
+
+                ResourceManager.Get(CanvasLabel.C_MiniGame).TweenBacRect();
+
+                CDMinigamePanelManager.EnableCDButton();
+
+                ResourceManager.SetText(CanvasLabel.C_MiniGameLab, "");
+
+                StaticsManager.GetInstance().RewardItem(StaticsManager.ItemID.获得小游戏, StaticsManager.ItemType.小游戏, "1", StaticsManager.ConsumeModule.None);
+            }
+        }
+    }
+
+    private void UploadConfigThread()
+    {
+        if (DownloadConfigFlag)
+        {
+            return;
+        }
+
+        UploadConfigTimer += Time.deltaTime;
+
+        if (UploadConfigTimer >= UploadConfigTime)
+        {
+            UploadConfigTimer = 0;
+
+            if (!PlayerPrefManager.GetBool(PlayerPrefManager.INTERACT_CONFIG, false))
+            {
+                HttpManager.GetSelfConfig();
+            }
+            else
+            {
+                HttpManager.UploadConfig();
+            }
+        }
+    }
+
+    private void LoginThread()
+    {
+        LoginTimer += Time.deltaTime;
+
+        if (LoginTimer >= LoginTime)
+        {
+            LoginTimer = 0;
+
+            HttpManager.Login();
+
+            StaticsManager.GetInstance().Online();
+        }
+    }
+
+    private void IncomeCircleThread()
+    {
+        IncomeCircleTimer -= Time.deltaTime;
+
+        if (IncomeCircleTimer < 0)
+        {
+            IncomeCircleTimer = IncomeCircleTime;
+
+            TotalVisitPerson += CurrentPerson * IncomeCircleTime;
+            
+            float circleIncome = CircleIncome;
+
+            AddCoin(circleIncome, StaticsManager.ItemID.获得金币, StaticsManager.ConsumeModule.Income);
+
+            ResourceManager.Get(CanvasLabel.C_IncomeLab).TweenReForGra();
+            ResourceManager.Get(CanvasLabel.C_IncomeLab).TweenReForVec();
+            ResourceManager.SetText(CanvasLabel.C_IncomeLab, "+" + Auxiliary.ShrinkBigNumberStr(circleIncome, 0));
+        }
+    }
+
+
+    public static void AddCoin(double amt, StaticsManager.ItemID itemId, StaticsManager.ConsumeModule consumeModule)
+    {
+        Coin += amt;
+
+        if (amt > 0)
+        {
+            TotalCoin += amt;
+
+            StaticsManager.GetInstance().RewardItem(itemId, StaticsManager.ItemType.金币, amt.ToString("0"), consumeModule);
+        }
+    }
+
+    public static void AddDiamond(double amt, StaticsManager.ItemID itemId, StaticsManager.ConsumeModule consumeModule)
+    {
+        Diamond += amt;
+
+        if (amt > 0)
+        {
+            StaticsManager.GetInstance().RewardItem(itemId, StaticsManager.ItemType.钻石, amt.ToString("0"), consumeModule);
+        }
+    }
+
+
+    public override void Reactive()
+    {
+        foreach (var kv in SkillDictionary)
+        {
+            kv.Value.Reactive();
+        }
+
+        InitAllSkill(false);
+        GetOfflineIncome();
+
+        SignManager.ShowPanels();
+    }
+
+    public override void InstantiatePrefabs()
+    {
+        #region 生成技能条
+
+        #region 读技能配置
+
+        List<XmlAttributeCollection> attributeList = ConfigManager.GetSkillConfig();
+
+        for (int i = 0; i < attributeList.Count; i++)
+        {
+            SkillRoot skillRoot;
+
+            #region MyRegion
+
+            if (attributeList[i].Count == 18)
+            {
+                skillRoot = new Pack(attributeList[i]);
+            }
+            else if (attributeList[i].Count == 24)
+            {
+                skillRoot = new Ability(attributeList[i]);
+            }
+            else if (attributeList[i].Count == 34)
+            {
+                if (string.IsNullOrEmpty(attributeList[i][4].Value))
+                {
+                    skillRoot = new Skill(attributeList[i]);
+                }
+                else
+                {
+                    skillRoot = new BigSkill(attributeList[i]);
+                }
+            }
+            else
+            {
+                throw new Exception(attributeList[i].Count.ToString());
+            }
+
+            #endregion
+
+            SkillDictionary.Add(skillRoot.FullID, skillRoot);
+            SkillList.Add(skillRoot);
+        }
+
+        SkillList.Sort(SkillRoot.Sort);
+
+        #endregion
+
+        for (int i = 0; i < SkillList.Count; i++)
+        {
+            if (SkillList[i].SkillTab != SkillTab.Null)
+            {
+                ResourceManager.GetSkillItem(SkillList[i]);
+            }
+        }
+
+        #endregion
+    }
+
+    public override void FirstInit()
+    {
+        ResourceManager.Get<Graphic>(CanvasLabel.F_Elf).material = Lib.GrayMat;
+        ResourceManager.Get<Graphic>(CanvasLabel.F_Store).material = Lib.GrayMat;
+        ResourceManager.Get<Graphic>(CanvasLabel.F_Magic).material = Lib.GrayMat;
+
+        ResourceManager.Get<Graphic>(CanvasLabel.F_ElfLab).material = Lib.GrayMat;
+        ResourceManager.Get<Graphic>(CanvasLabel.F_StoreLab).material = Lib.GrayMat;
+        ResourceManager.Get<Graphic>(CanvasLabel.F_MagicLab).material = Lib.GrayMat;
+
+        ResourceManager.Get<Button>(CanvasLabel.F_Elf).interactable = false;
+        ResourceManager.Get<Button>(CanvasLabel.F_Store).interactable = false;
+        ResourceManager.Get<Button>(CanvasLabel.F_Magic).interactable = false;
+
+
+        List<XmlAttributeCollection> attributeList = ConfigManager.GetSkillList();
+
+        for (int i = 0; i < attributeList.Count; i++)
+        {
+            SkillRoot skillRoot = SkillDictionary[attributeList[i][0].Value];
+
+            if (!(skillRoot is Skill))
+            {
+                skillRoot.RegistReference();
+
+                skillRoot.Init(true, OfflineTime, OfflineUsingSkillList, attributeList[i]);
+            }
+        }
+    }
+
+    public override void SecondInit()
+    {
+        Instance = this;
+
+        Coin = ConfigManager.GetDoubleFormConfig(PlayerConfigLabel.Coin);
+        Diamond = ConfigManager.GetDoubleFormConfig(PlayerConfigLabel.Diamond);
+        MinigameCDTimer = ConfigManager.GetFloatFormConfig(PlayerConfigLabel.MiniTimer);
+        IncomeCircleTimer = ConfigManager.GetFloatFormConfig(PlayerConfigLabel.CircleTimer);
+
+        if (MinigameCDTimer > 0)
+        {
+            ResourceManager.Get(CanvasLabel.C_MiniGame).TweenForRect();
+            if (ConfigManager.GetBoolFormConfig(PlayerConfigLabel.MinigameCoolFlag))
+            {
+                CDMinigamePanelManager.DisableCDButton();
+            }
+        }
+        else
+        {
+            MinigameFlag = true;
+        }
+
+        HttpManager.ID = ConfigManager.GetStringFormConfig(PlayerConfigLabel.ID);
+        HttpManager.SerialNumber = ConfigManager.GetStringFormConfig(PlayerConfigLabel.SerialNumber);
+
+        List<string> offlineList = ConfigManager.GetOfflineConfig();
+
+        OfflineMaxCoin = Auxiliary.StringToLong(offlineList[1], 999999999999999999);
+        OfflineMaxTime = Auxiliary.StringToLong(offlineList[2], 999999999999999999);
+        OfflineIncomeFml = offlineList[0];
+
+
+        List<double> dataList = ConfigManager.GetAchieveValues();
+
+        PlayADsAmt = dataList[0];
+        AllElfLevel = dataList[4];
+        UseSkillAmt = dataList[1];
+        SignAmt = dataList[2];
+        ShareAmt = dataList[3];
+        TotalFlowerAwardCoin = dataList[6];
+        TotalVisitPerson = dataList[7];
+        TotalSpendDiamond = dataList[8];
+        PlayMinigameAmt = dataList[5];
+        CreateRoomAmt = dataList[9];
+        CreateChestAmt = dataList[10];
+        CreateLuckyChestAmt = dataList[11];
+        CreateGuessColorChestAmt = dataList[12];
+        CreateGuessNumberChestAmt = dataList[13];
+        GetChestAwardAmt = dataList[14];
+    }
+
+
+    public static void InitAllSkill(bool firstRegist)
+    {
+        OfflineFlag = false;
+        float realOfflineTime = 0;
+
+        ResourceManager.SetActive(CanvasLabel.Ba_Lab2, false);
+
+        if (HttpManager.IsConnect && ConfigManager.GetBoolFormConfig(PlayerConfigLabel.QuitFlag))
+        {
+            AlreadyGetOfflineIncome = true;
+            LastQuitTime = DateTime.Parse(ConfigManager.GetStringFormConfig(PlayerConfigLabel.QuitTime));
+
+            OfflineTime = (float)HttpManager.CurrentDateTime.Subtract(LastQuitTime).TotalSeconds;
+
+            MinigameCDTimer -= OfflineTime;
+
+            if (OfflineTime <= OfflineMinTime)
+            {
+                realOfflineTime = OfflineTime;
+                OfflineTime = 0;
+            }
+            else
+            {
+                OfflineFlag = true;
+            }
+
+            if (OfflineTime > OfflineMaxTime)
+            {
+                OfflineTime = (long)OfflineMaxTime;
+
+                ResourceManager.SetText(CanvasLabel.Ba_Lab2, Language.GetStr(LanguageLabel.UI__Ba_Lab2));
+                ResourceManager.SetActive(CanvasLabel.Ba_Lab2, true);
+            }
+        }
+        else
+        {
+            if (ConfigManager.GetBoolFormConfig(PlayerConfigLabel.QuitFlag))
+            {
+                AlreadyGetOfflineIncome = false;
+                LastQuitTime = DateTime.Parse(ConfigManager.GetStringFormConfig(PlayerConfigLabel.QuitTime));
+                GameBeginTime = Time.time;
+            }
+        }
+
+
+        OfflineUsingSkillList = new List<List<Skill>>();
+        OfflineCoolSkillList = new List<Skill>();
+
+        if (OfflineTime > IncomeCircleTimer)
+        {
+            int circle = 1 + Mathf.FloorToInt((OfflineTime - IncomeCircleTimer) / IncomeCircleTime);
+
+            for (int i = 0; i < circle; i++)
+            {
+                OfflineUsingSkillList.Add(new List<Skill>());
+            }
+        }
+
+
+        List<XmlAttributeCollection> attributeList = ConfigManager.GetSkillList();
+
+        for (int i = 0; i < attributeList.Count; i++)
+        {
+            SkillRoot skillRoot = SkillDictionary[attributeList[i][0].Value];
+
+            if (skillRoot is Skill)
+            {
+                skillRoot.RegistReference();
+
+                skillRoot.Init(firstRegist, OfflineTime, OfflineUsingSkillList, attributeList[i]);
+            }
+        }
+
+        if (OfflineFlag == false)
+        {
+            foreach (var skill in CoolSkillList)
+            {
+                skill.CoolTimer -= realOfflineTime;
+            }
+        }
+    }
+    
+    public static void GetOfflineIncome()
+    {
+        double coin = 0;
+
+        for (int i = 0; i < OfflineUsingSkillList.Count; i++)
+        {
+            for (int j = 0; j < OfflineCoolSkillList.Count; j++)
+            {
+                OfflineCoolSkillList[j].CoolTimer -= IncomeCircleTime;
+            }
+
+            for (int j = 0; j < OfflineUsingSkillList[i].Count; j++)
+            {
+                OfflineUsingSkillList[i][j].AnnulEffect();
+
+                OfflineCoolSkillList.Add(OfflineUsingSkillList[i][j]);
+            }
+
+            TotalVisitPerson += CurrentPerson*IncomeCircleTime;
+
+            coin += CircleIncome;
+        }
+
+        IncomeCircleTimer = (OfflineTime - IncomeCircleTimer)%IncomeCircleTime;
+
+        for (int j = 0; j < OfflineCoolSkillList.Count; j++)
+        {
+            OfflineCoolSkillList[j].CoolTimer -= IncomeCircleTime - IncomeCircleTimer;
+        }
+
+
+        coin = (long) AdjustOfflineIncome(coin);
+
+        AddCoin(coin, StaticsManager.ItemID.获得金币, StaticsManager.ConsumeModule.Income);
+
+        ResourceManager.SetText(CanvasLabel.Ba_IconLab, Auxiliary.ShrinkBigNumberStr(coin));
+    }
+
+    public static double AdjustOfflineIncome(double offlineIncome)
+    {
+        offlineIncome = (long)Auxiliary.FmlParse(OfflineIncomeFml, "c", offlineIncome.ToString());
+
+        if (offlineIncome > OfflineMaxCoin)
+        {
+            offlineIncome = OfflineMaxCoin;
+
+            ResourceManager.SetText(CanvasLabel.Ba_Lab2, Language.GetStr(LanguageLabel.UI__Ba_Lab2));
+            ResourceManager.SetActive(CanvasLabel.Ba_Lab2, true);
+        }
+
+        return offlineIncome;
+    }
+
+    public new static void SwitchLanguage()
+    {
+        Coin = Coin;
+        AddDiamond(0, StaticsManager.ItemID.None, StaticsManager.ConsumeModule.None);
+    }
+
+    public static void Pay(string id, double amt, Current current, UnityAction succeedCallback, StaticsManager.ItemID itemId, StaticsManager.ConsumeModule consumeModule, bool navigate = true, bool useBubbleTweenNavigate = true, UnityAction navigateCall = null, int buyAmount = 1)
+    {
+        if (TutorialManager.PayExempt)
+        {
+            succeedCallback.Invoke();
+
+            return;
+        }
+
+        amt = Auxiliary.ShrinkNumber(amt);
+
+        if (current == Current.Free)
+        {
+            succeedCallback.Invoke();
+        }
+        else if (current == Current.AD)
+        {
+            IAPManager.PlayAD(succeedCallback);
+        }
+        else if (current == Current.Cash)
+        {
+            IAPManager.TryPurchase(id);
+        }
+        else if (current == Current.Coin)
+        {
+            #region MyRegion
+
+            if (Coin >= amt)
+            {
+                Coin -= amt;
+
+                succeedCallback.SafeInvoke();
+
+                StaticsManager.GetInstance().UseItem(itemId, StaticsManager.ItemType.金币, buyAmount.ToString(), consumeModule);
+            }
+            else
+            {
+                ResourceManager.Get(CanvasLabel.Fe_Info).TweenBacCG();
+
+                if (navigate)
+                {
+                    Bubble.Show
+                    (
+                        Language.GetStr(LanguageLabel.Common__ShortCoin),
+                        "",
+                        null,
+                        Lib.GoldSprite,
+                        () =>
+                        {
+                            navigateCall.SafeInvoke();
+
+                            if (useBubbleTweenNavigate)
+                            {
+                                TweenRoot tween = ResourceManager.Get(CanvasLabel.K_Bubble0).GetTweenScale();
+
+                                tween.AddEventOnetime
+                                (
+                                    EventType.BackwardFinish,
+                                    () =>
+                                    {
+                                        UIManager.NavigateToBuyCoin();
+                                    }
+                                );
+                            }
+                            else
+                            {
+                                TweenRoot tween = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
+
+                                tween.AddEventOnetime
+                                (
+                                    EventType.ForwardFinish,
+                                    () =>
+                                    {
+                                        UIManager.NavigateToBuyCoin();
+                                    }
+                                );
+                            }
+                        }
+                    );
+                    Bubble.Lab3.text = Language.GetStr(LanguageLabel.Common__NavigateCoin);
+                    Bubble.Lab3.SetActive(true);
+                    Bubble.Lab.SetActive(false);
+                }
+                else
+                {
+                    Bubble.Show
+                    (
+                        null,
+                        null,
+                        null,
+                        Lib.GoldSprite
+                    );
+                    Bubble.Lab3.text = Language.GetStr(LanguageLabel.Common__ShortCoin);
+                    Bubble.Lab3.SetActive(true);
+                }
+            }
+
+            #endregion
+        }
+        else if (current == Current.Diamond)
+        {
+            #region MyRegion
+
+            if (Diamond >= amt)
+            {
+                Diamond -= amt;
+
+                TotalSpendDiamond += amt;
+
+                succeedCallback.SafeInvoke();
+
+                StaticsManager.GetInstance().PurchaseItem(itemId, StaticsManager.ItemType.钻石, buyAmount.ToString(), amt.ToString("0"), consumeModule);
+            }
+            else
+            {
+                ResourceManager.Get(CanvasLabel.Fe_Info).TweenBacCG();
+
+                if (navigate)
+                {
+                    Bubble.Show
+                    (
+                        Language.GetStr(LanguageLabel.Common__ShortDiamond),
+                        "",
+                        null,
+                        Lib.DiamondSprite,
+                        () =>
+                        {
+                            navigateCall.SafeInvoke();
+
+                            if (useBubbleTweenNavigate)
+                            {
+                                TweenRoot tween = ResourceManager.Get(CanvasLabel.K_Bubble0).GetTweenScale();
+
+                                tween.AddEventOnetime
+                                (
+                                    EventType.BackwardFinish,
+                                    () =>
+                                    {
+                                        UIManager.NavigateToBuyDiamond();
+                                    }
+                                );
+                            }
+                            else
+                            {
+                                TweenRoot tween = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
+
+                                tween.AddEventOnetime
+                                    (
+                                        EventType.ForwardFinish,
+                                        () =>
+                                        {
+                                            UIManager.NavigateToBuyDiamond();
+                                        }
+                                    );
+                            }
+                        }
+                    );
+                    Bubble.Lab3.text = Language.GetStr(LanguageLabel.Common__NavigateDiamond);
+                    Bubble.Lab3.SetActive(true);
+                    Bubble.Lab.SetActive(false);
+                }
+                else
+                {
+                    Bubble.Show
+                    (
+                        null,
+                        null,
+                        null,
+                        Lib.DiamondSprite
+                    );
+                    Bubble.Lab3.text = Language.GetStr(LanguageLabel.Common__ShortDiamond);
+                    Bubble.Lab3.SetActive(true);
+                }
+            }
+
+            #endregion
+        }
+        else
+        {
+            throw new Exception(current.ToString());
+        }
+    }
+
+
+    public static void FirstTimeLoginCallback(JsonData jsonData)
+    {
+        if (!Initializer.Inited || !HttpManager.Inited || Inited)
+        {
+            return;
+        }
+
+        HttpManager.GetBuyPackLimitFlag();
+
+        if (HttpManager.IsConnect)
+        {
+            if (ConfigManager.GetStringFormConfig(PlayerConfigLabel.ID) == PlayerConfigLabel.DefaultID)
+            {
+                HttpManager.ID = HttpManager.LoginCallbackData["o"].ToString();
+
+                ResourceManager.SetText(CanvasLabel.L_UserLab, HttpManager.ID);
+            }
+
+            if (ConfigManager.GetStringFormConfig(PlayerConfigLabel.SerialNumber) == PlayerConfigLabel.DefaultSerialNumber)
+            {
+                HttpManager.SerialNumber = HttpManager.LoginCallbackData["i"].ToString();
+            }
+        }
+
+        InitAllSkill(true);
+        GetOfflineIncome();
+
+        SignManager.ShowPanels();
+
+        Analytics.SetUserId(HttpManager.ID);
+
+        Inited = true;
+        
+        GardenLevel = GardenLevel;
+
+        if (!PlayerPrefManager.GetBool(PlayerPrefManager.INTERACT_CONFIG, false))
+        {
+            HttpManager.GetSelfConfig();
+        }
+        else
+        {
+            HttpManager.UploadConfig();
+        }
+
+        ConfigManager.SaveConfigDocument();
+        ConfigManager.SaveConfigDocumentToDisk();
+    }
+
+    public static void ReactiveLoginCallback(JsonData jsonData)
+    {
+        LoginFlag = false;
+
+        for (int i = 0; i < Initializer.RegistList.Count; i++)
+        {
+            Initializer.RegistList[i].Reactive();
+        }
+    }
+
+
+    public static void SwitchConfig(string id)
+    {
+        ResourceManager.SetText(CanvasLabel.La_Lab, Language.GetStr(LanguageLabel.UI__L_Downloading));
+
+        ResourceManager.SetActive(CanvasLabel.La_Lab, true);
+        ResourceManager.SetActive(CanvasLabel.La_Mask, true);
+
+
+        HttpManager.GetConfigByID(id, SwitchConfigCallback);
+    }
+    
+    public static void SwitchConfigCallback(JsonData jsonData)
+    {
+        if (jsonData.Inst_Object.Keys.Contains("l"))
+        {
+            ResourceManager.Get(CanvasLabel.La_Info).TweenBacCG();
+
+            ResourceManager.SetText(CanvasLabel.La_Lab, Language.GetStr(LanguageLabel.UI__La_Lab0));
+
+
+            ConfigManager.ConfigDocument.LoadXml(jsonData["l"].ToString());
+
+            ConfigManager.ConfigRootNode = ConfigManager.ConfigDocument.SelectSingleNode(PlayerConfigLabel.RootNode);
+
+
+            ResourceManager.SetText(CanvasLabel.L_UserLab, ConfigManager.GetStringFormConfig(PlayerConfigLabel.ID));
+
+            HttpManager.ID = ConfigManager.GetStringFormConfig(PlayerConfigLabel.ID);
+            HttpManager.SerialNumber = ConfigManager.GetStringFormConfig(PlayerConfigLabel.SerialNumber);
+            Debug.Log(HttpManager.ID);
+            Debug.Log(HttpManager.SerialNumber);
+            Bubble.Show(null, Language.GetStr(LanguageLabel.UI__La_Lab0), null, null, () => { Application.Quit(); }, null, false);
+
+
+            UploadConfigFlag = true;
+
+            DownloadConfigFlag = true;
+
+            ConfigManager.SaveConfigDocumentToDisk();
+            PlayerPrefs.SetString(Lib.ConfigPrefs, "");
+        }
+        else
+        {
+            ResourceManager.SetText(CanvasLabel.La_Lab, Language.GetStr(LanguageLabel.UI__La_Lab1));
+
+            ResourceManager.SetActive(CanvasLabel.La_Mask, false);
+        }
+    }
+
+
+    public void OnApplicationQuit()
+    {
+        if (!UploadConfigFlag)
+        {
+            VisitManager.ReverseConfigData();
+
+            ConfigManager.SaveConfigDocument();
+            ConfigManager.SaveConfigDocumentToDisk();
+        }
+    }
+
+    public void OnApplicationPause(bool pause)
+    {
+        if (pause)
+        {
+            InBackground = true;
+            AlreadyGetOfflineIncome = true;
+
+            if (DownloadConfigFlag)
+            {
+                return;
+            }
+
+            VisitManager.ReverseConfigData();
+
+            ConfigManager.SaveConfigDocument();
+            ConfigManager.SaveConfigDocumentToDisk();
+        }
+        else
+        {
+            StaticsManager.GetInstance().StartSession();
+
+            InBackground = false;
+
+            if (IsFirstFrame)
+            {
+                IsFirstFrame = false;
+            }
+            else
+            {
+                if (TutorialManager.NewplayerTutorial)
+                {
+                    return;
+                }
+
+                if (!Initializer.Inited)
+                {
+                    return;
+                }
+
+                if (!Initializer.IsGameActivated)
+                {
+                    return;
+                }
+
+                if (DownloadConfigFlag)
+                {
+                    return;
+                }
+
+                VisitManager.RecoverConfigData();
+
+                if (LoginFlag)
+                {
+                    return;
+                }
+
+                if (ReactiveFlag)
+                {
+                    ReactiveFlag = false;
+
+                    return;
+                }
+
+                LoginFlag = true;
+
+                HttpManager.Login(ReactiveLoginCallback);
+                HttpManager.GetMailAwardData();
+            }
+        }
+    }
 }

+ 10 - 0
Assets/Script/Manage/Panel.meta

@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: c02fa3e2428900e4f8257b0bee9fe0e2
+folderAsset: yes
+timeCreated: 1525664646
+licenseType: Pro
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 83 - 0
Assets/Script/Manage/Panel/ChangeMouseBubble.cs

@@ -0,0 +1,83 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Xml;
+using UnityEngine;
+using UnityEngine.UI;
+
+public class ChangeMouseBubble : Regist
+{
+    public static Text titleTxt;
+    public static Text coinTxt;
+    public static Text diamondTxt;
+    public static Text confirmTxt;
+    public static Text cancelTxt;
+    public static Button confirmBtn;
+    public static Button cancelBtn;
+    public static Transform panel;
+    public static Transform subPanel;
+
+    public static Action confirmCallback;
+    public static Action cancelCallback;
+
+    public override void RegistReference()
+    {
+        titleTxt = ResourceManager.Get<Text>(CanvasLabel.AM_Title);
+        coinTxt = ResourceManager.Get<Text>(CanvasLabel.AM_CoinLab);
+        diamondTxt = ResourceManager.Get<Text>(CanvasLabel.AM_DiamondLab);
+        confirmTxt = ResourceManager.Get<Text>(CanvasLabel.AM_ConfirmLab);
+        cancelTxt = ResourceManager.Get<Text>(CanvasLabel.AM_CancelLab);
+        confirmBtn = ResourceManager.Get<Button>(CanvasLabel.AM_Confirm);
+        cancelBtn = ResourceManager.Get<Button>(CanvasLabel.AM_Cancel);
+        panel = ResourceManager.Get(CanvasLabel.AM_Bubble);
+        subPanel = ResourceManager.Get(CanvasLabel.AM_Bubble0);
+    }
+
+    public override void ThirdInit()
+    {
+        LanguageManager.Add(titleTxt, new MulLanStr(LanguageLabel.UI__AL_Tip));
+        LanguageManager.Add(confirmTxt, new MulLanStr(LanguageLabel.Common__Confirm));
+        LanguageManager.Add(cancelTxt, new MulLanStr(LanguageLabel.Common__Cancel));
+
+        panel.CreateTweenCG(1f, 0.25f, false, true, Curve.EaseOutQuad);
+        subPanel.CreateTweenScale(Vector3.one, 0.25f, true, true, Curve.EaseOutQuad);
+
+        confirmBtn.onClick.AddListener(OnConfirmClick);
+        cancelBtn.onClick.AddListener(OnCancelClick);
+    }
+
+    public static void Open(Action confirm, Action cancel)
+    {
+        AudioManager.PlayClip(ResourceLabel.BubbleClip);
+
+        panel.TweenForCG();
+        subPanel.TweenForScale();
+
+        coinTxt.text = Auxiliary.ShrinkAllNumberStr(ChangeMousePanel.goldCost, 0);
+        diamondTxt.text = Auxiliary.ShrinkAllNumberStr(ChangeMousePanel.diamondCost, 0);
+
+        confirmCallback = confirm;
+        cancelCallback = cancel;
+    }
+
+    public static void Close()
+    {
+        panel.TweenBacCG();
+        subPanel.TweenBacScale();
+    }
+
+    public static void OnConfirmClick()
+    {
+        Close();
+        confirmCallback.SafeInvoke();
+        AudioManager.PlayClip(ResourceLabel.CurrentClip);
+    }
+
+    public static void OnCancelClick()
+    {
+        Close();
+        cancelCallback.SafeInvoke();
+        AudioManager.PlayClip(ResourceLabel.CloseClip);
+    }
+}

+ 13 - 0
Assets/Script/Manage/Panel/ChangeMouseBubble.cs.meta

@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: d7b9cdf26d33ea54cbab37189d5eac53
+timeCreated: 1525677704
+licenseType: Pro
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 239 - 0
Assets/Script/Manage/Panel/ChangeMousePanel.cs

@@ -0,0 +1,239 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Xml;
+using UnityEngine;
+using UnityEngine.UI;
+
+public class ChangeMousePanel : Regist
+{
+    public static Text titleTxt;
+    public static Text closeTxt;
+    public static TextPlus costTxt;
+    public static Button resetBtn;
+    public static Button saveBtn;
+    public static Button closeBtn;
+    public static Button eyeBtn;
+    public static Button mouseBtn;
+    public static Image eyeIcon;
+    public static Image mouseIcon;
+    public static Text eyeTxt;
+    public static Text mouseTxt;
+    public static Transform playerPos;
+    public static Transform eyeTab;
+    public static Transform mouseTab;
+    public static Transform panel;
+
+    public static string goldCostFml;
+    public static string diamondCostFml;
+    public static double goldCost;
+    public static double diamondCost;
+    public static Player player;
+    public static List<int> originDressIds = new List<int>();
+    public static List<int> currentDressIds = new List<int>();
+
+    public static Dictionary<int, EyeCloseItem> eyeCloseItemDict = new Dictionary<int, EyeCloseItem>();
+    public static Dictionary<int, MouseCloseItem> mouseCloseItemDict = new Dictionary<int, MouseCloseItem>();
+
+    public override void RegistReference()
+    {
+        titleTxt = ResourceManager.Get<Text>(CanvasLabel.AL_Tit);
+        closeTxt = ResourceManager.Get<Text>(CanvasLabel.AL_CloseLab);
+        costTxt = ResourceManager.Get<TextPlus>(CanvasLabel.AL_CostLab);
+        resetBtn = ResourceManager.Get<Button>(CanvasLabel.AL_Reset);
+        saveBtn = ResourceManager.Get<Button>(CanvasLabel.AL_Save);
+        closeBtn = ResourceManager.Get<Button>(CanvasLabel.AL_Close);
+        eyeBtn = ResourceManager.Get<Button>(CanvasLabel.AL_HairBtn);
+        mouseBtn = ResourceManager.Get<Button>(CanvasLabel.AL_DressBtn);
+        eyeIcon = ResourceManager.Get<Image>(CanvasLabel.AL_HairIcon);
+        mouseIcon = ResourceManager.Get<Image>(CanvasLabel.AL_DressIcon);
+        eyeTxt = ResourceManager.Get<Text>(CanvasLabel.AL_HairLab);
+        mouseTxt = ResourceManager.Get<Text>(CanvasLabel.AL_DressLab);
+        playerPos = ResourceManager.Get(CanvasLabel.AL_PlayerPos);
+        eyeTab = ResourceManager.Get(CanvasLabel.AL_EyeTab);
+        mouseTab = ResourceManager.Get(CanvasLabel.AL_MouseTab);
+        panel = ResourceManager.Get(CanvasLabel.AL_ChangeMousePanel);
+    }
+
+    public override void ThirdInit()
+    {
+        XmlDocument document = ConfigManager.GetXmlDocument(ResourceLabel.CostConfig);
+        XmlNodeList nodes = document.SelectSingleNode(ConfigLabel.RootNode).ChildNodes;
+        goldCostFml = nodes[1].Attributes[1].Value;
+        diamondCostFml = nodes[2].Attributes[1].Value;
+
+        LanguageManager.Add(titleTxt, new MulLanStr(LanguageLabel.UI__AL_Title));
+        LanguageManager.Add(closeTxt, new MulLanStr(LanguageLabel.UI__AL_Close));
+        LanguageManager.Add(eyeTxt, new MulLanStr(LanguageLabel.UI__AL_Eye));
+        LanguageManager.Add(mouseTxt, new MulLanStr(LanguageLabel.UI__AL_Mouse));
+
+        foreach (var kv in PlayerManager.CloseItemDictionary)
+        {
+            if (kv.Value.BodyPart == BodyPart.Eye)
+            {
+                EyeCloseItem eyeCloseItem = new EyeCloseItem(kv.Value);
+                eyeCloseItemDict.Add(kv.Key, eyeCloseItem);
+            }
+            else if (kv.Value.BodyPart == BodyPart.Mouse)
+            {
+                MouseCloseItem mouseCloseItem = new MouseCloseItem(kv.Value);
+                mouseCloseItemDict.Add(kv.Key, mouseCloseItem);
+            }
+        }
+
+        panel.CreateTweenCG(1f, 0.25f, false, true, Curve.EaseOutQuad);
+        eyeBtn.CreateTweenScale(eyeBtn.transform.localScale + Vector3.one*0.1f, 0.25f, true, true, Curve.EaseOutQuad);
+        mouseBtn.CreateTweenScale(mouseBtn.transform.localScale + Vector3.one * 0.1f, 0.25f, true, true, Curve.EaseOutQuad);
+
+        saveBtn.onClick.AddListener(OnSaveClick);
+        resetBtn.onClick.AddListener(OnResetClick);
+        eyeBtn.onClick.AddListener(OnEyeTabClick);
+        mouseBtn.onClick.AddListener(OnMouseTabClick);
+        closeBtn.onClick.AddListener(OnCloseClick);
+    }
+
+    public static void Open()
+    {
+        panel.TweenForCG();
+
+        if (player != null)
+        {
+            Destroy(player.gameObject);
+        }
+
+        originDressIds = PlayerManager.Player.GetCurrentChangableDressIDs();
+        currentDressIds = new List<int>(originDressIds);
+        BuildPlayer(currentDressIds);
+
+        goldCost = Auxiliary.FmlParse(goldCostFml, "c", (Manager.CircleIncome*6).ToString("0"));
+        diamondCost = Auxiliary.FmlParse(diamondCostFml, "l", Manager.GardenLevel.ToString());
+        costTxt.text = Language.GetStr(LanguageLabel.UI__AL_Cost) + " " + TransferLabel.CoinSprite + Auxiliary.ShrinkAllNumberStr(goldCost, 0) + " " + TransferLabel.DiamondSprite + Auxiliary.ShrinkAllNumberStr(diamondCost, 0);
+
+        OnEyeTabClick();
+    }
+
+    public static void BuildPlayer(List<int> dressIds)
+    {
+        player = PlayerManager.Instance.GetRawPlayer();
+        player.transform.SetParent(playerPos);
+        player.transform.localPosition = Vector3.zero;
+        foreach (var closeID in dressIds)
+        {
+            CloseItem closeItem = PlayerManager.CloseItemDictionary[closeID];
+            closeItem.ChangeDress(player, false);
+        }
+        DelayCall.Call(1, () => { player.DisplayInUI(30f, true); });
+    }
+
+    public static void Close()
+    {
+        AudioManager.PlayClip(ResourceLabel.CloseClip);
+
+        panel.TweenBacCG();
+    }
+
+    public static void OnMouseTabClick()
+    {
+        AudioManager.PlayClip(ResourceLabel.BtnClip);
+
+        eyeTab.SetActive(false);
+        eyeIcon.SetActive(false);
+        eyeBtn.TweenBacScale();
+
+        mouseTab.SetActive(true);
+        mouseIcon.SetActive(true);
+        mouseBtn.TweenForScale();
+    }
+
+    public static void OnEyeTabClick()
+    {
+        AudioManager.PlayClip(ResourceLabel.BtnClip);
+
+        eyeTab.SetActive(true);
+        eyeIcon.SetActive(true);
+        eyeBtn.TweenForScale();
+
+        mouseTab.SetActive(false);
+        mouseIcon.SetActive(false);
+        mouseBtn.TweenBacScale();
+    }
+
+    public static void OnCloseClick()
+    {
+        if (HasCloseChanged())
+        {
+            if (Manager.coin < goldCost)
+            {
+                Close();
+                return;
+            }
+
+            if (Manager.diamond < diamondCost)
+            {
+                Close();
+                return;
+            }
+
+            ChangeMouseBubble.Open(SaveDressIds, Close);
+        }
+        else
+        {
+            Close();
+        }
+    }
+
+    public static void OnResetClick()
+    {
+        AudioManager.PlayClip(ResourceLabel.BtnClip);
+
+        currentDressIds = new List<int>(originDressIds);
+        Destroy(player.gameObject);
+        BuildPlayer(originDressIds);
+    }
+
+    public static void OnSaveClick()
+    {
+        if (HasCloseChanged())
+        {
+            if (Manager.coin < goldCost)
+            {
+                Bubble.Show(null, Language.GetStr(LanguageLabel.Common__ShortCoin));
+                return;
+            }
+
+            if (Manager.diamond < diamondCost)
+            {
+                Bubble.Show(null, Language.GetStr(LanguageLabel.Common__ShortDiamond));
+                return;
+            }
+
+            ChangeMouseBubble.Open(SaveDressIds, null);
+        }
+    }
+
+    public static void SaveDressIds()
+    {
+        PlayerManager.Player.ChangeClose(BodyPart.Eye, PlayerManager.CloseItemDictionary[currentDressIds[5]].ArmatureName);
+        PlayerManager.Player.ChangeClose(BodyPart.Mouse, PlayerManager.CloseItemDictionary[currentDressIds[6]].ArmatureName);
+        PlayerManager.DressDatas[5] = PlayerManager.Player.Eye;
+        PlayerManager.DressDatas[6] = PlayerManager.Player.Mouse;
+        originDressIds[5] = currentDressIds[5];
+        originDressIds[6] = currentDressIds[6];
+
+        Manager.Pay("", goldCost, Current.Coin, null, StaticsManager.ItemID.解锁服装, StaticsManager.ConsumeModule.Charge);
+        Manager.Pay("", diamondCost, Current.Diamond, null, StaticsManager.ItemID.解锁服装, StaticsManager.ConsumeModule.Charge);
+    }
+
+    public static bool HasCloseChanged()
+    {
+        for (int i = 0; i < originDressIds.Count; i++)
+        {
+            if (originDressIds[i] != currentDressIds[i])
+            {
+                return true;
+            }
+        }
+        return false;
+    }
+}

+ 13 - 0
Assets/Script/Manage/Panel/ChangeMousePanel.cs.meta

@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 8e3ab1514ed5df14f8028575c121f57a
+timeCreated: 1525664646
+licenseType: Pro
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 37 - 0
Assets/Script/Manage/Panel/EyeCloseItem.cs

@@ -0,0 +1,37 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using UnityEngine;
+using UnityEngine.UI;
+using Object = UnityEngine.Object;
+
+public class EyeCloseItem
+{
+    public Button button;
+    public Image icon;
+    public Transform trans;
+    public Player player;
+    public CloseItem closeItem;
+
+    public EyeCloseItem(CloseItem closeItem)
+    {
+        this.closeItem = closeItem;
+        trans = ResourceManager.Get(ResourceLabel.MouseCloseItem, Folder.UI, false, ResourceManager.Get(CanvasLabel.AL_EyeTab), false);
+        button = trans.GetComponent<Button>();
+        icon = trans.GetChild(0).GetComponent<Image>();
+
+        icon.sprite = closeItem.Sprites[0];
+        icon.SetNativeSize();
+        icon.rectTransform.SetSizeDeltaByRatio(0.25f, 0.25f);
+
+        button.onClick.AddListener(OnButtonClick);
+    }
+
+    public void OnButtonClick()
+    {
+        Object.Destroy(ChangeMousePanel.player.gameObject);
+        ChangeMousePanel.currentDressIds[5] = closeItem.ID;
+        ChangeMousePanel.BuildPlayer(ChangeMousePanel.currentDressIds);
+    }
+}

+ 13 - 0
Assets/Script/Manage/Panel/EyeCloseItem.cs.meta

@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: bc4047a21cf404a44b95ada26aa4d872
+timeCreated: 1525674450
+licenseType: Pro
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 36 - 0
Assets/Script/Manage/Panel/MouseCloseItem.cs

@@ -0,0 +1,36 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using UnityEngine;
+using UnityEngine.UI;
+using Object = UnityEngine.Object;
+
+public class MouseCloseItem
+{
+    public Button button;
+    public Image icon;
+    public Transform trans;
+    public Player player;
+    public CloseItem closeItem;
+
+    public MouseCloseItem(CloseItem closeItem)
+    {
+        this.closeItem = closeItem;
+        trans = ResourceManager.Get(ResourceLabel.MouseCloseItem, Folder.UI, false, ResourceManager.Get(CanvasLabel.AL_MouseTab), false);
+        button = trans.GetComponent<Button>();
+        icon = trans.GetChild(0).GetComponent<Image>();
+
+        icon.sprite = closeItem.Sprites[0];
+        icon.SetNativeSize();
+
+        button.onClick.AddListener(OnButtonClick);
+    }
+
+    public void OnButtonClick()
+    {
+        Object.Destroy(ChangeMousePanel.player.gameObject);
+        ChangeMousePanel.currentDressIds[6] = closeItem.ID;
+        ChangeMousePanel.BuildPlayer(ChangeMousePanel.currentDressIds);
+    }
+}

+ 13 - 0
Assets/Script/Manage/Panel/MouseCloseItem.cs.meta

@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 3b8a15cfcfb1d3645a4ae66f4ca77068
+timeCreated: 1525674450
+licenseType: Pro
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 286 - 286
Assets/Script/Manage/PlayerManager.cs

@@ -1,287 +1,287 @@
-using DragonBones;
-
-#if UNITY_EDITOR
-using UnityEditor;
-#endif
-
-using UnityEngine;
-using UnityEngine.UI;
-
-using System;
-using System.Xml;
-using System.Text;
-using System.Linq;
-using System.Collections;
-using System.Diagnostics;
-using System.Collections.Generic;
-using Debug = UnityEngine.Debug;
-using Object = UnityEngine.Object;
-using Transform = UnityEngine.Transform;
-
-public class PlayerManager : Regist 
-{
-    #region Config
-
-    public static bool Inited;
-    public static Player Player;
-    public static Transform DressRoom;
-    public static Transform DefaultPinkPlayer;
-    public static Transform DefaultBlondPlayer;
-    public static Transform DefaultBrownPlayer;
-    public static Transform SelectedPlayer;
-    public static PlayerManager Instance;
-
-    public static List<int>BoughtCloseIDs = new List<int>();
-    public static List<string> DressDatas = new List<string>();  
-    public static Dictionary<int, CloseItem> CloseItemDictionary = new Dictionary<int, CloseItem>();
-    public static Dictionary<string, int> CloseIDDictionary = new Dictionary<string, int>();
-    public static Dictionary<string, Sprite> CloseSpriteDictionary = new Dictionary<string, Sprite>();
-    public static Dictionary<string, Texture2D> CloseTextureDictionary = new Dictionary<string, Texture2D>();
-
-    #endregion
-
-    public override void InstantiatePrefabs()
-    {
-        #region Player
-
-        Initializer.DebugText.text = "error : mp0";
-        if (!Inited)
-        {
-            //Initializer.DebugText.text = "error : mp0-1";
-            //UnityFactory.factory.LoadDragonBonesData(ResourceManager.Load<TextAsset>(ResourceLabel.StandSke, Folder.Config));
-
-            //Initializer.DebugText.text = "error : mp0-2";
-            //UnityFactory.factory.LoadTextureAtlasData(ResourceManager.Load<TextAsset>(ResourceLabel.StandTex0, Folder.Config), ResourceLabel.StandTexture0);
-
-            //Initializer.DebugText.text = "error : mp0-3";
-            //UnityFactory.factory.LoadTextureAtlasData(ResourceManager.Load<TextAsset>(ResourceLabel.StandTex1, Folder.Config), ResourceLabel.StandTexture1);
-
-            Inited = true;
-        }
-
-        Initializer.DebugText.text = "error : mp1";
-        if (!TutorialManager.NewplayerTutorial || TutorialManager.NewplayerTutorialIndex != 1)
-        {
-            GetPlayer();
-
-            DressDatas = ConfigManager.GetDressData();
-        }
-        else
-        {
-            DefaultPinkPlayer = ResourceManager.Get(ResourceLabel.Player, Folder.Scene, false, ResourceManager.Get(TutorialLabel.PinkPlayerPos), false, ObjType.Player);
-            DefaultBlondPlayer = ResourceManager.Get(ResourceLabel.Player, Folder.Scene, false, ResourceManager.Get(TutorialLabel.BlondPlayerPos), false, ObjType.Player);
-            DefaultBrownPlayer = ResourceManager.Get(ResourceLabel.Player, Folder.Scene, false, ResourceManager.Get(TutorialLabel.BrownPlayerPos), false, ObjType.Player);
-            
-            if (DefaultPinkPlayer.GetComponent<Player>() == null)
-            {
-                DefaultPinkPlayer.AddScript<Player>().BuildPink();
-            }
-
-            if (DefaultBlondPlayer.GetComponent<Player>() == null)
-            {
-                DefaultBlondPlayer.AddScript<Player>().BuildBlond();
-            }
-
-            if (DefaultBrownPlayer.GetComponent<Player>() == null)
-            {
-                DefaultBrownPlayer.AddScript<Player>().BuildBrown();
-            }
-
-            Vector3 tutorialPlayerScale = new Vector3(0.8f, 0.8f, 0.8f);
-            DefaultPinkPlayer.localScale = tutorialPlayerScale;
-            DefaultBlondPlayer.localScale = tutorialPlayerScale;
-            DefaultBrownPlayer.localScale = tutorialPlayerScale;
-
-            SelectedPlayer = DefaultBlondPlayer;
-        }
-
-        #endregion
-
-        #region DressRoom
-
-        Initializer.DebugText.text = "error : mp2";
-        List<XmlAttributeCollection> attributeList = ConfigManager.GetDressRoomConfig();
-
-        Player.InDressRoomJumpFrequency = float.Parse(attributeList[0][1].Value);
-
-
-        Initializer.DebugText.text = "error : mp3";
-        DressRoom = ResourceManager.Get(ResourceLabel.DressRoom, Folder.UI, true, null, true, ObjType.DressRoom);
-        DressRoom.SetActive(false);
-        DontDestroyOnLoad(DressRoom);
-
-        Initializer.DebugText.text = "error : mp4";
-        List<int> dressList = ConfigManager.GetDressList();
-
-        Initializer.DebugText.text = "error : mp5";
-        for (int i = 0; i < dressList.Count; i++)
-        {
-            BoughtCloseIDs.Add(dressList[i]);
-        }
-
-        #endregion
-    }
-
-    public override void FirstInit()
-    {
-        Instance = this;
-
-        ResourceManager.Get(ResourceLabel.DressRoom).CreateTweenSr(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-    }
-
-    public Player GetPlayer(XmlNode xmlNode = null)
-    {
-        List<string> DressData = new List<string>();
-
-        if (xmlNode == null)
-        {
-            DressData = ConfigManager.GetDressData();
-        }
-        else
-        {
-            DressData = ConfigManager.GetDressData(xmlNode);
-        }
-
-
-        Transform tra = ResourceManager.Get(ResourceLabel.Player, Folder.Scene, false, transform, false, ObjType.Player);
-        tra.SetParent(ResourceManager.Get(GardenLabel.GardenPivot));
-
-        Player = tra.GetComponent<Player>();
-
-        if (Player == null)
-        {
-            Player = tra.AddScript<Player>();
-
-            Player.Build();
-        }
-
-        for (int i = 0; i < 8; i++)
-        {
-            if (i == 7 && DressData[i] == "Empty")
-            {
-                continue;
-            }
-            string armatureName = DressData[i];
-            if (!CloseItemDictionary.Values.ToList().MyContains(item => item.ArmatureName == armatureName))
-            {
-                Debug.Log(armatureName);
-                if (i == 0)
-                {
-                    DressData[0] = "脑壳-缺失";
-                }
-                else if (i == 1)
-                {
-                    DressData[1] = "裙子-缺失";
-                }
-                else if (i == 2)
-                {
-                    DressData[2] = "鞋子-缺失";
-                }
-                else if (i == 3)
-                {
-                    DressData[3] = "头饰-缺失";
-                }
-                else if (i == 4)
-                {
-                    DressData[4] = "上衣-缺失";
-                }
-                else if (i == 7)
-                {
-                    DressData[7] = "翅膀-缺失";
-                }
-                //DressData = ConfigManager.GetDefaultDressDatas();
-            }
-        }
-        BuildPlayer(DressData);
-
-
-        Player.SetAllCollider(true);
-        Player.Flip(PlayerDirection.Left);
-        Player.transform.position = ResourceManager.Get(GardenLabel.GardenPlayerPos).position;
-
-        tra.localScale = new Vector3(0.5f, 0.5f, 0.5f);
-
-        ResourceManager.TransformDictionary.Add(tra.name, tra);
-
-        return Player;
-    }
-
-    public Player GetRawPlayer()
-    {
-        Transform trans = ResourceManager.Get(ResourceLabel.Player, Folder.Scene, false, null, false, ObjType.Player);
-        var player = trans.GetComponent<Player>();
-        if (player == null)
-        {
-            player = trans.AddScript<Player>();
-            player.BuildBlond();
-        }
-        //BuildPlayer(dressData, player, false);
-        return player;
-    }
-
-    public static void BuildPlayer(List<string> dressData, Player player = null, bool resetDepth = true)
-    {
-        if (player == null)
-        {
-            player = Player;
-        }
-
-        player.ChangeClose(BodyPart.Head, dressData[0], resetDepth);
-        player.ChangeClose(BodyPart.Dress, dressData[1], resetDepth);
-        player.ChangeClose(BodyPart.Shoe, dressData[2], resetDepth);
-        player.ChangeClose(BodyPart.Headwear, dressData[3], resetDepth);
-        player.ChangeClose(BodyPart.Top, dressData[4], resetDepth);
-        player.ChangeClose(BodyPart.Eye, dressData[5], resetDepth);
-        player.ChangeClose(BodyPart.Mouse, dressData[6], resetDepth);
-        player.ChangeClose(BodyPart.Wing, dressData[7], resetDepth);
-
-        player.ChangeClose(BodyPart.LeftLongSleeve, dressData[8], resetDepth);
-        player.ChangeClose(BodyPart.LeftShortSleeve, dressData[9], resetDepth);
-        player.ChangeClose(BodyPart.RightLongSleeve, dressData[10], resetDepth);
-        player.ChangeClose(BodyPart.RightShortSleeve, dressData[11], resetDepth);
-    }
-
-
-    public static void CreateCloseItems(List<XmlAttributeCollection> attributeList)
-    {
-        for (int i = 0; i < attributeList.Count; i++)
-        {
-            new CloseItem(attributeList[i]);
-        }
-    }
-
-    public static void InitDressRoom()
-    {
-        //foreach (var kv in CloseItemDictionary)
-        //{
-        //    Debug.Log(kv.Value.ArmatureName);
-        //}
-        for (int i = 0; i < BoughtCloseIDs.Count; i++)
-        {
-            CloseItemDictionary[BoughtCloseIDs[i]].Unlock();
-        }
-    }
-
-
-    public static Texture2D GetCloseTexture(string closeName)
-    {
-        if (CloseTextureDictionary.ContainsKey(closeName))
-        {
-            return CloseTextureDictionary[closeName];
-        }
-        else
-        {
-            if (CloseSpriteDictionary.ContainsKey(closeName))
-            {
-                Texture2D texture = CloseSpriteDictionary[closeName].ToTexture();
-                CloseTextureDictionary.Add(closeName, texture);
-                return texture;
-            }
-            else
-            {
-                Debug.LogError("");
-                return null;
-            }
-        }
-    }
+using DragonBones;
+
+#if UNITY_EDITOR
+using UnityEditor;
+#endif
+
+using UnityEngine;
+using UnityEngine.UI;
+
+using System;
+using System.Xml;
+using System.Text;
+using System.Linq;
+using System.Collections;
+using System.Diagnostics;
+using System.Collections.Generic;
+using Debug = UnityEngine.Debug;
+using Object = UnityEngine.Object;
+using Transform = UnityEngine.Transform;
+
+public class PlayerManager : Regist 
+{
+    #region Config
+
+    public static bool Inited;
+    public static Player Player;
+    public static Transform DressRoom;
+    public static Transform DefaultPinkPlayer;
+    public static Transform DefaultBlondPlayer;
+    public static Transform DefaultBrownPlayer;
+    public static Transform SelectedPlayer;
+    public static PlayerManager Instance;
+
+    public static List<int>BoughtCloseIDs = new List<int>();
+    public static List<string> DressDatas = new List<string>();  
+    public static Dictionary<int, CloseItem> CloseItemDictionary = new Dictionary<int, CloseItem>();
+    public static Dictionary<string, int> CloseIDDictionary = new Dictionary<string, int>();
+    public static Dictionary<string, Sprite> CloseSpriteDictionary = new Dictionary<string, Sprite>();
+    public static Dictionary<string, Texture2D> CloseTextureDictionary = new Dictionary<string, Texture2D>();
+
+    #endregion
+
+    public override void InstantiatePrefabs()
+    {
+        #region Player
+
+        Initializer.DebugText.text = "error : mp0";
+        if (!Inited)
+        {
+            //Initializer.DebugText.text = "error : mp0-1";
+            //UnityFactory.factory.LoadDragonBonesData(ResourceManager.Load<TextAsset>(ResourceLabel.StandSke, Folder.Config));
+
+            //Initializer.DebugText.text = "error : mp0-2";
+            //UnityFactory.factory.LoadTextureAtlasData(ResourceManager.Load<TextAsset>(ResourceLabel.StandTex0, Folder.Config), ResourceLabel.StandTexture0);
+
+            //Initializer.DebugText.text = "error : mp0-3";
+            //UnityFactory.factory.LoadTextureAtlasData(ResourceManager.Load<TextAsset>(ResourceLabel.StandTex1, Folder.Config), ResourceLabel.StandTexture1);
+
+            Inited = true;
+        }
+
+        Initializer.DebugText.text = "error : mp1";
+        if (!TutorialManager.NewplayerTutorial || TutorialManager.NewplayerTutorialIndex != 1)
+        {
+            GetPlayer();
+
+            DressDatas = ConfigManager.GetDressData();
+        }
+        else
+        {
+            DefaultPinkPlayer = ResourceManager.Get(ResourceLabel.Player, Folder.Scene, false, ResourceManager.Get(TutorialLabel.PinkPlayerPos), false, ObjType.Player);
+            DefaultBlondPlayer = ResourceManager.Get(ResourceLabel.Player, Folder.Scene, false, ResourceManager.Get(TutorialLabel.BlondPlayerPos), false, ObjType.Player);
+            DefaultBrownPlayer = ResourceManager.Get(ResourceLabel.Player, Folder.Scene, false, ResourceManager.Get(TutorialLabel.BrownPlayerPos), false, ObjType.Player);
+            
+            if (DefaultPinkPlayer.GetComponent<Player>() == null)
+            {
+                DefaultPinkPlayer.AddScript<Player>().BuildPink();
+            }
+
+            if (DefaultBlondPlayer.GetComponent<Player>() == null)
+            {
+                DefaultBlondPlayer.AddScript<Player>().BuildBlond();
+            }
+
+            if (DefaultBrownPlayer.GetComponent<Player>() == null)
+            {
+                DefaultBrownPlayer.AddScript<Player>().BuildBrown();
+            }
+
+            Vector3 tutorialPlayerScale = new Vector3(0.8f, 0.8f, 0.8f);
+            DefaultPinkPlayer.localScale = tutorialPlayerScale;
+            DefaultBlondPlayer.localScale = tutorialPlayerScale;
+            DefaultBrownPlayer.localScale = tutorialPlayerScale;
+
+            SelectedPlayer = DefaultBlondPlayer;
+        }
+
+        #endregion
+
+        #region DressRoom
+
+        Initializer.DebugText.text = "error : mp2";
+        List<XmlAttributeCollection> attributeList = ConfigManager.GetDressRoomConfig();
+
+        Player.InDressRoomJumpFrequency = float.Parse(attributeList[0][1].Value);
+
+
+        Initializer.DebugText.text = "error : mp3";
+        DressRoom = ResourceManager.Get(ResourceLabel.DressRoom, Folder.UI, true, null, true, ObjType.DressRoom);
+        DressRoom.SetActive(false);
+        DontDestroyOnLoad(DressRoom);
+
+        Initializer.DebugText.text = "error : mp4";
+        List<int> dressList = ConfigManager.GetDressList();
+
+        Initializer.DebugText.text = "error : mp5";
+        for (int i = 0; i < dressList.Count; i++)
+        {
+            BoughtCloseIDs.Add(dressList[i]);
+        }
+
+        #endregion
+    }
+
+    public override void FirstInit()
+    {
+        Instance = this;
+
+        ResourceManager.Get(ResourceLabel.DressRoom).CreateTweenSr(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+    }
+
+    public Player GetPlayer(XmlNode xmlNode = null)
+    {
+        List<string> DressData = new List<string>();
+
+        if (xmlNode == null)
+        {
+            DressData = ConfigManager.GetDressData();
+        }
+        else
+        {
+            DressData = ConfigManager.GetDressData(xmlNode);
+        }
+
+
+        Transform tra = ResourceManager.Get(ResourceLabel.Player, Folder.Scene, false, transform, false, ObjType.Player);
+        tra.SetParent(ResourceManager.Get(GardenLabel.GardenPivot));
+
+        Player = tra.GetComponent<Player>();
+
+        if (Player == null)
+        {
+            Player = tra.AddScript<Player>();
+
+            Player.Build();
+        }
+
+        for (int i = 0; i < 8; i++)
+        {
+            if (i == 7 && DressData[i] == "Empty")
+            {
+                continue;
+            }
+            string armatureName = DressData[i];
+            if (!CloseItemDictionary.Values.ToList().MyContains(item => item.ArmatureName == armatureName))
+            {
+                Debug.Log(armatureName);
+                if (i == 0)
+                {
+                    DressData[0] = "脑壳-缺失";
+                }
+                else if (i == 1)
+                {
+                    DressData[1] = "裙子-缺失";
+                }
+                else if (i == 2)
+                {
+                    DressData[2] = "鞋子-缺失";
+                }
+                else if (i == 3)
+                {
+                    DressData[3] = "头饰-缺失";
+                }
+                else if (i == 4)
+                {
+                    DressData[4] = "上衣-缺失";
+                }
+                else if (i == 7)
+                {
+                    DressData[7] = "翅膀-缺失";
+                }
+                //DressData = ConfigManager.GetDefaultDressDatas();
+            }
+        }
+        BuildPlayer(DressData);
+
+
+        Player.SetAllCollider(true);
+        Player.Flip(PlayerDirection.Left);
+        Player.transform.position = ResourceManager.Get(GardenLabel.GardenPlayerPos).position;
+
+        tra.localScale = new Vector3(0.5f, 0.5f, 0.5f);
+
+        ResourceManager.TransformDictionary.Add(tra.name, tra);
+
+        return Player;
+    }
+
+    public Player GetRawPlayer()
+    {
+        Transform trans = ResourceManager.Get(ResourceLabel.Player, Folder.Scene, false, null, false, ObjType.Player);
+        var player = trans.GetComponent<Player>();
+        if (player == null)
+        {
+            player = trans.AddScript<Player>();
+            player.BuildBlond();
+        }
+        //BuildPlayer(dressData, player, false);
+        return player;
+    }
+
+    public static void BuildPlayer(List<string> dressData, Player player = null, bool resetDepth = true)
+    {
+        if (player == null)
+        {
+            player = Player;
+        }
+
+        player.ChangeClose(BodyPart.Head, dressData[0], resetDepth);
+        player.ChangeClose(BodyPart.Dress, dressData[1], resetDepth);
+        player.ChangeClose(BodyPart.Shoe, dressData[2], resetDepth);
+        player.ChangeClose(BodyPart.Headwear, dressData[3], resetDepth);
+        player.ChangeClose(BodyPart.Top, dressData[4], resetDepth);
+        player.ChangeClose(BodyPart.Eye, dressData[5], resetDepth);
+        player.ChangeClose(BodyPart.Mouse, dressData[6], resetDepth);
+        player.ChangeClose(BodyPart.Wing, dressData[7], resetDepth);
+
+        player.ChangeClose(BodyPart.LeftLongSleeve, dressData[8], resetDepth);
+        player.ChangeClose(BodyPart.LeftShortSleeve, dressData[9], resetDepth);
+        player.ChangeClose(BodyPart.RightLongSleeve, dressData[10], resetDepth);
+        player.ChangeClose(BodyPart.RightShortSleeve, dressData[11], resetDepth);
+    }
+
+
+    public static void CreateCloseItems(List<XmlAttributeCollection> attributeList)
+    {
+        for (int i = 0; i < attributeList.Count; i++)
+        {
+            new CloseItem(attributeList[i]);
+        }
+    }
+
+    public static void InitDressRoom()
+    {
+        //foreach (var kv in CloseItemDictionary)
+        //{
+        //    Debug.Log(kv.Value.ArmatureName);
+        //}
+        for (int i = 0; i < BoughtCloseIDs.Count; i++)
+        {
+            CloseItemDictionary[BoughtCloseIDs[i]].Unlock();
+        }
+    }
+
+
+    public static Texture2D GetCloseTexture(string closeName)
+    {
+        if (CloseTextureDictionary.ContainsKey(closeName))
+        {
+            return CloseTextureDictionary[closeName];
+        }
+        else
+        {
+            if (CloseSpriteDictionary.ContainsKey(closeName))
+            {
+                Texture2D texture = CloseSpriteDictionary[closeName].ToTexture();
+                CloseTextureDictionary.Add(closeName, texture);
+                return texture;
+            }
+            else
+            {
+                Debug.LogError("");
+                return null;
+            }
+        }
+    }
 }

+ 713 - 713
Assets/Script/Manage/SocialManager.cs

@@ -1,714 +1,714 @@
-using UnityEngine;
-using UnityEngine.UI;
-using UnityEngine.EventSystems;
-
-using System;
-using System.Collections;
-using System.Diagnostics;
-using System.Collections.Generic;
-
-using LitJson;
-
-using Debug = UnityEngine.Debug;
-
-public class SocialManager : Regist
-{
-    #region Config
-
-    public static bool OpenRankPanelFlag;
-
-    public static int RecordCommentLastIndex;
-    public static int RecordCommentFirstIndex;
-    public static bool OpenCommentFlag;
-    public static Vector3 RecordCommentPosition;
-
-    public static bool IsPlayer;
-    public static bool IsPanelOpen;
-    public static bool PullCommentDataFlag;
-    public static bool UpdateCommentDataFlag;
-
-    public static int PlayerLastDisplayIndex = -1;
-    public static int PlayerFirstDisplayIndex;
-    public static int VisiteeLastDisplayIndex = -1;
-    public static int VisiteeFirstDisplayIndex;
-    public static int CurrentPlayerCommentPage;
-    public static int CurrentVisiteeCommentPage;
-
-    public static bool IsFriendFilterOn;
-    public static Text PraiseText;
-    public static Button PraiseButton;
-    public static Toggle CommentFriendFilterToggle;
-    public static DateTime CommentTime;
-    public static InputField CommentInputField;
-    public static ScrollRectPlus CommentScrollRect;
-
-    public static float UpdateRankDataTime = 5;
-    public static float UpdateRankDataTimer = 0;
-    public static float UpdatePraiseDataTime = 10;
-    public static float UpdatePraiseDataTimer = 5;
-    public static float CommentTimeSpan = 30f;
-    public static List<CommentData> PlayerCommentDatas = new List<CommentData>();
-    public static List<CommentData> VisiteeCommentDatas = new List<CommentData>();
-    public static List<CommentItem> CommentItems = new List<CommentItem>();
-
-    private static int CommentPanelMaxRevertAmt = 15;
-    private static int CommentPanelMaxChildAmt = 20;
-    private static float CommentItemHeight = 120;
-
-    #endregion
-
-    public void Update()
-    {
-        if (!HttpManager.IsRankDataReady)
-        {
-            UpdateRankDataTimer += Time.deltaTime;
-
-            if (UpdateRankDataTimer >= UpdateRankDataTime)
-            {
-                UpdateRankDataTimer = 0;
-
-                HttpManager.GetRankData();
-            }
-        }
-
-        if (VisitManager.InVisit)
-        {
-            return;
-        }
-
-        UpdatePraiseDataTimer += Time.deltaTime;
-
-        if (UpdatePraiseDataTimer >= UpdatePraiseDataTime)
-        {
-            UpdatePraiseDataTimer = 0;
-
-            PraiseText.text = HttpManager.PraiseAmt.ToString();
-        }
-    }
-
-
-    public override void FirstInit()
-    {
-        PraiseText = ResourceManager.Get<Text>(CanvasLabel.C_PraiseText);
-        PraiseButton = ResourceManager.Get<Button>(CanvasLabel.C_Praise);
-        CommentInputField = ResourceManager.Get<InputField>(CanvasLabel.Q_InputField);
-        CommentScrollRect = ResourceManager.Get<ScrollRectPlus>(CanvasLabel.Q_ScrollRect);
-        CommentFriendFilterToggle = ResourceManager.Get<Toggle>(CanvasLabel.Q_FriendFilterButton);
-
-        CommentFriendFilterToggle.onValueChanged.AddListener(OnCommentFriendFilterToggleClick);
-
-        CommentScrollRect.onValueChanged.AddListener(OnScroll);
-
-        FriendPanel.OnFriendListRefresh += OnFriendListRefresh;
-        VisitManager.OnEnterVisteeGarden += OnEnterVisiteeGarden;
-        VisitManager.OnExitVisteeGarden += OnExitVisiteeGarden;
-    }
-
-
-    public static void Praise()
-    {
-        if (VisitManager.InVisit)
-        {
-            PraiseText.text = (int.Parse(PraiseText.text) + 1).ToString();
-
-            HttpManager.Praise(HttpManager.SerialNumber, VisitManager.VisiteeSerialNumber);
-
-            DisablePraise();
-        }
-        else
-        {
-            throw new Exception();
-        }
-    }
-
-    public static void EnablePraise()
-    {
-        PraiseText.color = Lib.PraiseTextBlue;
-        PraiseButton.image.color = Color.white;
-        PraiseButton.interactable = true;
-    }
-
-    public static void DisablePraise()
-    {
-        PraiseText.color = Lib.PraiseTextWhite;
-        PraiseButton.image.color = Lib.Pink;
-        PraiseButton.interactable = false;
-    }
-
-
-    public static void Comment()
-    {
-        if (string.IsNullOrEmpty(CommentInputField.text))
-        {
-            Bubble.Show(null, Language.GetStr(LanguageLabel.UI__Lb_Send2));
-
-            return;
-        }
-
-        if ((DateTime.Now - CommentTime).TotalSeconds > CommentTimeSpan)
-        {
-            CommentTime = DateTime.Now;
-
-            string content = StringFilter.GetFilteredString(CommentInputField.text);
-
-            HttpManager.AddComment(HttpManager.SerialNumber, VisitManager.VisiteeSerialNumber, content, CommentType.Garden);
-
-            CommentInputField.text = "";
-        }
-        else
-        {
-            Bubble.Show(null, Language.GetStr(LanguageLabel.UI__Q_CommentTip));
-        }
-    }
-
-    public static void OpenCommentPanel()
-    {
-        IsPlayer = !VisitManager.InVisit;
-
-        if (IsPlayer)
-        {
-            UpdateCommentPage(IsPlayer);
-        }
-        else
-        {
-            if (string.IsNullOrEmpty(VisitManager.VisiteeSerialNumber))
-            {
-                Bubble.Show(null, Language.GetStr(LanguageLabel.UI__C_CannotComment));
-                return;
-            }
-            else
-            {
-                UpdateCommentPage(IsPlayer);
-            }
-        }
-
-        IsPanelOpen = true;
-        ResourceManager.Get(CanvasLabel.Q_CommentBK).TweenForCG();
-
-        if (VisitManager.InVisit)
-        {
-            ResourceManager.SetActive(CanvasLabel.Q_InputBK, true);
-            RectTransform rectTransform = ResourceManager.Get<RectTransform>(CanvasLabel.Q_ScrollRect);
-            rectTransform.sizeDelta = new Vector2(rectTransform.rect.size.x, 206.1f);
-        }
-        else
-        {
-            ResourceManager.SetActive(CanvasLabel.Q_InputBK, false);
-            RectTransform rectTransform = ResourceManager.Get<RectTransform>(CanvasLabel.Q_ScrollRect);
-            rectTransform.sizeDelta = new Vector2(rectTransform.rect.size.x, 278.3f);
-        }
-    }
-
-    public static void CloseCommentPanel()
-    {
-        ResourceManager.Get(CanvasLabel.Q_CommentBK).TweenBacCG();
-        IsPanelOpen = false;
-    }
-
-    public static void RecordCommentPanel()
-    {
-        if (IsPlayer)
-        {
-            OpenCommentFlag = true;
-            RecordCommentLastIndex = PlayerLastDisplayIndex;
-            RecordCommentFirstIndex = PlayerFirstDisplayIndex;
-            RecordCommentPosition = CommentScrollRect.content.transform.position;
-        }
-    }
-
-    public static void RecoverCommentPanel()
-    {
-        if (OpenCommentFlag)
-        {
-            OpenCommentFlag = false;
-
-            ClearCommentPanel();
-
-            PlayerLastDisplayIndex = -1;
-            PlayerFirstDisplayIndex = 0;
-
-            int antiCrush = 0;
-
-            while (PlayerFirstDisplayIndex != RecordCommentFirstIndex || PlayerLastDisplayIndex != RecordCommentLastIndex)
-            {
-                if (antiCrush > 10000)
-                {
-                    throw new Exception("Crush");
-                }
-
-                if (CommentScrollRect.content.childCount >= CommentPanelMaxChildAmt)
-                {
-                    CommentItem commentItem = CommentScrollRect.content.GetChild(0).GetComponent<CommentItem>();
-                    ResourceManager.Save(commentItem);
-                    CommentItems.Remove(commentItem);
-                    PlayerFirstDisplayIndex++;
-                }
-
-                PlayerLastDisplayIndex++;
-                CommentData commentData = PlayerCommentDatas[PlayerLastDisplayIndex];
-                CommentItem newCommentItem = ResourceManager.GetCommentItem(commentData.NickName, commentData.SerialNumber, commentData.Content);
-                CommentItems.Add(newCommentItem);
-            }
-
-            CommentScrollRect.content.transform.position = RecordCommentPosition;
-
-            OpenCommentPanel();
-        }
-    }
-
-
-    public static void PullCommentPage(bool isPlayer)
-    {
-        PullCommentDataFlag = true;
-        UpdateCommentDataFlag = false;
-        //Debug.Log("PullPage");
-
-        if (isPlayer)
-        {
-            HttpManager.GetComment
-            (
-                HttpManager.SerialNumber,
-                (CurrentPlayerCommentPage + 1).ToString(),
-                CommentType.Garden,
-                data =>
-                {
-                    if (!UpdateCommentDataFlag)
-                    {
-                        ReceiveCommentDatas(IsPlayer, data);
-                        NextCommentPage(IsPlayer, true);
-                    }
-                    else
-                    {
-                        PullCommentDataFlag = false;
-                    }
-                }
-            );
-        }
-        else
-        {
-            HttpManager.GetComment
-            (
-                HttpManager.SerialNumber,
-                (CurrentVisiteeCommentPage + 1).ToString(),
-                CommentType.Garden,
-                data =>
-                {
-                    if (!UpdateCommentDataFlag)
-                    {
-                        ReceiveCommentDatas(IsPlayer, data);
-                        NextCommentPage(IsPlayer, true);
-                    }
-                    else
-                    {
-                        PullCommentDataFlag = false;
-                    }
-                }
-            );
-        }
-    }
-
-    public static void UpdateCommentPage(bool isPlayer)
-    {
-        UpdateCommentDataFlag = true;
-
-        ClearCommentPanel();
-
-        ResourceManager.Get(CanvasLabel.Q_Tip).TweenForCG();
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Q_Tip), Language.GetStr(LanguageLabel.UI__Loading));
-
-        if (isPlayer)
-        {
-            //Debug.Log("UpdatePlayer");
-
-            PlayerFirstDisplayIndex = 0;
-            PlayerLastDisplayIndex = -1;
-            CurrentPlayerCommentPage = 0;
-            PlayerCommentDatas = new List<CommentData>();
-
-            HttpManager.GetComment
-            (
-                HttpManager.SerialNumber,
-                "1",
-                CommentType.Garden,
-                data =>
-                {
-                    if (!VisitManager.InVisit)
-                    {
-                        DelayCall.Call(0.5f, () => ResourceManager.Get(CanvasLabel.Q_Tip).TweenBacCG());
-                        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Q_Tip), Language.GetStr(LanguageLabel.UI__LoadSucceed));
-
-                        ReceiveCommentDatas(true, data);
-                        NextCommentPage(true, true);
-
-                        ResourceManager.Get<CanvasGroup>(CanvasLabel.Q_CommentBK).interactable = false;
-                        DelayCall.Call(1, () => ResourceManager.Get<CanvasGroup>(CanvasLabel.Q_CommentBK).interactable = true);
-                    }
-                }
-            );
-        }
-        else
-        {
-            //Debug.Log("UpdateVisitee");
-
-            VisiteeFirstDisplayIndex = 0;
-            VisiteeLastDisplayIndex = -1;
-            CurrentVisiteeCommentPage = 0;
-            VisiteeCommentDatas = new List<CommentData>();
-
-            HttpManager.GetComment
-            (
-                VisitManager.VisiteeSerialNumber,
-                "1",
-                CommentType.Garden,
-                data =>
-                {
-                    if (VisitManager.InVisit)
-                    {
-                        DelayCall.Call(0.5f, () => ResourceManager.Get(CanvasLabel.Q_Tip).TweenBacCG());
-                        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Q_Tip), Language.GetStr(LanguageLabel.UI__LoadSucceed));
-
-                        ReceiveCommentDatas(false, data);
-                        NextCommentPage(false, true);
-
-                        ResourceManager.Get<CanvasGroup>(CanvasLabel.Q_CommentBK).interactable = false;
-                        DelayCall.Call(1, () => ResourceManager.Get<CanvasGroup>(CanvasLabel.Q_CommentBK).interactable = true);
-                    }
-                }
-            );
-        }
-    }
-
-    public static void ReceiveCommentDatas(bool isPlayer, JsonData jsonData)
-    {
-        Auxiliary.Instance.DelayCall
-        (
-            () =>
-            {
-                PullCommentDataFlag = false;
-            },
-            1
-        );
-
-        if (!jsonData.Inst_Object.ContainsKey("l"))
-        {
-            return;
-        }
-
-        if (jsonData["l"].Count == 0)
-        {
-            return;
-        }
-
-        if (isPlayer)
-        {
-            CurrentPlayerCommentPage++;
-
-            foreach (JsonData commentData in jsonData["l"])
-            {
-                PlayerCommentDatas.UniqueAdd(new CommentData(commentData));
-            }
-        }
-        else
-        {
-            CurrentVisiteeCommentPage++;
-
-            foreach (JsonData commentData in jsonData["l"])
-            {
-                VisiteeCommentDatas.UniqueAdd(new CommentData(commentData));
-            }
-        }
-    }
-
-    public static void NextCommentPage(bool isPlayer, bool isDownload)
-    {
-        //Debug.Log("NextPage");
-        if (isPlayer)
-        {
-            int saveAmt = 0;
-            int updateAmt = Mathf.Min(15, PlayerCommentDatas.Count - PlayerLastDisplayIndex - 1);
-
-            for (int i = 0; i < updateAmt; i++)
-            {
-                if (CommentScrollRect.content.childCount >= CommentPanelMaxChildAmt)
-                {
-                    saveAmt++;
-                    CommentItem commentItem = CommentScrollRect.content.GetChild(0).GetComponent<CommentItem>();
-                    ResourceManager.Save(commentItem);
-                    CommentItems.Remove(commentItem);
-                    PlayerFirstDisplayIndex++;
-                }
-
-                PlayerLastDisplayIndex++;
-
-                CommentData commentData = PlayerCommentDatas[PlayerLastDisplayIndex];
-                CommentItem newCommentItem = ResourceManager.GetCommentItem(commentData.NickName, commentData.SerialNumber, commentData.Content);
-                CommentItems.Add(newCommentItem);
-            }
-
-            int offset = isDownload ? 1 : 0;
-            float scaleFactor = isDownload ? CommentScrollRect.GetComponent<Image>().canvas.scaleFactor : 1;
-
-            if (saveAmt > 0)
-            {
-                CommentScrollRect.content.position += new Vector3(0, -(saveAmt - offset)*CommentItemHeight*scaleFactor, 0);
-                CommentScrollRect.AddContentOffset(new Vector3(0, -(saveAmt - offset)* CommentItemHeight * scaleFactor, 0));
-            }
-        }
-        else
-        {
-            int saveAmt = 0;
-            int updateAmt = Mathf.Min(15, VisiteeCommentDatas.Count - VisiteeLastDisplayIndex - 1);
-
-            for (int i = 0; i < updateAmt; i++)
-            {
-                if (CommentScrollRect.content.childCount >= CommentPanelMaxChildAmt)
-                {
-                    saveAmt++;
-                    CommentItem commentItem = CommentScrollRect.content.GetChild(0).GetComponent<CommentItem>();
-                    ResourceManager.Save(commentItem);
-                    CommentItems.Remove(commentItem);
-                    VisiteeFirstDisplayIndex++;
-                }
-
-                VisiteeLastDisplayIndex++;
-
-                CommentData commentData = VisiteeCommentDatas[VisiteeLastDisplayIndex];
-                CommentItem newCommentItem = ResourceManager.GetCommentItem(commentData.NickName, commentData.SerialNumber, commentData.Content);
-                CommentItems.Add(newCommentItem);
-            }
-
-            int offset = isDownload ? 1 : 0;
-            float scaleFactor = isDownload ? CommentScrollRect.GetComponent<Image>().canvas.scaleFactor : 1;
-
-            if (saveAmt > 0)
-            {
-                CommentScrollRect.content.position += new Vector3(0, -(saveAmt - offset)* CommentItemHeight * scaleFactor, 0);
-                CommentScrollRect.AddContentOffset(new Vector3(0, -(saveAmt - offset)* CommentItemHeight * scaleFactor, 0));
-            }
-        }
-    }
-
-    public static void PreviousCommentPage(bool isPlayer)
-    {
-        if (CommentScrollRect.content.childCount == 0)
-        {
-            return;
-        }
-
-        //Debug.Log("PreviousPage");
-
-        if (isPlayer)
-        {
-            if (PlayerCommentDatas.Count > CommentPanelMaxChildAmt && PlayerFirstDisplayIndex > 0)
-            {
-                int revertAmt = Mathf.Min(CommentPanelMaxRevertAmt, PlayerFirstDisplayIndex);
-
-                for (int i = 0; i < revertAmt; i++)
-                {
-                    CommentItem commentItem = CommentScrollRect.content.GetChild(CommentScrollRect.content.childCount - 1).GetComponent<CommentItem>();
-                    ResourceManager.Save(commentItem);
-                    CommentItems.Remove(commentItem);
-                    CommentData commentData = VisiteeCommentDatas[VisiteeLastDisplayIndex];
-
-                    commentItem = ResourceManager.GetCommentItem(commentData.NickName, commentData.SerialNumber, commentData.Content);
-                    CommentItems.Add(commentItem);
-                    commentItem.transform.SetAsFirstSibling();
-
-                    PlayerLastDisplayIndex--;
-                    PlayerFirstDisplayIndex--;
-                }
-
-                if (revertAmt > 0)
-                {
-                    CommentScrollRect.content.position += new Vector3(0, revertAmt* CommentItemHeight, 0);
-                    CommentScrollRect.AddContentOffset(new Vector3(0, revertAmt* CommentItemHeight, 0));
-                }
-            }
-        }
-        else
-        {
-            if (VisiteeCommentDatas.Count > CommentPanelMaxChildAmt && VisiteeFirstDisplayIndex > 0)
-            {
-                int revertAmt = Mathf.Min(CommentPanelMaxRevertAmt, VisiteeFirstDisplayIndex);
-
-                for (int i = 0; i < revertAmt; i++)
-                {
-                    CommentItem commentItem = CommentScrollRect.content.GetChild(CommentScrollRect.content.childCount - 1).GetComponent<CommentItem>();
-                    ResourceManager.Save(commentItem);
-                    CommentItems.Remove(commentItem);
-                    CommentData commentData = VisiteeCommentDatas[VisiteeLastDisplayIndex];
-
-                    commentItem = ResourceManager.GetCommentItem(commentData.NickName, commentData.SerialNumber, commentData.Content);
-                    CommentItems.Add(commentItem);
-                    commentItem.transform.SetAsFirstSibling();
-
-                    VisiteeLastDisplayIndex--;
-                    VisiteeFirstDisplayIndex--;
-                }
-
-                if (revertAmt > 0)
-                {
-                    CommentScrollRect.content.position += new Vector3(0, revertAmt* CommentItemHeight, 0);
-                    CommentScrollRect.AddContentOffset(new Vector3(0, revertAmt* CommentItemHeight, 0));
-                }
-            }
-        }
-    }
-
-    public static void ClearCommentPanel()
-    {
-        int childAmt = CommentScrollRect.content.childCount;
-
-        for (int i = 0; i < childAmt; i++)
-        {
-            CommentItem commentItem = CommentScrollRect.content.GetChild(0).GetComponent<CommentItem>();
-            ResourceManager.Save(commentItem);
-            CommentItems.Remove(commentItem);
-        }
-
-        CommentScrollRect.verticalNormalizedPosition = 1;
-    }
-
-    public static void OnScroll(Vector2 position)
-    {
-        if (PullCommentDataFlag)
-        {
-            return;
-        }
-
-        if (CommentScrollRect.content.childCount == 0)
-        {
-            return;
-        }
-
-        if (position.y >= 1)
-        {
-            PreviousCommentPage(IsPlayer);
-        }
-
-        if (position.y <= 0)
-        {
-            if (IsPlayer)
-            {
-                if (PlayerLastDisplayIndex == PlayerCommentDatas.Count - 1)
-                {
-                    PullCommentPage(true);
-                }
-                else if (PlayerLastDisplayIndex < PlayerCommentDatas.Count - 1)
-                {
-                    NextCommentPage(true, false);
-                }
-            }
-            else
-            {
-                if (VisiteeLastDisplayIndex == VisiteeCommentDatas.Count - 1)
-                {
-                    PullCommentPage(false);
-                }
-                else if (VisiteeLastDisplayIndex < VisiteeCommentDatas.Count - 1)
-                {
-                    NextCommentPage(false, false);
-                }
-            }
-        }
-    }
-
-
-    public static void OpenRankPanel()
-    {
-        AudioManager.PlayClip(AudioLabel.Bubble);
-
-        ResourceManager.Get(CanvasLabel.S_RankBK).TweenForCG();
-    }
-
-    public static void CloseRankPanel()
-    {
-        AudioManager.PlayClip(AudioLabel.ClickButton);
-
-        ResourceManager.Get(CanvasLabel.S_RankBK).TweenBacCG();
-    }
-
-    public static void RecordRankPanel()
-    {
-        OpenRankPanelFlag = true;
-    }
-
-    public static void RecoverRankPanel()
-    {
-        if (OpenRankPanelFlag)
-        {
-            OpenRankPanelFlag = false;
-
-            OpenRankPanel();
-        }
-    }
-
-    public static void InitRankPanel()
-    {
-        if (Initializer.Inited && HttpManager.IsRankDataReady)
-        {
-            for (int i = 0; i < HttpManager.RankDatas.Count; i++)
-            {
-                ResourceManager.GetRanktem((i + 1).ToString(), HttpManager.RankDatas[i][1].ToString(), HttpManager.RankDatas[i][0].ToString());
-            }
-        }
-    }
-
-
-    public static void OnCommentFriendFilterToggleClick(bool value)
-    {
-        AudioManager.PlayClip(ResourceLabel.BtnClip);
-        if (value)
-        {
-            EnableCommentFriendFilter();
-        }
-        else
-        {
-            DisableCommentFriendFilter();
-        }
-    }
-
-    public static void EnableCommentFriendFilter()
-    {
-        IsFriendFilterOn = true;
-        foreach (var commentItem in CommentItems)
-        {
-            if (!commentItem.IsFriend(FriendPanel.FriendAccountDatas))
-            {
-                commentItem.SetActive(false);
-            }
-        }
-    }
-
-    public static void DisableCommentFriendFilter()
-    {
-        IsFriendFilterOn = false;
-        foreach (var commentItem in CommentItems)
-        {
-            commentItem.SetActive(true);
-        }
-    }
-
-
-    private static void OnFriendListRefresh(List<AccountData> accountDatas)
-    {
-        if (IsFriendFilterOn)
-        {
-            EnableCommentFriendFilter();
-        }
-    }
-
-
-    public static void OnEnterVisiteeGarden()
-    {
-        ResourceManager.SetActive(CanvasLabel.C_NotifyParent, false);
-    }
-
-    public static void OnExitVisiteeGarden()
-    {
-        if (ResourceManager.Get(CanvasLabel.C_Notify).gameObject.activeSelf)
-        {
-            ResourceManager.SetActive(CanvasLabel.C_NotifyParent, true);
-        }
-    }
+using UnityEngine;
+using UnityEngine.UI;
+using UnityEngine.EventSystems;
+
+using System;
+using System.Collections;
+using System.Diagnostics;
+using System.Collections.Generic;
+
+using LitJson;
+
+using Debug = UnityEngine.Debug;
+
+public class SocialManager : Regist
+{
+    #region Config
+
+    public static bool OpenRankPanelFlag;
+
+    public static int RecordCommentLastIndex;
+    public static int RecordCommentFirstIndex;
+    public static bool OpenCommentFlag;
+    public static Vector3 RecordCommentPosition;
+
+    public static bool IsPlayer;
+    public static bool IsPanelOpen;
+    public static bool PullCommentDataFlag;
+    public static bool UpdateCommentDataFlag;
+
+    public static int PlayerLastDisplayIndex = -1;
+    public static int PlayerFirstDisplayIndex;
+    public static int VisiteeLastDisplayIndex = -1;
+    public static int VisiteeFirstDisplayIndex;
+    public static int CurrentPlayerCommentPage;
+    public static int CurrentVisiteeCommentPage;
+
+    public static bool IsFriendFilterOn;
+    public static Text PraiseText;
+    public static Button PraiseButton;
+    public static Toggle CommentFriendFilterToggle;
+    public static DateTime CommentTime;
+    public static InputField CommentInputField;
+    public static ScrollRectPlus CommentScrollRect;
+
+    public static float UpdateRankDataTime = 5;
+    public static float UpdateRankDataTimer = 0;
+    public static float UpdatePraiseDataTime = 10;
+    public static float UpdatePraiseDataTimer = 5;
+    public static float CommentTimeSpan = 30f;
+    public static List<CommentData> PlayerCommentDatas = new List<CommentData>();
+    public static List<CommentData> VisiteeCommentDatas = new List<CommentData>();
+    public static List<CommentItem> CommentItems = new List<CommentItem>();
+
+    private static int CommentPanelMaxRevertAmt = 15;
+    private static int CommentPanelMaxChildAmt = 20;
+    private static float CommentItemHeight = 120;
+
+    #endregion
+
+    public void Update()
+    {
+        if (!HttpManager.IsRankDataReady)
+        {
+            UpdateRankDataTimer += Time.deltaTime;
+
+            if (UpdateRankDataTimer >= UpdateRankDataTime)
+            {
+                UpdateRankDataTimer = 0;
+
+                HttpManager.GetRankData();
+            }
+        }
+
+        if (VisitManager.InVisit)
+        {
+            return;
+        }
+
+        UpdatePraiseDataTimer += Time.deltaTime;
+
+        if (UpdatePraiseDataTimer >= UpdatePraiseDataTime)
+        {
+            UpdatePraiseDataTimer = 0;
+
+            PraiseText.text = HttpManager.PraiseAmt.ToString();
+        }
+    }
+
+
+    public override void FirstInit()
+    {
+        PraiseText = ResourceManager.Get<Text>(CanvasLabel.C_PraiseText);
+        PraiseButton = ResourceManager.Get<Button>(CanvasLabel.C_Praise);
+        CommentInputField = ResourceManager.Get<InputField>(CanvasLabel.Q_InputField);
+        CommentScrollRect = ResourceManager.Get<ScrollRectPlus>(CanvasLabel.Q_ScrollRect);
+        CommentFriendFilterToggle = ResourceManager.Get<Toggle>(CanvasLabel.Q_FriendFilterButton);
+
+        CommentFriendFilterToggle.onValueChanged.AddListener(OnCommentFriendFilterToggleClick);
+
+        CommentScrollRect.onValueChanged.AddListener(OnScroll);
+
+        FriendPanel.OnFriendListRefresh += OnFriendListRefresh;
+        VisitManager.OnEnterVisteeGarden += OnEnterVisiteeGarden;
+        VisitManager.OnExitVisteeGarden += OnExitVisiteeGarden;
+    }
+
+
+    public static void Praise()
+    {
+        if (VisitManager.InVisit)
+        {
+            PraiseText.text = (int.Parse(PraiseText.text) + 1).ToString();
+
+            HttpManager.Praise(HttpManager.SerialNumber, VisitManager.VisiteeSerialNumber);
+
+            DisablePraise();
+        }
+        else
+        {
+            throw new Exception();
+        }
+    }
+
+    public static void EnablePraise()
+    {
+        PraiseText.color = Lib.PraiseTextBlue;
+        PraiseButton.image.color = Color.white;
+        PraiseButton.interactable = true;
+    }
+
+    public static void DisablePraise()
+    {
+        PraiseText.color = Lib.PraiseTextWhite;
+        PraiseButton.image.color = Lib.Pink;
+        PraiseButton.interactable = false;
+    }
+
+
+    public static void Comment()
+    {
+        if (string.IsNullOrEmpty(CommentInputField.text))
+        {
+            Bubble.Show(null, Language.GetStr(LanguageLabel.UI__Lb_Send2));
+
+            return;
+        }
+
+        if ((DateTime.Now - CommentTime).TotalSeconds > CommentTimeSpan)
+        {
+            CommentTime = DateTime.Now;
+
+            string content = StringFilter.GetFilteredString(CommentInputField.text);
+
+            HttpManager.AddComment(HttpManager.SerialNumber, VisitManager.VisiteeSerialNumber, content, CommentType.Garden);
+
+            CommentInputField.text = "";
+        }
+        else
+        {
+            Bubble.Show(null, Language.GetStr(LanguageLabel.UI__Q_CommentTip));
+        }
+    }
+
+    public static void OpenCommentPanel()
+    {
+        IsPlayer = !VisitManager.InVisit;
+
+        if (IsPlayer)
+        {
+            UpdateCommentPage(IsPlayer);
+        }
+        else
+        {
+            if (string.IsNullOrEmpty(VisitManager.VisiteeSerialNumber))
+            {
+                Bubble.Show(null, Language.GetStr(LanguageLabel.UI__C_CannotComment));
+                return;
+            }
+            else
+            {
+                UpdateCommentPage(IsPlayer);
+            }
+        }
+
+        IsPanelOpen = true;
+        ResourceManager.Get(CanvasLabel.Q_CommentBK).TweenForCG();
+
+        if (VisitManager.InVisit)
+        {
+            ResourceManager.SetActive(CanvasLabel.Q_InputBK, true);
+            RectTransform rectTransform = ResourceManager.Get<RectTransform>(CanvasLabel.Q_ScrollRect);
+            rectTransform.sizeDelta = new Vector2(rectTransform.rect.size.x, 206.1f);
+        }
+        else
+        {
+            ResourceManager.SetActive(CanvasLabel.Q_InputBK, false);
+            RectTransform rectTransform = ResourceManager.Get<RectTransform>(CanvasLabel.Q_ScrollRect);
+            rectTransform.sizeDelta = new Vector2(rectTransform.rect.size.x, 278.3f);
+        }
+    }
+
+    public static void CloseCommentPanel()
+    {
+        ResourceManager.Get(CanvasLabel.Q_CommentBK).TweenBacCG();
+        IsPanelOpen = false;
+    }
+
+    public static void RecordCommentPanel()
+    {
+        if (IsPlayer)
+        {
+            OpenCommentFlag = true;
+            RecordCommentLastIndex = PlayerLastDisplayIndex;
+            RecordCommentFirstIndex = PlayerFirstDisplayIndex;
+            RecordCommentPosition = CommentScrollRect.content.transform.position;
+        }
+    }
+
+    public static void RecoverCommentPanel()
+    {
+        if (OpenCommentFlag)
+        {
+            OpenCommentFlag = false;
+
+            ClearCommentPanel();
+
+            PlayerLastDisplayIndex = -1;
+            PlayerFirstDisplayIndex = 0;
+
+            int antiCrush = 0;
+
+            while (PlayerFirstDisplayIndex != RecordCommentFirstIndex || PlayerLastDisplayIndex != RecordCommentLastIndex)
+            {
+                if (antiCrush > 10000)
+                {
+                    throw new Exception("Crush");
+                }
+
+                if (CommentScrollRect.content.childCount >= CommentPanelMaxChildAmt)
+                {
+                    CommentItem commentItem = CommentScrollRect.content.GetChild(0).GetComponent<CommentItem>();
+                    ResourceManager.Save(commentItem);
+                    CommentItems.Remove(commentItem);
+                    PlayerFirstDisplayIndex++;
+                }
+
+                PlayerLastDisplayIndex++;
+                CommentData commentData = PlayerCommentDatas[PlayerLastDisplayIndex];
+                CommentItem newCommentItem = ResourceManager.GetCommentItem(commentData.NickName, commentData.SerialNumber, commentData.Content);
+                CommentItems.Add(newCommentItem);
+            }
+
+            CommentScrollRect.content.transform.position = RecordCommentPosition;
+
+            OpenCommentPanel();
+        }
+    }
+
+
+    public static void PullCommentPage(bool isPlayer)
+    {
+        PullCommentDataFlag = true;
+        UpdateCommentDataFlag = false;
+        //Debug.Log("PullPage");
+
+        if (isPlayer)
+        {
+            HttpManager.GetComment
+            (
+                HttpManager.SerialNumber,
+                (CurrentPlayerCommentPage + 1).ToString(),
+                CommentType.Garden,
+                data =>
+                {
+                    if (!UpdateCommentDataFlag)
+                    {
+                        ReceiveCommentDatas(IsPlayer, data);
+                        NextCommentPage(IsPlayer, true);
+                    }
+                    else
+                    {
+                        PullCommentDataFlag = false;
+                    }
+                }
+            );
+        }
+        else
+        {
+            HttpManager.GetComment
+            (
+                HttpManager.SerialNumber,
+                (CurrentVisiteeCommentPage + 1).ToString(),
+                CommentType.Garden,
+                data =>
+                {
+                    if (!UpdateCommentDataFlag)
+                    {
+                        ReceiveCommentDatas(IsPlayer, data);
+                        NextCommentPage(IsPlayer, true);
+                    }
+                    else
+                    {
+                        PullCommentDataFlag = false;
+                    }
+                }
+            );
+        }
+    }
+
+    public static void UpdateCommentPage(bool isPlayer)
+    {
+        UpdateCommentDataFlag = true;
+
+        ClearCommentPanel();
+
+        ResourceManager.Get(CanvasLabel.Q_Tip).TweenForCG();
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Q_Tip), Language.GetStr(LanguageLabel.UI__Loading));
+
+        if (isPlayer)
+        {
+            //Debug.Log("UpdatePlayer");
+
+            PlayerFirstDisplayIndex = 0;
+            PlayerLastDisplayIndex = -1;
+            CurrentPlayerCommentPage = 0;
+            PlayerCommentDatas = new List<CommentData>();
+
+            HttpManager.GetComment
+            (
+                HttpManager.SerialNumber,
+                "1",
+                CommentType.Garden,
+                data =>
+                {
+                    if (!VisitManager.InVisit)
+                    {
+                        DelayCall.Call(0.5f, () => ResourceManager.Get(CanvasLabel.Q_Tip).TweenBacCG());
+                        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Q_Tip), Language.GetStr(LanguageLabel.UI__LoadSucceed));
+
+                        ReceiveCommentDatas(true, data);
+                        NextCommentPage(true, true);
+
+                        ResourceManager.Get<CanvasGroup>(CanvasLabel.Q_CommentBK).interactable = false;
+                        DelayCall.Call(1, () => ResourceManager.Get<CanvasGroup>(CanvasLabel.Q_CommentBK).interactable = true);
+                    }
+                }
+            );
+        }
+        else
+        {
+            //Debug.Log("UpdateVisitee");
+
+            VisiteeFirstDisplayIndex = 0;
+            VisiteeLastDisplayIndex = -1;
+            CurrentVisiteeCommentPage = 0;
+            VisiteeCommentDatas = new List<CommentData>();
+
+            HttpManager.GetComment
+            (
+                VisitManager.VisiteeSerialNumber,
+                "1",
+                CommentType.Garden,
+                data =>
+                {
+                    if (VisitManager.InVisit)
+                    {
+                        DelayCall.Call(0.5f, () => ResourceManager.Get(CanvasLabel.Q_Tip).TweenBacCG());
+                        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Q_Tip), Language.GetStr(LanguageLabel.UI__LoadSucceed));
+
+                        ReceiveCommentDatas(false, data);
+                        NextCommentPage(false, true);
+
+                        ResourceManager.Get<CanvasGroup>(CanvasLabel.Q_CommentBK).interactable = false;
+                        DelayCall.Call(1, () => ResourceManager.Get<CanvasGroup>(CanvasLabel.Q_CommentBK).interactable = true);
+                    }
+                }
+            );
+        }
+    }
+
+    public static void ReceiveCommentDatas(bool isPlayer, JsonData jsonData)
+    {
+        Auxiliary.Instance.DelayCall
+        (
+            () =>
+            {
+                PullCommentDataFlag = false;
+            },
+            1
+        );
+
+        if (!jsonData.Inst_Object.ContainsKey("l"))
+        {
+            return;
+        }
+
+        if (jsonData["l"].Count == 0)
+        {
+            return;
+        }
+
+        if (isPlayer)
+        {
+            CurrentPlayerCommentPage++;
+
+            foreach (JsonData commentData in jsonData["l"])
+            {
+                PlayerCommentDatas.UniqueAdd(new CommentData(commentData));
+            }
+        }
+        else
+        {
+            CurrentVisiteeCommentPage++;
+
+            foreach (JsonData commentData in jsonData["l"])
+            {
+                VisiteeCommentDatas.UniqueAdd(new CommentData(commentData));
+            }
+        }
+    }
+
+    public static void NextCommentPage(bool isPlayer, bool isDownload)
+    {
+        //Debug.Log("NextPage");
+        if (isPlayer)
+        {
+            int saveAmt = 0;
+            int updateAmt = Mathf.Min(15, PlayerCommentDatas.Count - PlayerLastDisplayIndex - 1);
+
+            for (int i = 0; i < updateAmt; i++)
+            {
+                if (CommentScrollRect.content.childCount >= CommentPanelMaxChildAmt)
+                {
+                    saveAmt++;
+                    CommentItem commentItem = CommentScrollRect.content.GetChild(0).GetComponent<CommentItem>();
+                    ResourceManager.Save(commentItem);
+                    CommentItems.Remove(commentItem);
+                    PlayerFirstDisplayIndex++;
+                }
+
+                PlayerLastDisplayIndex++;
+
+                CommentData commentData = PlayerCommentDatas[PlayerLastDisplayIndex];
+                CommentItem newCommentItem = ResourceManager.GetCommentItem(commentData.NickName, commentData.SerialNumber, commentData.Content);
+                CommentItems.Add(newCommentItem);
+            }
+
+            int offset = isDownload ? 1 : 0;
+            float scaleFactor = isDownload ? CommentScrollRect.GetComponent<Image>().canvas.scaleFactor : 1;
+
+            if (saveAmt > 0)
+            {
+                CommentScrollRect.content.position += new Vector3(0, -(saveAmt - offset)*CommentItemHeight*scaleFactor, 0);
+                CommentScrollRect.AddContentOffset(new Vector3(0, -(saveAmt - offset)* CommentItemHeight * scaleFactor, 0));
+            }
+        }
+        else
+        {
+            int saveAmt = 0;
+            int updateAmt = Mathf.Min(15, VisiteeCommentDatas.Count - VisiteeLastDisplayIndex - 1);
+
+            for (int i = 0; i < updateAmt; i++)
+            {
+                if (CommentScrollRect.content.childCount >= CommentPanelMaxChildAmt)
+                {
+                    saveAmt++;
+                    CommentItem commentItem = CommentScrollRect.content.GetChild(0).GetComponent<CommentItem>();
+                    ResourceManager.Save(commentItem);
+                    CommentItems.Remove(commentItem);
+                    VisiteeFirstDisplayIndex++;
+                }
+
+                VisiteeLastDisplayIndex++;
+
+                CommentData commentData = VisiteeCommentDatas[VisiteeLastDisplayIndex];
+                CommentItem newCommentItem = ResourceManager.GetCommentItem(commentData.NickName, commentData.SerialNumber, commentData.Content);
+                CommentItems.Add(newCommentItem);
+            }
+
+            int offset = isDownload ? 1 : 0;
+            float scaleFactor = isDownload ? CommentScrollRect.GetComponent<Image>().canvas.scaleFactor : 1;
+
+            if (saveAmt > 0)
+            {
+                CommentScrollRect.content.position += new Vector3(0, -(saveAmt - offset)* CommentItemHeight * scaleFactor, 0);
+                CommentScrollRect.AddContentOffset(new Vector3(0, -(saveAmt - offset)* CommentItemHeight * scaleFactor, 0));
+            }
+        }
+    }
+
+    public static void PreviousCommentPage(bool isPlayer)
+    {
+        if (CommentScrollRect.content.childCount == 0)
+        {
+            return;
+        }
+
+        //Debug.Log("PreviousPage");
+
+        if (isPlayer)
+        {
+            if (PlayerCommentDatas.Count > CommentPanelMaxChildAmt && PlayerFirstDisplayIndex > 0)
+            {
+                int revertAmt = Mathf.Min(CommentPanelMaxRevertAmt, PlayerFirstDisplayIndex);
+
+                for (int i = 0; i < revertAmt; i++)
+                {
+                    CommentItem commentItem = CommentScrollRect.content.GetChild(CommentScrollRect.content.childCount - 1).GetComponent<CommentItem>();
+                    ResourceManager.Save(commentItem);
+                    CommentItems.Remove(commentItem);
+                    CommentData commentData = VisiteeCommentDatas[VisiteeLastDisplayIndex];
+
+                    commentItem = ResourceManager.GetCommentItem(commentData.NickName, commentData.SerialNumber, commentData.Content);
+                    CommentItems.Add(commentItem);
+                    commentItem.transform.SetAsFirstSibling();
+
+                    PlayerLastDisplayIndex--;
+                    PlayerFirstDisplayIndex--;
+                }
+
+                if (revertAmt > 0)
+                {
+                    CommentScrollRect.content.position += new Vector3(0, revertAmt* CommentItemHeight, 0);
+                    CommentScrollRect.AddContentOffset(new Vector3(0, revertAmt* CommentItemHeight, 0));
+                }
+            }
+        }
+        else
+        {
+            if (VisiteeCommentDatas.Count > CommentPanelMaxChildAmt && VisiteeFirstDisplayIndex > 0)
+            {
+                int revertAmt = Mathf.Min(CommentPanelMaxRevertAmt, VisiteeFirstDisplayIndex);
+
+                for (int i = 0; i < revertAmt; i++)
+                {
+                    CommentItem commentItem = CommentScrollRect.content.GetChild(CommentScrollRect.content.childCount - 1).GetComponent<CommentItem>();
+                    ResourceManager.Save(commentItem);
+                    CommentItems.Remove(commentItem);
+                    CommentData commentData = VisiteeCommentDatas[VisiteeLastDisplayIndex];
+
+                    commentItem = ResourceManager.GetCommentItem(commentData.NickName, commentData.SerialNumber, commentData.Content);
+                    CommentItems.Add(commentItem);
+                    commentItem.transform.SetAsFirstSibling();
+
+                    VisiteeLastDisplayIndex--;
+                    VisiteeFirstDisplayIndex--;
+                }
+
+                if (revertAmt > 0)
+                {
+                    CommentScrollRect.content.position += new Vector3(0, revertAmt* CommentItemHeight, 0);
+                    CommentScrollRect.AddContentOffset(new Vector3(0, revertAmt* CommentItemHeight, 0));
+                }
+            }
+        }
+    }
+
+    public static void ClearCommentPanel()
+    {
+        int childAmt = CommentScrollRect.content.childCount;
+
+        for (int i = 0; i < childAmt; i++)
+        {
+            CommentItem commentItem = CommentScrollRect.content.GetChild(0).GetComponent<CommentItem>();
+            ResourceManager.Save(commentItem);
+            CommentItems.Remove(commentItem);
+        }
+
+        CommentScrollRect.verticalNormalizedPosition = 1;
+    }
+
+    public static void OnScroll(Vector2 position)
+    {
+        if (PullCommentDataFlag)
+        {
+            return;
+        }
+
+        if (CommentScrollRect.content.childCount == 0)
+        {
+            return;
+        }
+
+        if (position.y >= 1)
+        {
+            PreviousCommentPage(IsPlayer);
+        }
+
+        if (position.y <= 0)
+        {
+            if (IsPlayer)
+            {
+                if (PlayerLastDisplayIndex == PlayerCommentDatas.Count - 1)
+                {
+                    PullCommentPage(true);
+                }
+                else if (PlayerLastDisplayIndex < PlayerCommentDatas.Count - 1)
+                {
+                    NextCommentPage(true, false);
+                }
+            }
+            else
+            {
+                if (VisiteeLastDisplayIndex == VisiteeCommentDatas.Count - 1)
+                {
+                    PullCommentPage(false);
+                }
+                else if (VisiteeLastDisplayIndex < VisiteeCommentDatas.Count - 1)
+                {
+                    NextCommentPage(false, false);
+                }
+            }
+        }
+    }
+
+
+    public static void OpenRankPanel()
+    {
+        AudioManager.PlayClip(AudioLabel.Bubble);
+
+        ResourceManager.Get(CanvasLabel.S_RankBK).TweenForCG();
+    }
+
+    public static void CloseRankPanel()
+    {
+        AudioManager.PlayClip(AudioLabel.ClickButton);
+
+        ResourceManager.Get(CanvasLabel.S_RankBK).TweenBacCG();
+    }
+
+    public static void RecordRankPanel()
+    {
+        OpenRankPanelFlag = true;
+    }
+
+    public static void RecoverRankPanel()
+    {
+        if (OpenRankPanelFlag)
+        {
+            OpenRankPanelFlag = false;
+
+            OpenRankPanel();
+        }
+    }
+
+    public static void InitRankPanel()
+    {
+        if (Initializer.Inited && HttpManager.IsRankDataReady)
+        {
+            for (int i = 0; i < HttpManager.RankDatas.Count; i++)
+            {
+                ResourceManager.GetRanktem((i + 1).ToString(), HttpManager.RankDatas[i][1].ToString(), HttpManager.RankDatas[i][0].ToString());
+            }
+        }
+    }
+
+
+    public static void OnCommentFriendFilterToggleClick(bool value)
+    {
+        AudioManager.PlayClip(ResourceLabel.BtnClip);
+        if (value)
+        {
+            EnableCommentFriendFilter();
+        }
+        else
+        {
+            DisableCommentFriendFilter();
+        }
+    }
+
+    public static void EnableCommentFriendFilter()
+    {
+        IsFriendFilterOn = true;
+        foreach (var commentItem in CommentItems)
+        {
+            if (!commentItem.IsFriend(FriendPanel.FriendAccountDatas))
+            {
+                commentItem.SetActive(false);
+            }
+        }
+    }
+
+    public static void DisableCommentFriendFilter()
+    {
+        IsFriendFilterOn = false;
+        foreach (var commentItem in CommentItems)
+        {
+            commentItem.SetActive(true);
+        }
+    }
+
+
+    private static void OnFriendListRefresh(List<AccountData> accountDatas)
+    {
+        if (IsFriendFilterOn)
+        {
+            EnableCommentFriendFilter();
+        }
+    }
+
+
+    public static void OnEnterVisiteeGarden()
+    {
+        ResourceManager.SetActive(CanvasLabel.C_NotifyParent, false);
+    }
+
+    public static void OnExitVisiteeGarden()
+    {
+        if (ResourceManager.Get(CanvasLabel.C_Notify).gameObject.activeSelf)
+        {
+            ResourceManager.SetActive(CanvasLabel.C_NotifyParent, true);
+        }
+    }
 }

+ 1702 - 1642
Assets/Script/Manage/TutorialManager.cs

@@ -1,1643 +1,1703 @@
-using System;
-using UnityEngine;
-using UnityEngine.UI;
-
-using System.Collections;
-using System.Collections.Generic;
-
-public class TutorialManager : Regist
-{
-    #region Config
-
-    public static bool PayExempt
-    {
-        get
-        {
-            if (payExempt)
-            {
-                return true;
-            }
-            else
-            {
-                if (PayExemptAmt > 0)
-                {
-                    PayExemptAmt--;
-
-                    return true;
-                }
-                else
-                {
-                    return false;
-                }
-            }
-        }
-        set { payExempt = value; }
-    }
-    public static bool payExempt;
-    public static int PayExemptAmt;
-
-    public static bool ConnectExempt
-    {
-        get
-        {
-            if (connectExempt)
-            {
-                return true;
-            }
-            else
-            {
-                if (ConnectExemptAmt > 0)
-                {
-                    ConnectExemptAmt--;
-
-                    return true;
-                }
-                else
-                {
-                    return false;
-                }
-            }
-        }
-        set { connectExempt = value; }
-    }
-    public static bool connectExempt;
-    public static int ConnectExemptAmt;
-
-    public static int MemoryMinigameTutorialLevel = 18;
-    public static int VisitTutorialLevel = 8;
-    public static int CommentTutorialLevel = 8;
-    public static int DressroomTutorialLevel = 13;
-    public static int FindSoloMinigameTutorialLevel = 22;
-    public static int PlazaRoomTutorialLevel = 28;
-    public static int SetNicknameTutorialIndex = 7;
-    public static int MinFlowerForFindSoloGame = 2;
-    public static int MinFlowerForFindMissingGame = 3;
-    public static int FindMissingMinigameTutorialLevel = 31;
-    public static int FashionShowTutorialLevel = 21;
-
-    public static bool NewplayerTutorial;
-    public static int NewplayerTutorialIndex;
-
-    public static bool MemoryMinigameTutorial;
-    public static bool memoryMinigameTutorial;
-    public static int MemoryMinigameTutorialIndex;
-
-    public static bool FindMissingMinigameTutorial;
-    public static bool findMissingMinigameTutorial;
-    public static int FindMissingMinigameTutorialIndex;
-
-    public static bool VisitTutorial;
-    public static bool visitTutorial;
-    public static int VisitTutorialIndex;
-
-    public static bool DressroomTutorial;
-    public static bool dressroomTutorial;
-    public static int DressroomTutorialIndex;
-
-    public static bool FindSoloMinigameTutorial;
-    public static bool findSoloMinigameTutorial;
-    public static int FindSoloMinigameTutorialIndex;
-
-    public static bool PlazaRoomTutorial;
-    public static bool plazaRoomTutorial;
-    public static int PlazaRoomTutorialIndex;
-
-
-    public static bool FashionShowTutorial;
-    public static bool fashionShowTutorial;
-    public static int FashionShowTutorialIndex;
-
-    #endregion
-
-    public override void InstantiatePrefabs()
-    {
-        if (NewplayerTutorial)
-        {
-            ResourceManager.Get(ResourceLabel.Tutorial, Folder.Scene, true, transform, false, ObjType.Tutorial).AddScript<Tutorial>();
-        }
-    }
-
-    public override void ThirdInit()
-    {
-        ResourceManager.Get<Image>(CanvasLabel.N_Mask).material = Lib.UIMaskMat;
-
-        Tutorial.Arrow = ResourceManager.Get(CanvasLabel.N_Arrow);
-        Tutorial.Material = ResourceManager.Get<Image>(CanvasLabel.N_Mask).material;
-
-        if (NewplayerTutorial)
-        {
-            ResourceManager.Get(TutorialLabel.TutorialMask).AddScript<SceneMask>();
-
-            Vector3 playerDisplayScale = new Vector3(0.75f, 0.75f, 0.75f);
-            Vector3 playerSelectScale = new Vector3(0.9f, 0.9f, 0.9f);
-            ResourceManager.Get(TutorialLabel.Tutorial).CreateTweenSr(0, 1, 1f, true, true, Curve.EaseOutQuad, false, true).AlphaOnly = true;
-            ResourceManager.Get(TutorialLabel.PlayerBk1).CreateTweenScale(playerDisplayScale, playerSelectScale, 1f, true, true, Curve.EaseOutQuad);
-            ResourceManager.Get(TutorialLabel.PlayerBk2).CreateTweenScale(playerDisplayScale, playerSelectScale, 1f, true, true, Curve.EaseOutQuad);
-            ResourceManager.Get(TutorialLabel.PlayerBk3).CreateTweenScale(playerDisplayScale, playerSelectScale, 1f, true, true, Curve.EaseOutQuad);
-            ResourceManager.Get(TutorialLabel.TutorialMask).CreateTweenSr(0, 180 / 255f, 0.25f, true, true, Curve.EaseOutQuad);
-
-
-            if (NewplayerTutorialIndex == 1)
-            {
-                ResourceManager.Get(CanvasLabel.C_MiniGame).TweenBacCG();
-
-                ChoseCharacter();
-            }
-            else if (NewplayerTutorialIndex == SetNicknameTutorialIndex)
-            {
-                SetNickname();
-            }
-            else if (NewplayerTutorialIndex == 2)
-            {
-                ClickEnterMinigame();
-            }
-            else if (NewplayerTutorialIndex == 4)
-            {
-                ResourceManager.Get(CanvasLabel.C_MiniGame).TweenBacCG();
-
-                ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
-
-                ResourceManager.SetActive(TutorialLabel.Tutorial, true);
-                ResourceManager.SetActive(TutorialLabel.TutorialMask, true);
-                ResourceManager.SetActive(TutorialLabel.TutorialCollider, true);
-
-                Garden.Instance.TutorialToRegular();
-                UIManager.Instance.TutorialToRegular();
-
-                Transform tra = GardenManager.SlotList[0].transform;
-
-                Tutorial.HightScene(0.1f, 0.075f, tra.Find(SlotLabel.SlotArrow), tra);
-            }
-            else if (NewplayerTutorialIndex == 6)
-            {
-                ResourceManager.Get(CanvasLabel.C_MiniGame).TweenBacCG();
-
-                Garden.Instance.TutorialToRegular();
-                UIManager.Instance.TutorialToRegular();
-
-                ClickManagePanel();
-            }
-        }
-    }
-
-
-    public static void EndChoseCharacter()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndChoseCharacter");
-
-        Destroy(ResourceManager.Get(TutorialLabel.PlayerBk1).gameObject);
-        Destroy(ResourceManager.Get(TutorialLabel.PlayerBk2).gameObject);
-        Destroy(ResourceManager.Get(TutorialLabel.PlayerBk3).gameObject);
-
-        SetNickname();
-    }
-
-    public static void EndSetNickname()
-    {
-        NickNameManager.CloseNickNameSettingPanel();
-
-        NickNameManager.OnSetNickNameSucceed = null;
-
-        StaticsManager.GetInstance().TutoComplete("EndSetNickname");
-
-        ClickEnterMinigame();
-    }
-
-    public static void EndClickEnterMinigame()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndClickEnterMinigame");
-
-        Tutorial.HightDisable();
-
-        PlayPunchMinigame();
-    }
-
-    public static void EndPlayPunchMinigame()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndPlayPunchMinigame");
-
-        Tutorial.HightDisable();
-
-        ResourceManager.SetActive(CanvasLabel.D_Quit, true);
-
-        ClickSlot();
-    }
-
-    public static void EndClickSlot()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndClickSlot");
-
-        Tutorial.HightDisable();
-
-        PlantFlower();
-    }
-
-    public static void EndPlantFlower()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndPlantFlower");
-
-        ClickManagePanel();
-    }
-
-    public static void EndClickManagePanel()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndClickManagePanel");
-
-        Tutorial.HightDisable();
-
-        OpenUnlockPanel();
-    }
-
-    public static void EndOpenUnlockPanel()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndOpenUnlockPanel");
-
-        Tutorial.HightDisable(0, true);
-
-        ClickConfirmButton();
-    }
-
-    public static void EndClickConfirmButton()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndClickConfirmButton");
-
-        Tutorial.HightDisable(0, true);
-
-        UseBigSkill();
-    }
-
-    public static void EndUseBigSkill()
-    {
-        Tutorial.HightDisable(0, false);
-    }
-
-    public static void EndShowTip()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndShowTip");
-
-        NewplayerTutorial = false;
-
-        AudioManager.PlayClip(AudioLabel.Close);
-
-        AchieveManager.UpdateHint();
-
-        Tutorial.HightDisable();
-        ResourceManager.Get(CanvasLabel.F_TipBK).TweenBacCG();
-        ResourceManager.SetActive(CanvasLabel.F_TipBtn, false);
-
-        ResourceManager.SetActive(TutorialLabel.Tutorial, false);
-        ResourceManager.SetActive(CanvasLabel.N_Tutorial, false);
-
-        ResourceManager.Get(CanvasLabel.C_MiniGame).TweenForCG();
-
-        PlayerManager.Player.SetAllCollider(true);
-
-        PayExemptAmt = 0;
-        ConnectExempt = false;
-    }
-
-
-    public static void ChoseCharacter()
-    {
-        NewplayerTutorialIndex = 1;
-
-        PlayerManager.DefaultPinkPlayer.CreateTweenScale(0.9f, 1f, true, true, Curve.EaseOutQuad);
-        PlayerManager.DefaultBlondPlayer.CreateTweenScale(0.9f, 1f, true, true, Curve.EaseOutQuad);
-        PlayerManager.DefaultBrownPlayer.CreateTweenScale(0.9f, 1f, true, true, Curve.EaseOutQuad);
-
-        ResourceManager.Get(TutorialLabel.PlayerBk2).TweenForScale();
-        PlayerManager.DefaultBlondPlayer.TweenForScale();
-
-        ResourceManager.SetActive(TutorialLabel.PlayerBk1, true);
-        ResourceManager.SetActive(TutorialLabel.PlayerBk2, true);
-        ResourceManager.SetActive(TutorialLabel.PlayerBk3, true);
-        ResourceManager.SetActive(TutorialLabel.TutorialMask, true);
-        ResourceManager.SetActive(TutorialLabel.TutorialCollider, true);
-
-        ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
-        ResourceManager.SetActive(CanvasLabel.N_Confirm, true);
-        ResourceManager.SetActive(CanvasLabel.N_FormerPlayerButton, true);
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.N_FormerPlayerButton,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-                ResourceManager.Get(CanvasLabel.La_Info).TweenForCG();
-
-                ResourceManager.Get(CanvasLabel.N_Confirm).TweenBacCG();
-                ResourceManager.Get(CanvasLabel.N_FormerPlayerButton).TweenBacCG();
-
-                ResourceManager.AddButtonEventOnetime
-                (
-                    CanvasLabel.La_Cancel,
-                    () =>
-                    {
-                        ResourceManager.Get(CanvasLabel.N_Confirm).TweenForCG();
-                        ResourceManager.Get(CanvasLabel.N_FormerPlayerButton).TweenForCG();
-                    }
-                );
-            }
-        );
-
-        ResourceManager.AddButtonEventOnetime
-        (
-            CanvasLabel.N_Confirm,
-            () =>
-            {
-                if (PlayerManager.SelectedPlayer == PlayerManager.DefaultPinkPlayer)
-                {
-                    PlayerManager.DressDatas.Add("脑壳3");
-                    PlayerManager.DressDatas.Add("裙子3");
-                    PlayerManager.DressDatas.Add("鞋子3");
-                    PlayerManager.DressDatas.Add("头饰品3");
-                    PlayerManager.DressDatas.Add("上衣3");
-                    PlayerManager.DressDatas.Add("眼睛3");
-                    PlayerManager.DressDatas.Add("嘴巴3");
-                    PlayerManager.DressDatas.Add("Empty");
-                    PlayerManager.DressDatas.Add("Empty");
-                    PlayerManager.DressDatas.Add("短袖1左");
-                    PlayerManager.DressDatas.Add("Empty");
-                    PlayerManager.DressDatas.Add("短袖1右");
-                }
-                else if (PlayerManager.SelectedPlayer == PlayerManager.DefaultBlondPlayer)
-                {
-                    PlayerManager.DressDatas.Add("脑壳1");
-                    PlayerManager.DressDatas.Add("裙子1");
-                    PlayerManager.DressDatas.Add("鞋子1");
-                    PlayerManager.DressDatas.Add("头饰品1");
-                    PlayerManager.DressDatas.Add("上衣1");
-                    PlayerManager.DressDatas.Add("眼睛1");
-                    PlayerManager.DressDatas.Add("嘴巴1");
-                    PlayerManager.DressDatas.Add("Empty");
-                    PlayerManager.DressDatas.Add("Empty");
-                    PlayerManager.DressDatas.Add("短袖2左");
-                    PlayerManager.DressDatas.Add("Empty");
-                    PlayerManager.DressDatas.Add("短袖2右");
-                }
-                else if (PlayerManager.SelectedPlayer == PlayerManager.DefaultBrownPlayer)
-                {
-                    PlayerManager.DressDatas.Add("脑壳2");
-                    PlayerManager.DressDatas.Add("裙子2");
-                    PlayerManager.DressDatas.Add("鞋子2");
-                    PlayerManager.DressDatas.Add("头饰品2");
-                    PlayerManager.DressDatas.Add("上衣2");
-                    PlayerManager.DressDatas.Add("眼睛2");
-                    PlayerManager.DressDatas.Add("嘴巴2");
-                    PlayerManager.DressDatas.Add("Empty");
-                    PlayerManager.DressDatas.Add("Empty");
-                    PlayerManager.DressDatas.Add("短袖2左");
-                    PlayerManager.DressDatas.Add("Empty");
-                    PlayerManager.DressDatas.Add("短袖2右");
-                }
-
-                foreach (var str in PlayerManager.DressDatas)
-                {
-                    if (!PlayerManager.CloseIDDictionary.ContainsKey(str))
-                    {
-                        continue;
-                    }
-
-                    int id = PlayerManager.CloseIDDictionary[str];
-
-                    PlayerManager.CloseItemDictionary[id].Unlock();
-
-                    PlayerManager.BoughtCloseIDs.Add(id);
-                }
-
-                ConfigManager.SaveDress();
-
-
-                Transform tra = PlayerManager.SelectedPlayer;
-
-                PlayerManager.Player = tra.GetComponent<Player>();
-
-                tra.parent = null;
-
-                ResourceManager.TransformDictionary.Add(tra.name, tra);
-
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-
-                if (PlayerManager.DefaultPinkPlayer != PlayerManager.SelectedPlayer)
-                {
-                    PlayerManager.DefaultPinkPlayer.GetComponentInChildren<Renderer>(true).CreateTweenRenderer(0, 0.25f, true, false, Curve.EaseOutQuad, false, true).StartForward();
-                }
-
-                if (PlayerManager.DefaultBlondPlayer != PlayerManager.SelectedPlayer)
-                {
-                    PlayerManager.DefaultBlondPlayer.GetComponentInChildren<Renderer>(true).CreateTweenRenderer(0, 0.25f, true, false, Curve.EaseOutQuad, false, true).StartForward();
-                }
-
-                if (PlayerManager.DefaultBrownPlayer != PlayerManager.SelectedPlayer)
-                {
-                    PlayerManager.DefaultBrownPlayer.GetComponentInChildren<Renderer>(true).CreateTweenRenderer(0, 0.25f, true, false, Curve.EaseOutQuad, false, true).StartForward();
-                }
-
-                ResourceManager.Get(TutorialLabel.PlayerBk1).SetCollider(false);
-                ResourceManager.Get(TutorialLabel.PlayerBk2).SetCollider(false);
-                ResourceManager.Get(TutorialLabel.PlayerBk3).SetCollider(false);
-
-                tra.CreateTweenScale(ResourceManager.Get(GardenLabel.GardenPlayerPos).localScale, 1f, true, true, Curve.EaseOutQuad);
-                tra.CreateTweenVec3D(ResourceManager.Get(GardenLabel.GardenPlayerPos).position, 1f, false, true, true, Curve.EaseOutQuad);
-                tra.SetParent(ResourceManager.Get(GardenLabel.GardenPivot));
-
-                tra.TweenForVec();
-                tra.TweenForScale();
-
-
-                ResourceManager.Get(CanvasLabel.N_Confirm).TweenBacCG();
-                ResourceManager.Get(CanvasLabel.N_FormerPlayerButton).TweenBacCG();
-
-                TweenRoot tween = ResourceManager.Get(TutorialLabel.Tutorial).TweenBacSr();
-
-                tween.AddEventOnetime
-                (
-                    EventType.BackwardFinish,
-                    () =>
-                    {
-                        EndChoseCharacter();
-                    }
-                );
-            }
-        );
-    }
-
-    public static void SetNickname()
-    {
-        NewplayerTutorialIndex = SetNicknameTutorialIndex;
-
-        NickNameManager.ShowNickNameSettingPanelFirstTime();
-
-        NickNameManager.OnSetNickNameSucceed = EndSetNickname;
-    }
-
-    public static void ClickEnterMinigame()
-    {
-        NewplayerTutorialIndex = 2;
-
-        Garden.Instance.TutorialToRegular();
-        UIManager.Instance.TutorialToRegular();
-
-        ResourceManager.Get(CanvasLabel.C_Group).TweenForCG();
-        ResourceManager.Get(CanvasLabel.C_MiniGame).TweenReForCG();
-
-        ResourceManager.SetActive(CanvasLabel.C_Coin, false);
-        ResourceManager.SetActive(CanvasLabel.C_Group1, false);
-        ResourceManager.SetActive(CanvasLabel.C_Group3, false);
-        ResourceManager.SetActive(CanvasLabel.C_CloseSidePanelButton, false);
-
-        ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
-
-
-        TweenRoot tween = ResourceManager.Get(CanvasLabel.N_Mask).TweenForGra();
-
-        tween.AddEventOnetime
-        (
-            EventType.ForwardFinish,
-            () =>
-            {
-                Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.C_MiniArrow0), ResourceManager.Get(CanvasLabel.C_MiniArrow1), ResourceManager.Get(CanvasLabel.C_MiniGame));
-            }
-        );
-
-        ResourceManager.AddButtonEventOnetime
-        (
-            CanvasLabel.C_MiniGame,
-            () =>
-            {
-                EndClickEnterMinigame();
-            }
-        );
-    }
-
-    public static void PlayPunchMinigame()
-    {
-        ResourceManager.Get(TutorialLabel.Tutorial).SetCollider(false);
-
-        ResourceManager.SetActive(CanvasLabel.D_Quit, false);
-
-
-        TweenRoot tween = ResourceManager.Get(CanvasLabel.D_MiniGame).GetTweenCG();
-
-        tween.AddEventOnetime
-        (
-            EventType.ForwardFinish,
-            () =>
-            {
-                Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.D_BeginArrow0), ResourceManager.Get(CanvasLabel.D_BeginArrow1), ResourceManager.Get(CanvasLabel.D_Begin));
-            }
-        );
-
-        ResourceManager.PushButtonEventOnetime
-        (
-            CanvasLabel.D_Begin,
-            () =>
-            {
-                Tutorial.HightDisable();
-            }
-        );
-
-        ResourceManager.AddButtonEventOnetime
-        (
-            CanvasLabel.Da_GetAward,
-            () =>
-            {
-                EndPlayPunchMinigame();
-
-                ResourceManager.Get(CanvasLabel.C_MiniGame).TweenBacCG();
-            }
-        );
-    }
-
-    public static void ClickSlot()
-    {
-        NewplayerTutorialIndex = 4;
-
-        TweenRoot tween = ResourceManager.Get(CanvasLabel.D_MiniGame).GetTweenCG();
-
-        tween.AddEventOnetime
-        (
-            EventType.BackwardFinish, 
-            () =>
-            {
-                ResourceManager.Get(TutorialLabel.Tutorial).SetCollider(true);
-
-                ResourceManager.Get<SpriteRenderer>(TutorialLabel.TutorialMask).material.SetAlpha(MaterialLabel.DefaultMatColor, 1);
-
-                ResourceManager.SetActive(TutorialLabel.TutorialMask, true);
-                ResourceManager.SetActive(TutorialLabel.TutorialCollider, true);
-
-                Transform tra = GardenManager.SlotList[0].transform;
-
-                Tutorial.HightScene(0.1f, 0.075f, tra.Find(SlotLabel.SlotArrow), tra);
-            }
-        );
-    }
-
-    public static void PlantFlower()
-    {
-        TweenRoot tween = ResourceManager.Get(CanvasLabel.G_Flower).TweenForCG();
-
-        tween.AddEventOnetime
-        (
-            EventType.ForwardFinish,
-            () =>
-            {
-                Transform tra = ResourceManager.Get(CanvasLabel.G_RegularGrid).GetChild(0);
-
-                Tutorial.HightScreen(tra.Find(FlowerItemLabel.ArrowPos), tra);
-            }
-        );
-
-        FlowerInfo flowerInfo = GardenManager.GetFlowerInfo(1);
-
-        flowerInfo.Button.AddButtonEventOnetime
-        (
-            () =>
-            {
-                Tutorial.HightDisable(0, true);
-            }
-        );
-
-        tween = ResourceManager.Get(CanvasLabel.H_FlowerCard).GetTweenCG();
-
-        tween.AddEventOnetime
-        (
-            EventType.ForwardFinish,
-            () =>
-            {
-                Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.H_ArrowPos), ResourceManager.Get(CanvasLabel.H_Icon2));
-            }
-        );
-
-        ResourceManager.AddButtonEventOnetime
-        (
-            CanvasLabel.H_Icon2,
-            () =>
-            {
-                Tutorial.HightDisable(0, true);
-
-                ResourceManager.Get(CanvasLabel.H_FlowerCard).TweenBacCG();
-            }
-        );
-
-        tween = ResourceManager.Get(CanvasLabel.H_FlowerCard).GetTweenCG();
-
-        tween.AddEventOnetime
-        (
-            EventType.BackwardFinish,
-            () =>
-            {
-                Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.G_Arrow0), ResourceManager.Get(CanvasLabel.G_Close));
-            }
-        );
-
-        ResourceManager.AddButtonEventOnetime
-        (
-            CanvasLabel.G_Close,
-            () =>
-            {
-                Tutorial.HightDisable();
-            }
-        );
-
-        tween = ResourceManager.Get(CanvasLabel.G_Flower).GetTweenCG();
-
-        tween.AddEventOnetime
-        (
-            EventType.BackwardFinish,
-            () =>
-            {
-                EndPlantFlower();
-            }
-        );
-    }
-
-    public static void ClickManagePanel()
-    {
-        NewplayerTutorialIndex = 6;
-
-        ResourceManager.SetActive(CanvasLabel.C_Coin, true);
-        ResourceManager.SetActive(CanvasLabel.C_Group1, true);
-        ResourceManager.SetActive(CanvasLabel.C_Group3, true);
-        ResourceManager.SetActive(CanvasLabel.C_CloseSidePanelButton, true);
-
-        ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
-
-        TweenRoot tween = ResourceManager.Get(CanvasLabel.C_Group).TweenForCG();
-
-        tween.AddEventOnetime
-        (
-            EventType.ForwardFinish, () =>
-            {
-                Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.C_ManageArrow0), ResourceManager.Get(CanvasLabel.C_Manage));
-            }
-        );
-
-        ResourceManager.AddButtonEventOnetime
-        (
-            CanvasLabel.C_Manage,
-            () =>
-            {
-                EndClickManagePanel();
-            }
-        );
-    }
-
-    public static void OpenUnlockPanel()
-    {
-        TweenRoot tween = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
-
-        tween.AddEventOnetime
-        (
-            EventType.ForwardFinish, 
-            () =>
-            {
-                Transform tra = Manager.SkillDictionary["Ability1"].SkillItem;
-
-                Tutorial.HightScreen(tra.Find(SkillItemLabel.ArrowPosition), tra.Find(SkillItemLabel.ArrowDestination), tra.Find(SkillItemLabel.Button));
-            }
-        );
-
-
-        SkillRoot skill = Manager.SkillDictionary["Ability1"];
-
-        skill.button.AddButtonEventOnetime
-        (
-            () =>
-            {
-                Tutorial.HightDisable(0, true);
-
-                PayExemptAmt = 1;
-            }
-        );
-
-
-        tween = ResourceManager.Get(CanvasLabel.Fe_Info).GetTweenCG();
-
-        tween.AddEventOnetime
-        (
-            EventType.ForwardFinish, 
-            () =>
-            {
-                Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.Fe_Arrow0), ResourceManager.Get(CanvasLabel.Fe_Arrow1), ResourceManager.Get(CanvasLabel.Fe_Btn));
-
-                ResourceManager.AddButtonEventOnetime
-                (
-                    CanvasLabel.Fe_Btn,
-
-                    () =>
-                    {
-                        ResourceManager.Get(CanvasLabel.Fe_Info).TweenBacCG();
-
-                        EndOpenUnlockPanel();
-                    }
-                );
-            }
-        );
-    }
-
-    public static void ClickConfirmButton()
-    {
-        TweenRoot tween = ResourceManager.Get(CanvasLabel.Fe_Info).GetTweenCG();
-
-        tween.AddEventOnetime
-        (
-            EventType.BackwardFinish,
-            () =>
-            {
-                Transform tra = Manager.SkillDictionary["Skill1"].SkillItem;
-
-                Tutorial.HightScreen(tra.Find(SkillItemLabel.ArrowPosition), tra.Find(SkillItemLabel.ArrowDestination), tra.Find(SkillItemLabel.Button));
-            }
-        );
-
-
-        SkillRoot skill = Manager.SkillDictionary["Skill1"];
-
-        skill.button.AddButtonEventOnetime
-        (
-            () =>
-            {
-                Tutorial.HightDisable(0, true);
-
-                PayExemptAmt = 1;
-            }
-        );
-
-
-        tween = ResourceManager.Get(CanvasLabel.Fe_Info).GetTweenCG();
-
-        tween.AddEventOnetime
-        (
-            EventType.ForwardFinish,
-            () =>
-            {
-                Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.Fe_Arrow0), ResourceManager.Get(CanvasLabel.Fe_Arrow1), ResourceManager.Get(CanvasLabel.Fe_Btn));
-
-                ResourceManager.AddButtonEventOnetime
-                (
-                    CanvasLabel.Fe_Btn,
-                    () =>
-                    {
-                        ResourceManager.Get(CanvasLabel.Fe_Info).TweenBacCG();
-                        EndClickConfirmButton();
-                    }
-                );
-            }
-        );
-    }
-
-    public static void UseBigSkill()
-    {
-        TweenRoot tween = ResourceManager.Get(CanvasLabel.Fe_Info).GetTweenCG();
-
-        tween.AddEventOnetime
-        (
-            EventType.BackwardFinish,
-            () =>
-            {
-                ConnectExempt = true;
-
-                Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.F_Arrow0), ResourceManager.Get(CanvasLabel.F_Skill1));
-            }
-        );
-
-
-        ResourceManager.AddButtonEventOnetime
-        (
-            CanvasLabel.F_SkillBk11,
-            () =>
-            {
-                EndUseBigSkill();
-                ShowTip();
-            }
-        );
-    }
-
-    public static void ShowTip()
-    {
-        ResourceManager.Get(CanvasLabel.N_Mask).TweenForGra();
-
-        ResourceManager.Get(CanvasLabel.F_TipBK).TweenForCG();
-        ResourceManager.SetText(CanvasLabel.F_Tip, Language.GetStr(LanguageLabel.UI__F_Tip));
-
-        ResourceManager.SetActive(CanvasLabel.F_TipBtn, true);
-        ResourceManager.AddButtonEventOnetime(CanvasLabel.F_TipBtn, () => EndShowTip());
-
-        ResourceManager.Get<ContentSizeFitter>(CanvasLabel.F_TipBK).SetLayoutVertical();
-        ResourceManager.Get<ContentSizeFitter>(CanvasLabel.F_TipBK).SetLayoutHorizontal();
-        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.F_CoinLabArrow), ResourceManager.Get(CanvasLabel.F_TipBtn), 3, false);
-        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.F_CoinLabArrow), ResourceManager.Get(CanvasLabel.F_TipBK), 1);
-        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.F_CoinLabArrow), ResourceManager.Get(CanvasLabel.F_Tip), 2, false);
-        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.F_CoinLabArrow), ResourceManager.Get(CanvasLabel.F_DataB), 1, false);
-        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.F_CoinLabArrow), ResourceManager.Get(CanvasLabel.F_CoinLab), 2, false);
-        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.F_CoinLabArrow), ResourceManager.Get(CanvasLabel.F_DiamondLab), 2, false);
-    }
-
-
-    public static void EndClickVisitBtn()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndClickVisitBtn");
-
-        Tutorial.HightDisable();
-
-        VisitTutorial = false;
-
-        ResourceManager.SetActive(CanvasLabel.N_Tutorial, false);
-
-        PayExemptAmt = 0;
-        ConnectExemptAmt = 0;
-    }
-
-
-    public static void ClickVisitBtn()
-    {
-        VisitTutorial = true;
-        visitTutorial = false;
-
-        UIManager.BlockOfflinePanel();
-
-        TweenRoot tweenRoot = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
-
-        if (tweenRoot.InDestination)
-        {
-            TweenRoot tween = ResourceManager.Get(CanvasLabel.Fe_Info).TweenBacCG();
-
-            tween.AddEventOnetime
-            (
-                EventType.BackwardFinish,
-                () =>
-                {
-                    ResourceManager.Get(CanvasLabel.F_Manage).TweenBacGra();
-
-                    tween = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
-
-                    tween.AddEventOnetime
-                    (
-                        EventType.BackwardFinish,
-                        () =>
-                        {
-                            ShowVisitBtn();
-                        }
-                    );
-                }
-            );
-        }
-        else
-        {
-            ShowVisitBtn();   
-        }
-
-        ResourceManager.AddButtonEventOnetime
-        (
-            CanvasLabel.C_Return,
-            () =>
-            {
-                TweenRoot tween = ResourceManager.Get(CanvasLabel.I_BlackMask).GetTweenCG();
-                tween.AddEventOnetime
-                (
-                    EventType.BackwardFinish,
-                    () =>
-                    {
-                        UIManager.UnblockOfflinePanel();
-                    }
-                );
-            }
-        );
-    }
-
-    public static void ShowVisitBtn()
-    {
-        ResourceManager.Get(CanvasLabel.C_Main).TweenReForCG();
-        ResourceManager.Get(CanvasLabel.C_Group).TweenReForCG();
-        ResourceManager.Get(CanvasLabel.C_Group0).TweenReForCG();
-
-        TweenRoot tween = ResourceManager.Get(CanvasLabel.C_Group).GetTweenCG();
-
-        tween.AddEventOnetime
-        (
-            EventType.ForwardFinish,
-            () =>
-            {
-                ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
-
-                tween = ResourceManager.Get(CanvasLabel.N_Mask).TweenForGra();
-
-                tween.AddEventOnetime
-                (
-                    EventType.ForwardFinish,
-                    () =>
-                    {
-                        PayExemptAmt = 1;
-
-                        ResourceManager.SetActive(CanvasLabel.C_Visit, true);
-
-                        ResourceManager.Get<HorizontalLayoutGroup>(CanvasLabel.C_Group4).SetLayoutHorizontal();
-                        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.C_VisitArrow0), ResourceManager.Get(CanvasLabel.C_Visit));
-
-                        ResourceManager.AddButtonEventOnetime
-                        (
-                            CanvasLabel.C_Visit,
-                            () =>
-                            {
-                                EndClickVisitBtn();
-                            }
-                        );
-                    }
-                );
-            }
-        );
-    }
-
-
-    public static void EndShowFirstCorrectButton()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndShowFirstCorrectButton");
-
-        Tutorial.HightDisable(0, false);
-    }
-
-    public static void EndShowSecondCorrectButton()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndShowSecondCorrectButton");
-
-        Tutorial.HightDisable(0, false);
-    }
-
-    public static void EndShowThirdCorrectButton()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndShowThirdCorrectButton");
-
-        Tutorial.HightDisable(0, false);
-    }
-
-    public static void EndShowFourthCorrectButton()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndShowFourthCorrectButton");
-
-        Tutorial.HightDisable(0, false);
-    }
-
-    public static void EndShowFifthCorrectButton()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndShowFifthCorrectButton");
-
-        Tutorial.HightDisable(0, false);
-    }
-
-    public static void EndShowSixthCorrectButton()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndShowSixthCorrectButton");
-
-        Tutorial.HightDisable();
-
-        MemoryMinigameTutorial = false;
-
-        MiniGameManager.Pause = false;
-    }
-
-
-    public static void PlayMemoryGame()
-    {
-        memoryMinigameTutorial = false;
-
-        ResourceManager.Get(CanvasLabel.N_Mask).TweenForGra();
-
-        ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
-
-
-        MiniGameManager.Pause = true;
-
-        int index = MiniGameManager.GetMemoryGameButtonIndex(MiniGameManager.FindSoloGameIndexList[0]);
-        Button button = MiniGameManager.D_MemoryGameBtns[index].GetComponent<Button>();
-        Tutorial.HightScreen(MiniGameManager.D_MemoryGameArrows[index], button.transform, 1, true, new Vector3(0.05f, 0.05f, 0.05f));
-        button.AddButtonEventOnetime
-        (
-            () =>
-            {
-                EndShowFirstCorrectButton();
-                ShowSecondCorrectButton();
-            }
-        );
-    }
-
-    public static void ShowSecondCorrectButton()
-    {
-        int index = MiniGameManager.GetMemoryGameButtonIndex(MiniGameManager.FindSoloGameIndexList[0]);
-        Button button = MiniGameManager.D_MemoryGameBtns[index].GetComponent<Button>();
-        Tutorial.HightScreen(MiniGameManager.D_MemoryGameArrows[index], button.transform, 1, true, new Vector3(0.05f, 0.05f, 0.05f));
-        button.AddButtonEventOnetime
-        (
-            () =>
-            {
-                EndShowSecondCorrectButton();
-                ShowThirdCorrectButton();
-            }
-        );
-    }
-
-    public static void ShowThirdCorrectButton()
-    {
-        int index = MiniGameManager.GetMemoryGameButtonIndex(MiniGameManager.FindSoloGameIndexList[0]);
-        Button button = MiniGameManager.D_MemoryGameBtns[index].GetComponent<Button>();
-        Tutorial.HightScreen(MiniGameManager.D_MemoryGameArrows[index], button.transform, 1, true, new Vector3(0.05f, 0.05f, 0.05f));
-        button.AddButtonEventOnetime
-        (
-            () =>
-            {
-                EndShowThirdCorrectButton();
-                ShowFourthCorrectButton();
-            }
-        );
-    }
-
-    public static void ShowFourthCorrectButton()
-    {
-        int index = MiniGameManager.GetMemoryGameButtonIndex(MiniGameManager.FindSoloGameIndexList[0]);
-        Button button = MiniGameManager.D_MemoryGameBtns[index].GetComponent<Button>();
-        Tutorial.HightScreen(MiniGameManager.D_MemoryGameArrows[index], button.transform, 1, true, new Vector3(0.05f, 0.05f, 0.05f));
-        button.AddButtonEventOnetime
-        (
-            () =>
-            {
-                EndShowFourthCorrectButton();
-                ShowFifthCorrectButton();
-            }
-        );
-    }
-
-    public static void ShowFifthCorrectButton()
-    {
-        int index = MiniGameManager.GetMemoryGameButtonIndex(MiniGameManager.FindSoloGameIndexList[0]);
-        Button button = MiniGameManager.D_MemoryGameBtns[index].GetComponent<Button>();
-        Tutorial.HightScreen(MiniGameManager.D_MemoryGameArrows[index], button.transform, 1, true, new Vector3(0.05f, 0.05f, 0.05f));
-        button.AddButtonEventOnetime
-        (
-            () =>
-            {
-                EndShowFifthCorrectButton();
-                ShowSixthCorrectButton();
-            }
-        );
-    }
-
-    public static void ShowSixthCorrectButton()
-    {
-        int index = MiniGameManager.GetMemoryGameButtonIndex(MiniGameManager.FindSoloGameIndexList[0]);
-        Button button = MiniGameManager.D_MemoryGameBtns[index].GetComponent<Button>();
-        Tutorial.HightScreen(MiniGameManager.D_MemoryGameArrows[index], button.transform, 1, true, new Vector3(0.05f, 0.05f, 0.05f));
-        button.AddButtonEventOnetime
-        (
-            () =>
-            {
-                EndShowSixthCorrectButton();
-            }
-        );
-    }
-
-
-    public static void EndClickFindMissingCorrectButton()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndClickFindMissingCorrectButton");
-
-        FindMissingMinigameTutorial = false;
-
-        Tutorial.HightDisable();
-
-        ResourceManager.SetActive(CanvasLabel.N_Tutorial, false);
-
-        MiniGameManager.Pause = false;
-    }
-
-    public static void PlayFindMissingGame()
-    {
-        FindMissingMinigameTutorial = true;
-        findMissingMinigameTutorial = false;
-    }
-
-    public static void ShowFindMissingCorrectButton(Transform arrowTra, Transform targetTra)
-    {
-        MiniGameManager.Pause = true;
-
-        ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
-
-        Tutorial.HightScreen(arrowTra, targetTra, 1, true, new Vector3(0.05f, 0.05f, 0.05f));
-    }
-
-
-    public static void EndClickDressroomButton()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndClickDressroomButton");
-
-        DressroomTutorial = false;
-
-        ResourceManager.Get(CanvasLabel.C_Main2).TweenForCG();
-
-        Tutorial.HightDisable();
-
-        ResourceManager.Get(CanvasLabel.N_LabBK).TweenBacCG();
-
-        TweenRoot tweenRoot = ResourceManager.Get(CanvasLabel.I_BlackMask).TweenBacCG();
-
-        tweenRoot.AddEventOnetime
-        (
-            EventType.BackwardFinish,
-            () =>
-            {
-                Tutorial.MaskFlag = true;
-
-                ResourceManager.SetActive(CanvasLabel.N_Button, false);
-                ResourceManager.SetActive(CanvasLabel.N_Tutorial, false);
-            }
-        );
-
-        ResourceManager.AddButtonEventOnetime
-        (
-            CanvasLabel.P_Return,
-            () =>
-            {
-                tweenRoot = ResourceManager.Get(CanvasLabel.I_BlackMask).TweenBacCG();
-
-                tweenRoot.AddEventOnetime
-                (
-                    EventType.ForwardFinish,
-                    () =>
-                    {
-                        UIManager.UnblockOfflinePanel();
-                    }
-                );
-            }
-        );
-    }
-
-    public static void ClickDressroomButton()
-    {
-        DressroomTutorial = true;
-        dressroomTutorial = false;
-
-        UIManager.BlockOfflinePanel();
-
-        TweenRoot tweenRoot = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
-
-        if (tweenRoot.InDestination)
-        {
-            tweenRoot.AddEventOnetime
-            (
-                EventType.BackwardFinish,
-                () =>
-                {
-                    ShowDressroomButton();
-                }
-            );
-
-            tweenRoot = ResourceManager.Get(CanvasLabel.Fe_Info).TweenBacCG();
-
-            tweenRoot.AddEventOnetime
-            (
-                EventType.BackwardFinish,
-                () =>
-                {
-                    tweenRoot = ResourceManager.Get(CanvasLabel.F_Manage).TweenBacGra();
-                }
-            );
-        }
-        else
-        {
-            ShowDressroomButton();
-        }
-    }
-
-    public static void ShowDressroomButton()
-    {
-        ResourceManager.Get(CanvasLabel.C_Main).TweenReForCG();
-        ResourceManager.Get(CanvasLabel.C_Group).TweenReForCG();
-        ResourceManager.Get(CanvasLabel.C_Group0).TweenReForCG();
-
-        ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
-
-        ResourceManager.Get(CanvasLabel.N_Mask).TweenForGra();
-
-        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.C_DressRoomArrow), ResourceManager.Get(CanvasLabel.C_DressRoom));
-
-        ResourceManager.AddButtonEventOnetime
-        (
-            CanvasLabel.C_DressRoom,
-            () =>
-            {
-                EndClickDressroomButton();
-            }
-        );
-
-        ResourceManager.SetText(CanvasLabel.N_Lab, Language.GetStr(LanguageLabel.UI__N_Lab));
-
-        Tutorial.ShowDescriptScreen(ResourceManager.Get(CanvasLabel.C_DressRoomLabPos).position);
-    }
-
-
-    public static void EndClickFindSoloCorrectButton()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndClickFindSoloCorrectButton");
-
-        FindSoloMinigameTutorial = false;
-
-        Tutorial.HightDisable();
-
-        ResourceManager.SetActive(CanvasLabel.N_Tutorial, false);
-
-        MiniGameManager.Pause = false;
-    }
-
-    public static void PlayFindSoloGame()
-    {
-        FindSoloMinigameTutorial = true;
-        findSoloMinigameTutorial = false;
-    }
-
-    public static void ShowFindSoloCorrectButton(Transform arrowTra, Transform targetTra)
-    {
-        MiniGameManager.Pause = true;
-
-        ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
-
-        Tutorial.HightScreen(arrowTra, targetTra, 1, true, new Vector3(0.05f, 0.05f, 0.05f));
-    }
-
-
-    public static void EndClickPlazaRoomBtn()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndClickPlazaRoomBtn");
-
-        Tutorial.HightDisable();
-
-        PlazaRoomTutorial = false;
-
-        ResourceManager.SetActive(CanvasLabel.N_Tutorial, false);
-
-        PayExemptAmt = 0;
-        ConnectExemptAmt = 0;
-
-
-        ResourceManager.AddButtonEventOnetime
-        (
-            CanvasLabel.X_Quit,
-            () =>
-            {
-                TweenRoot tweenRoot = ResourceManager.Get(CanvasLabel.V_BlackMask).TweenForCG();
-
-                tweenRoot.AddEventOnetime
-                (
-                    EventType.ForwardFinish,
-                    () =>
-                    {
-                        UIManager.UnblockOfflinePanel();
-                    }
-                );
-            }
-        );
-    }
-
-    public static void ClickPlazaRoomBtn()
-    {
-        PlazaRoomTutorial = true;
-        plazaRoomTutorial = false;
-
-        UIManager.BlockOfflinePanel();
-
-        TweenRoot tweenRoot = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
-
-        if (tweenRoot.InDestination)
-        {
-            TweenRoot tween = ResourceManager.Get(CanvasLabel.Fe_Info).TweenBacCG();
-
-            tween.AddEventOnetime
-            (
-                EventType.BackwardFinish,
-                () =>
-                {
-                    ResourceManager.Get(CanvasLabel.F_Manage).TweenBacGra();
-
-                    tween = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
-
-                    tween.AddEventOnetime
-                    (
-                        EventType.BackwardFinish,
-                        () =>
-                        {
-                            ShowPlazaRoomBtn();
-                        }
-                    );
-                }
-            );
-        }
-        else
-        {
-            ShowPlazaRoomBtn();
-        }
-    }
-
-    public static void ShowPlazaRoomBtn()
-    {
-        ResourceManager.Get(CanvasLabel.C_Main).TweenReForCG();
-        ResourceManager.Get(CanvasLabel.C_Group).TweenReForCG();
-        ResourceManager.Get(CanvasLabel.C_Group0).TweenReForCG();
-
-        TweenRoot tween = ResourceManager.Get(CanvasLabel.C_Group).GetTweenCG();
-
-        tween.AddEventOnetime
-        (
-            EventType.ForwardFinish,
-            () =>
-            {
-                ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
-
-                tween = ResourceManager.Get(CanvasLabel.N_Mask).TweenForGra();
-
-                tween.AddEventOnetime
-                (
-                    EventType.ForwardFinish,
-                    () =>
-                    {
-                        ResourceManager.SetActive(CanvasLabel.C_EnterPlazaRoom, true);
-                        ResourceManager.SetActive(CanvasLabel.C_EnterPlazaRoom0, true);
-                        ResourceManager.Get<HorizontalLayoutGroup>(CanvasLabel.C_Group4).CalculateLayoutInputHorizontal();
-                        ResourceManager.Get<HorizontalLayoutGroup>(CanvasLabel.C_Group4).SetLayoutHorizontal();
-                        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.C_PlazaRoomArrow0), ResourceManager.Get(CanvasLabel.C_EnterPlazaRoom));
-
-                        ResourceManager.AddButtonEventOnetime
-                        (
-                            CanvasLabel.C_EnterPlazaRoom,
-                            () =>
-                            {
-                                EndClickPlazaRoomBtn();
-                            }
-                        );
-                    }
-                );
-            }
-        );
-    }
-
-
-    public static void EndClickFashionShowBtn()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndClickFashionShowBtn");
-
-        Tutorial.HightDisable();
-        ResourceManager.SetActive(CanvasLabel.N_Tutorial, false);
-
-        ShowHomePageDesc();
-    }
-
-    public static void EndHomePageDesc()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndHomePageDesc");
-        ResourceManager.SetActive(CanvasLabel.Pi_Tutorial, false);
-        ResourceManager.SetActive(CanvasLabel.Pi_HomePageTipBK, false);
-        ResourceManager.SetActive(CanvasLabel.Pi_HomePageTipBtn, false);
-
-        ClickMineTabButton();
-    }
-
-    public static void EndClickMineTabButton()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndClickMineTabButton");
-
-        Tutorial.HightDisable();
-        ResourceManager.SetActive(CanvasLabel.N_Tutorial, false);
-
-        ResourceManager.SetActive(CanvasLabel.Pi_Tutorial, true);
-
-        ResourceManager.Get(CanvasLabel.Pi_Tutorial).SetAsLastSibling();
-        ResourceManager.Get(CanvasLabel.Pi_LeaveTipBK).SetAsLastSibling();
-
-        DelayCall.Call(1, ShowLeaveDesc);
-    }
-
-    public static void EndLeaveDesc()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndLeaveDesc");
-
-        Tutorial.HightDisable();
-        ResourceManager.SetActive(CanvasLabel.N_Tutorial, false);
-
-        ResourceManager.SetActive(CanvasLabel.Pi_Tutorial, false);
-        ResourceManager.SetActive(CanvasLabel.Pi_LeaveTipBK, false);
-
-        ShowCloseDesc();
-    }
-
-    public static void EndCloseDesc()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndCloseDesc");
-        ResourceManager.SetActive(CanvasLabel.P_Tutorial, false);
-        ResourceManager.SetActive(CanvasLabel.P_CloseTipBK, false);
-        ResourceManager.SetActive(CanvasLabel.P_CloseTipBtn, false);
-        ClickShareButton();
-    }
-
-    public static void EndFashionShowTutorial()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndFashionShowTutorial");
-
-        ResourceManager.SetActive(CanvasLabel.P_Tutorial, false);
-        ResourceManager.SetActive(CanvasLabel.P_CreateTipBK, false);
-
-        Tutorial.HightDisable();
-
-        FashionShowTutorial = false;
-        fashionShowTutorial = false;
-
-        ResourceManager.SetActive(CanvasLabel.N_Tutorial, false);
-
-        PayExemptAmt = 0;
-        ConnectExemptAmt = 0;
-    }
-
-    public static void BeginFashionShowTutorial()
-    {
-        FashionShowTutorial = true;
-
-        ResourceManager.SetText(CanvasLabel.Pi_HomePageTip, Language.GetStr(LanguageLabel.Tutorial__ShowButtonDesc));
-        ResourceManager.SetText(CanvasLabel.Pi_LeaveTip, Language.GetStr(LanguageLabel.Tutorial__ShareButtonDesc));
-        ResourceManager.SetText(CanvasLabel.P_CloseTip, Language.GetStr(LanguageLabel.Tutorial__CloseDesc));
-        ResourceManager.SetText(CanvasLabel.P_CreateTip, Language.GetStr(LanguageLabel.Tutorial__CreateButtonDesc));
-
-        UIManager.BlockOfflinePanel();
-
-        TweenRoot tweenRoot = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
-
-        if (tweenRoot.InDestination)
-        {
-            TweenRoot tween = ResourceManager.Get(CanvasLabel.Fe_Info).TweenBacCG();
-
-            tween.AddEventOnetime
-            (
-                EventType.BackwardFinish,
-                () =>
-                {
-                    ResourceManager.Get(CanvasLabel.F_Manage).TweenBacGra();
-
-                    tween = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
-
-                    tween.AddEventOnetime
-                    (
-                        EventType.BackwardFinish,
-                        () =>
-                        {
-                            ClickFashionShowBtn();
-                        }
-                    );
-                }
-            );
-        }
-        else
-        {
-            ClickFashionShowBtn();
-        }
-    }
-
-    public static void ClickFashionShowBtn()
-    {
-        ResourceManager.Get(CanvasLabel.C_Main).TweenReForCG();
-        ResourceManager.Get(CanvasLabel.C_Group).TweenReForCG();
-        ResourceManager.Get(CanvasLabel.C_Group0).TweenReForCG();
-
-        TweenRoot tween = ResourceManager.Get(CanvasLabel.C_Group).GetTweenCG();
-
-        tween.AddEventOnetime
-        (
-            EventType.ForwardFinish,
-            () =>
-            {
-                ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
-
-                tween = ResourceManager.Get(CanvasLabel.N_Mask).TweenForGra();
-
-                tween.AddEventOnetime
-                (
-                    EventType.ForwardFinish,
-                    () =>
-                    {
-                        ResourceManager.SetActive(CanvasLabel.C_FashionShowButton, true);
-                        ResourceManager.Get<HorizontalLayoutGroup>(CanvasLabel.C_Group4).CalculateLayoutInputHorizontal();
-                        ResourceManager.Get<HorizontalLayoutGroup>(CanvasLabel.C_Group4).SetLayoutHorizontal();
-                        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.C_FashionShowArrow), ResourceManager.Get(CanvasLabel.C_FashionShowButton));
-
-                        ResourceManager.AddButtonEventOnetime
-                        (
-                            CanvasLabel.C_FashionShowButton,
-                            () =>
-                            {
-                                EndClickFashionShowBtn();
-                            }
-                        );
-                    }
-                );
-            }
-        );
-    }
-
-    public static void ShowHomePageDesc()
-    {
-        ResourceManager.SetActive(CanvasLabel.Pi_Tutorial, true);
-        ResourceManager.SetActive(CanvasLabel.Pi_HomePageTipBK, true);
-        ResourceManager.SetActive(CanvasLabel.Pi_HomePageTipBtn, true);
-        LayoutRebuilder.ForceRebuildLayoutImmediate(ResourceManager.Get<RectTransform>(CanvasLabel.Pi_HomePageTipBK));
-
-        TweenRoot tween = ResourceManager.Get(CanvasLabel.Pi_FashionShowHomePanel).GetTweenVec();
-        tween.AddEventOnetime
-        (EventType.ForwardFinish, () =>
-        {
-            ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
-            Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.Pi_HomePageArrow1),
-                ResourceManager.Get(CanvasLabel.Pi_HomePageArrow0), ResourceManager.Get(CanvasLabel.Pi_ShareBg));
-            ResourceManager.Get(CanvasLabel.N_Mask).GetTweenGra().Pause();
-            ResourceManager.Get(CanvasLabel.N_Mask).GetTweenGra().InOrigin = true;
-
-            ResourceManager.AddButtonEventOnetime(CanvasLabel.Pi_HomePageTipBtn, EndHomePageDesc);
-        });
-    }
-
-    public static void ClickMineTabButton()
-    {
-        ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
-
-        ResourceManager.Get(CanvasLabel.N_Mask).GetTweenGra().InDestination = true;
-
-        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.Pi_MineTabButtonArrow), ResourceManager.Get(CanvasLabel.Pi_MineTabButton));
-
-        ResourceManager.PushButtonEventOnetime
-        (
-            CanvasLabel.Pi_MineTabButton,
-            () =>
-            {
-                EndClickMineTabButton();
-            }
-        );
-    }
-
-    public static void ShowLeaveDesc()
-    {
-        ResourceManager.SetActive(CanvasLabel.Pi_LeaveTipBK, true);
-        LayoutRebuilder.ForceRebuildLayoutImmediate(ResourceManager.Get<RectTransform>(CanvasLabel.Pi_LeaveTipBK));
-        //Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.P_Close), ResourceManager.Get(CanvasLabel.Pi_ShareBg));
-
-        ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
-        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.Pi_ShareArrow), ResourceManager.Get(CanvasLabel.Pi_ShareBg));
-        ResourceManager.Get(CanvasLabel.N_Mask).GetTweenGra().Pause();
-        ResourceManager.Get(CanvasLabel.N_Mask).GetTweenGra().InOrigin = true;
-
-        ResourceManager.AddButtonEventOnetime(CanvasLabel.Pi_Share, EndLeaveDesc);
-    }
-
-    public static void ShowCloseDesc()
-    {
-        ResourceManager.SetActive(CanvasLabel.P_Tutorial, true);
-        ResourceManager.SetActive(CanvasLabel.P_CloseTipBtn, true);
-        ResourceManager.SetActive(CanvasLabel.P_CloseTipBK, true);
-
-        DelayCall.Call
-        (
-            0.5f,
-            () =>
-            {
-                LayoutRebuilder.ForceRebuildLayoutImmediate(ResourceManager.Get<RectTransform>(CanvasLabel.P_CloseTipBK));
-
-                ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
-                Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.P_CloseArrow0), ResourceManager.Get(CanvasLabel.P_CloseArrow1), ResourceManager.Get(CanvasLabel.Pi_ShareBg));
-                ResourceManager.Get(CanvasLabel.N_Mask).GetTweenGra().Pause();
-                ResourceManager.Get(CanvasLabel.N_Mask).GetTweenGra().InOrigin = true;
-            }
-        );
-
-        ResourceManager.AddButtonEventOnetime(CanvasLabel.P_CloseTipBtn, EndCloseDesc);
-    }
-
-    public static void ClickShareButton()
-    {
-        ResourceManager.Get(CanvasLabel.P_Tutorial).SetAsLastSibling();
-
-        ResourceManager.SetActive(CanvasLabel.P_Tutorial, true);
-        ResourceManager.SetActive(CanvasLabel.P_CreateTipBK, true);
-        DelayCall.Call(0.5f, () => LayoutRebuilder.ForceRebuildLayoutImmediate(ResourceManager.Get<RectTransform>(CanvasLabel.P_CreateTipBK)));
-
-        ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
-
-        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.Pi_LeaveTipBK), ResourceManager.Get(CanvasLabel.P_FashionShowButton));
-
-        ResourceManager.Get(CanvasLabel.N_Mask).GetTweenGra().Pause();
-        ResourceManager.Get(CanvasLabel.N_Mask).GetTweenGra().InOrigin = true;
-
-        ResourceManager.AddButtonEventOnetime
-        (
-            CanvasLabel.P_FashionShowButton,
-            () =>
-            {
-                EndFashionShowTutorial();
-            }
-        );
-    }
+using System;
+using UnityEngine;
+using UnityEngine.UI;
+
+using System.Collections;
+using System.Collections.Generic;
+
+public class TutorialManager : Regist
+{
+    #region Config
+
+    public static bool PayExempt
+    {
+        get
+        {
+            if (payExempt)
+            {
+                return true;
+            }
+            else
+            {
+                if (PayExemptAmt > 0)
+                {
+                    PayExemptAmt--;
+
+                    return true;
+                }
+                else
+                {
+                    return false;
+                }
+            }
+        }
+        set { payExempt = value; }
+    }
+    public static bool payExempt;
+    public static int PayExemptAmt;
+
+    public static bool ConnectExempt
+    {
+        get
+        {
+            if (connectExempt)
+            {
+                return true;
+            }
+            else
+            {
+                if (ConnectExemptAmt > 0)
+                {
+                    ConnectExemptAmt--;
+
+                    return true;
+                }
+                else
+                {
+                    return false;
+                }
+            }
+        }
+        set { connectExempt = value; }
+    }
+    public static bool connectExempt;
+    public static int ConnectExemptAmt;
+
+    public static int MemoryMinigameTutorialLevel = 18;
+    public static int VisitTutorialLevel = 8;
+    public static int CommentTutorialLevel = 8;
+    public static int DressroomTutorialLevel = 13;
+    public static int FindSoloMinigameTutorialLevel = 22;
+    public static int PlazaRoomTutorialLevel = 28;
+    public static int SetNicknameTutorialIndex = 7;
+    public static int MinFlowerForFindSoloGame = 2;
+    public static int MinFlowerForFindMissingGame = 3;
+    public static int FindMissingMinigameTutorialLevel = 31;
+    public static int FashionShowTutorialLevel = 21;
+    public static int ChangeMouseTutorialLevel = 39;
+
+    public static bool NewplayerTutorial;
+    public static int NewplayerTutorialIndex;
+
+    public static bool MemoryMinigameTutorial;
+    public static bool memoryMinigameTutorial;
+    public static int MemoryMinigameTutorialIndex;
+
+    public static bool FindMissingMinigameTutorial;
+    public static bool findMissingMinigameTutorial;
+    public static int FindMissingMinigameTutorialIndex;
+
+    public static bool VisitTutorial;
+    public static bool visitTutorial;
+    public static int VisitTutorialIndex;
+
+    public static bool DressroomTutorial;
+    public static bool dressroomTutorial;
+    public static int DressroomTutorialIndex;
+
+    public static bool FindSoloMinigameTutorial;
+    public static bool findSoloMinigameTutorial;
+    public static int FindSoloMinigameTutorialIndex;
+
+    public static bool PlazaRoomTutorial;
+    public static bool plazaRoomTutorial;
+    public static int PlazaRoomTutorialIndex;
+
+
+    public static bool FashionShowTutorial;
+    public static bool fashionShowTutorial;
+    public static int FashionShowTutorialIndex;
+
+
+    public static bool changeMouseTutorial;
+
+    #endregion
+
+    public override void InstantiatePrefabs()
+    {
+        //if (NewplayerTutorial)
+        //{
+            ResourceManager.Get(ResourceLabel.Tutorial, Folder.Scene, true, transform, false, ObjType.Tutorial).AddScript<Tutorial>();
+            ResourceManager.Get(TutorialLabel.TutorialMask).AddScript<SceneMask>();
+            ResourceManager.Get(TutorialLabel.TutorialMask).CreateTweenSr(0, 180 / 255f, 0.25f, true, true, Curve.EaseOutQuad);
+        //}
+    }
+
+    public override void ThirdInit()
+    {
+        ResourceManager.Get<Image>(CanvasLabel.N_Mask).material = Lib.UIMaskMat;
+
+        Tutorial.Arrow = ResourceManager.Get(CanvasLabel.N_Arrow);
+        Tutorial.Material = ResourceManager.Get<Image>(CanvasLabel.N_Mask).material;
+
+        if (NewplayerTutorial)
+        {
+            //ResourceManager.Get(TutorialLabel.TutorialMask).AddScript<SceneMask>();
+
+            Vector3 playerDisplayScale = new Vector3(0.75f, 0.75f, 0.75f);
+            Vector3 playerSelectScale = new Vector3(0.9f, 0.9f, 0.9f);
+            ResourceManager.Get(TutorialLabel.Tutorial).CreateTweenSr(0, 1, 1f, true, true, Curve.EaseOutQuad, false, true).AlphaOnly = true;
+            ResourceManager.Get(TutorialLabel.PlayerBk1).CreateTweenScale(playerDisplayScale, playerSelectScale, 1f, true, true, Curve.EaseOutQuad);
+            ResourceManager.Get(TutorialLabel.PlayerBk2).CreateTweenScale(playerDisplayScale, playerSelectScale, 1f, true, true, Curve.EaseOutQuad);
+            ResourceManager.Get(TutorialLabel.PlayerBk3).CreateTweenScale(playerDisplayScale, playerSelectScale, 1f, true, true, Curve.EaseOutQuad);
+            //ResourceManager.Get(TutorialLabel.TutorialMask).CreateTweenSr(0, 180 / 255f, 0.25f, true, true, Curve.EaseOutQuad);
+
+
+            if (NewplayerTutorialIndex == 1)
+            {
+                ResourceManager.Get(CanvasLabel.C_MiniGame).TweenBacCG();
+
+                ChoseCharacter();
+            }
+            else if (NewplayerTutorialIndex == SetNicknameTutorialIndex)
+            {
+                SetNickname();
+            }
+            else if (NewplayerTutorialIndex == 2)
+            {
+                ClickEnterMinigame();
+            }
+            else if (NewplayerTutorialIndex == 4)
+            {
+                ResourceManager.Get(CanvasLabel.C_MiniGame).TweenBacCG();
+
+                ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
+
+                ResourceManager.SetActive(TutorialLabel.Tutorial, true);
+                ResourceManager.SetActive(TutorialLabel.TutorialMask, true);
+                ResourceManager.SetActive(TutorialLabel.TutorialCollider, true);
+
+                Garden.Instance.TutorialToRegular();
+                UIManager.Instance.TutorialToRegular();
+
+                Transform tra = GardenManager.SlotList[0].transform;
+
+                Tutorial.HightScene(0.1f, 0.075f, tra.Find(SlotLabel.SlotArrow), tra);
+            }
+            else if (NewplayerTutorialIndex == 6)
+            {
+                ResourceManager.Get(CanvasLabel.C_MiniGame).TweenBacCG();
+
+                Garden.Instance.TutorialToRegular();
+                UIManager.Instance.TutorialToRegular();
+
+                ClickManagePanel();
+            }
+        }
+    }
+
+
+    public static void EndChoseCharacter()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndChoseCharacter");
+
+        Destroy(ResourceManager.Get(TutorialLabel.PlayerBk1).gameObject);
+        Destroy(ResourceManager.Get(TutorialLabel.PlayerBk2).gameObject);
+        Destroy(ResourceManager.Get(TutorialLabel.PlayerBk3).gameObject);
+
+        SetNickname();
+    }
+
+    public static void EndSetNickname()
+    {
+        NickNameManager.CloseNickNameSettingPanel();
+
+        NickNameManager.OnSetNickNameSucceed = null;
+
+        StaticsManager.GetInstance().TutoComplete("EndSetNickname");
+
+        ClickEnterMinigame();
+    }
+
+    public static void EndClickEnterMinigame()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndClickEnterMinigame");
+
+        Tutorial.HightDisable();
+
+        PlayPunchMinigame();
+    }
+
+    public static void EndPlayPunchMinigame()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndPlayPunchMinigame");
+
+        Tutorial.HightDisable();
+
+        ResourceManager.SetActive(CanvasLabel.D_Quit, true);
+
+        ClickSlot();
+    }
+
+    public static void EndClickSlot()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndClickSlot");
+
+        Tutorial.HightDisable();
+
+        PlantFlower();
+    }
+
+    public static void EndPlantFlower()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndPlantFlower");
+
+        ClickManagePanel();
+    }
+
+    public static void EndClickManagePanel()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndClickManagePanel");
+
+        Tutorial.HightDisable();
+
+        OpenUnlockPanel();
+    }
+
+    public static void EndOpenUnlockPanel()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndOpenUnlockPanel");
+
+        Tutorial.HightDisable(0, true);
+
+        ClickConfirmButton();
+    }
+
+    public static void EndClickConfirmButton()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndClickConfirmButton");
+
+        Tutorial.HightDisable(0, true);
+
+        UseBigSkill();
+    }
+
+    public static void EndUseBigSkill()
+    {
+        Tutorial.HightDisable(0, false);
+    }
+
+    public static void EndShowTip()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndShowTip");
+
+        NewplayerTutorial = false;
+
+        AudioManager.PlayClip(AudioLabel.Close);
+
+        AchieveManager.UpdateHint();
+
+        Tutorial.HightDisable();
+        ResourceManager.Get(CanvasLabel.F_TipBK).TweenBacCG();
+        ResourceManager.SetActive(CanvasLabel.F_TipBtn, false);
+
+        ResourceManager.SetActive(TutorialLabel.Tutorial, false);
+        ResourceManager.SetActive(CanvasLabel.N_Tutorial, false);
+
+        ResourceManager.Get(CanvasLabel.C_MiniGame).TweenForCG();
+
+        PlayerManager.Player.SetAllCollider(true);
+
+        PayExemptAmt = 0;
+        ConnectExempt = false;
+    }
+
+
+    public static void ChoseCharacter()
+    {
+        NewplayerTutorialIndex = 1;
+
+        PlayerManager.DefaultPinkPlayer.CreateTweenScale(0.9f, 1f, true, true, Curve.EaseOutQuad);
+        PlayerManager.DefaultBlondPlayer.CreateTweenScale(0.9f, 1f, true, true, Curve.EaseOutQuad);
+        PlayerManager.DefaultBrownPlayer.CreateTweenScale(0.9f, 1f, true, true, Curve.EaseOutQuad);
+
+        ResourceManager.Get(TutorialLabel.PlayerBk2).TweenForScale();
+        PlayerManager.DefaultBlondPlayer.TweenForScale();
+
+        ResourceManager.SetActive(TutorialLabel.PlayerBk1, true);
+        ResourceManager.SetActive(TutorialLabel.PlayerBk2, true);
+        ResourceManager.SetActive(TutorialLabel.PlayerBk3, true);
+        ResourceManager.SetActive(TutorialLabel.TutorialMask, true);
+        ResourceManager.SetActive(TutorialLabel.TutorialCollider, true);
+
+        ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
+        ResourceManager.SetActive(CanvasLabel.N_Confirm, true);
+        ResourceManager.SetActive(CanvasLabel.N_FormerPlayerButton, true);
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.N_FormerPlayerButton,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+                ResourceManager.Get(CanvasLabel.La_Info).TweenForCG();
+
+                ResourceManager.Get(CanvasLabel.N_Confirm).TweenBacCG();
+                ResourceManager.Get(CanvasLabel.N_FormerPlayerButton).TweenBacCG();
+
+                ResourceManager.AddButtonEventOnetime
+                (
+                    CanvasLabel.La_Cancel,
+                    () =>
+                    {
+                        ResourceManager.Get(CanvasLabel.N_Confirm).TweenForCG();
+                        ResourceManager.Get(CanvasLabel.N_FormerPlayerButton).TweenForCG();
+                    }
+                );
+            }
+        );
+
+        ResourceManager.AddButtonEventOnetime
+        (
+            CanvasLabel.N_Confirm,
+            () =>
+            {
+                if (PlayerManager.SelectedPlayer == PlayerManager.DefaultPinkPlayer)
+                {
+                    PlayerManager.DressDatas.Add("脑壳3");
+                    PlayerManager.DressDatas.Add("裙子3");
+                    PlayerManager.DressDatas.Add("鞋子3");
+                    PlayerManager.DressDatas.Add("头饰品3");
+                    PlayerManager.DressDatas.Add("上衣3");
+                    PlayerManager.DressDatas.Add("眼睛3");
+                    PlayerManager.DressDatas.Add("嘴巴3");
+                    PlayerManager.DressDatas.Add("Empty");
+                    PlayerManager.DressDatas.Add("Empty");
+                    PlayerManager.DressDatas.Add("短袖1左");
+                    PlayerManager.DressDatas.Add("Empty");
+                    PlayerManager.DressDatas.Add("短袖1右");
+                }
+                else if (PlayerManager.SelectedPlayer == PlayerManager.DefaultBlondPlayer)
+                {
+                    PlayerManager.DressDatas.Add("脑壳1");
+                    PlayerManager.DressDatas.Add("裙子1");
+                    PlayerManager.DressDatas.Add("鞋子1");
+                    PlayerManager.DressDatas.Add("头饰品1");
+                    PlayerManager.DressDatas.Add("上衣1");
+                    PlayerManager.DressDatas.Add("眼睛1");
+                    PlayerManager.DressDatas.Add("嘴巴1");
+                    PlayerManager.DressDatas.Add("Empty");
+                    PlayerManager.DressDatas.Add("Empty");
+                    PlayerManager.DressDatas.Add("短袖2左");
+                    PlayerManager.DressDatas.Add("Empty");
+                    PlayerManager.DressDatas.Add("短袖2右");
+                }
+                else if (PlayerManager.SelectedPlayer == PlayerManager.DefaultBrownPlayer)
+                {
+                    PlayerManager.DressDatas.Add("脑壳2");
+                    PlayerManager.DressDatas.Add("裙子2");
+                    PlayerManager.DressDatas.Add("鞋子2");
+                    PlayerManager.DressDatas.Add("头饰品2");
+                    PlayerManager.DressDatas.Add("上衣2");
+                    PlayerManager.DressDatas.Add("眼睛2");
+                    PlayerManager.DressDatas.Add("嘴巴2");
+                    PlayerManager.DressDatas.Add("Empty");
+                    PlayerManager.DressDatas.Add("Empty");
+                    PlayerManager.DressDatas.Add("短袖2左");
+                    PlayerManager.DressDatas.Add("Empty");
+                    PlayerManager.DressDatas.Add("短袖2右");
+                }
+
+                foreach (var str in PlayerManager.DressDatas)
+                {
+                    if (!PlayerManager.CloseIDDictionary.ContainsKey(str))
+                    {
+                        continue;
+                    }
+
+                    int id = PlayerManager.CloseIDDictionary[str];
+
+                    PlayerManager.CloseItemDictionary[id].Unlock();
+
+                    PlayerManager.BoughtCloseIDs.Add(id);
+                }
+
+                ConfigManager.SaveDress();
+
+
+                Transform tra = PlayerManager.SelectedPlayer;
+
+                PlayerManager.Player = tra.GetComponent<Player>();
+
+                tra.parent = null;
+
+                ResourceManager.TransformDictionary.Add(tra.name, tra);
+
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+
+                if (PlayerManager.DefaultPinkPlayer != PlayerManager.SelectedPlayer)
+                {
+                    PlayerManager.DefaultPinkPlayer.GetComponentInChildren<Renderer>(true).CreateTweenRenderer(0, 0.25f, true, false, Curve.EaseOutQuad, false, true).StartForward();
+                }
+
+                if (PlayerManager.DefaultBlondPlayer != PlayerManager.SelectedPlayer)
+                {
+                    PlayerManager.DefaultBlondPlayer.GetComponentInChildren<Renderer>(true).CreateTweenRenderer(0, 0.25f, true, false, Curve.EaseOutQuad, false, true).StartForward();
+                }
+
+                if (PlayerManager.DefaultBrownPlayer != PlayerManager.SelectedPlayer)
+                {
+                    PlayerManager.DefaultBrownPlayer.GetComponentInChildren<Renderer>(true).CreateTweenRenderer(0, 0.25f, true, false, Curve.EaseOutQuad, false, true).StartForward();
+                }
+
+                ResourceManager.Get(TutorialLabel.PlayerBk1).SetCollider(false);
+                ResourceManager.Get(TutorialLabel.PlayerBk2).SetCollider(false);
+                ResourceManager.Get(TutorialLabel.PlayerBk3).SetCollider(false);
+
+                tra.CreateTweenScale(ResourceManager.Get(GardenLabel.GardenPlayerPos).localScale, 1f, true, true, Curve.EaseOutQuad);
+                tra.CreateTweenVec3D(ResourceManager.Get(GardenLabel.GardenPlayerPos).position, 1f, false, true, true, Curve.EaseOutQuad);
+                tra.SetParent(ResourceManager.Get(GardenLabel.GardenPivot));
+
+                tra.TweenForVec();
+                tra.TweenForScale();
+
+
+                ResourceManager.Get(CanvasLabel.N_Confirm).TweenBacCG();
+                ResourceManager.Get(CanvasLabel.N_FormerPlayerButton).TweenBacCG();
+
+                TweenRoot tween = ResourceManager.Get(TutorialLabel.Tutorial).TweenBacSr();
+
+                tween.AddEventOnetime
+                (
+                    EventType.BackwardFinish,
+                    () =>
+                    {
+                        EndChoseCharacter();
+                    }
+                );
+            }
+        );
+    }
+
+    public static void SetNickname()
+    {
+        NewplayerTutorialIndex = SetNicknameTutorialIndex;
+
+        NickNameManager.ShowNickNameSettingPanelFirstTime();
+
+        NickNameManager.OnSetNickNameSucceed = EndSetNickname;
+    }
+
+    public static void ClickEnterMinigame()
+    {
+        NewplayerTutorialIndex = 2;
+
+        Garden.Instance.TutorialToRegular();
+        UIManager.Instance.TutorialToRegular();
+
+        ResourceManager.Get(CanvasLabel.C_Group).TweenForCG();
+        ResourceManager.Get(CanvasLabel.C_MiniGame).TweenReForCG();
+
+        ResourceManager.SetActive(CanvasLabel.C_Coin, false);
+        ResourceManager.SetActive(CanvasLabel.C_Group1, false);
+        ResourceManager.SetActive(CanvasLabel.C_Group3, false);
+        ResourceManager.SetActive(CanvasLabel.C_CloseSidePanelButton, false);
+
+        ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
+
+
+        TweenRoot tween = ResourceManager.Get(CanvasLabel.N_Mask).TweenForGra();
+
+        tween.AddEventOnetime
+        (
+            EventType.ForwardFinish,
+            () =>
+            {
+                Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.C_MiniArrow0), ResourceManager.Get(CanvasLabel.C_MiniArrow1), ResourceManager.Get(CanvasLabel.C_MiniGame));
+            }
+        );
+
+        ResourceManager.AddButtonEventOnetime
+        (
+            CanvasLabel.C_MiniGame,
+            () =>
+            {
+                EndClickEnterMinigame();
+            }
+        );
+    }
+
+    public static void PlayPunchMinigame()
+    {
+        ResourceManager.Get(TutorialLabel.Tutorial).SetCollider(false);
+
+        ResourceManager.SetActive(CanvasLabel.D_Quit, false);
+
+
+        TweenRoot tween = ResourceManager.Get(CanvasLabel.D_MiniGame).GetTweenCG();
+
+        tween.AddEventOnetime
+        (
+            EventType.ForwardFinish,
+            () =>
+            {
+                Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.D_BeginArrow0), ResourceManager.Get(CanvasLabel.D_BeginArrow1), ResourceManager.Get(CanvasLabel.D_Begin));
+            }
+        );
+
+        ResourceManager.PushButtonEventOnetime
+        (
+            CanvasLabel.D_Begin,
+            () =>
+            {
+                Tutorial.HightDisable();
+            }
+        );
+
+        ResourceManager.AddButtonEventOnetime
+        (
+            CanvasLabel.Da_GetAward,
+            () =>
+            {
+                EndPlayPunchMinigame();
+
+                ResourceManager.Get(CanvasLabel.C_MiniGame).TweenBacCG();
+            }
+        );
+    }
+
+    public static void ClickSlot()
+    {
+        NewplayerTutorialIndex = 4;
+
+        TweenRoot tween = ResourceManager.Get(CanvasLabel.D_MiniGame).GetTweenCG();
+
+        tween.AddEventOnetime
+        (
+            EventType.BackwardFinish, 
+            () =>
+            {
+                ResourceManager.Get(TutorialLabel.Tutorial).SetCollider(true);
+
+                ResourceManager.Get<SpriteRenderer>(TutorialLabel.TutorialMask).material.SetAlpha(MaterialLabel.DefaultMatColor, 1);
+
+                ResourceManager.SetActive(TutorialLabel.TutorialMask, true);
+                ResourceManager.SetActive(TutorialLabel.TutorialCollider, true);
+
+                Transform tra = GardenManager.SlotList[0].transform;
+
+                Tutorial.HightScene(0.1f, 0.075f, tra.Find(SlotLabel.SlotArrow), tra);
+            }
+        );
+    }
+
+    public static void PlantFlower()
+    {
+        TweenRoot tween = ResourceManager.Get(CanvasLabel.G_Flower).TweenForCG();
+
+        tween.AddEventOnetime
+        (
+            EventType.ForwardFinish,
+            () =>
+            {
+                Transform tra = ResourceManager.Get(CanvasLabel.G_RegularGrid).GetChild(0);
+
+                Tutorial.HightScreen(tra.Find(FlowerItemLabel.ArrowPos), tra);
+            }
+        );
+
+        FlowerInfo flowerInfo = GardenManager.GetFlowerInfo(1);
+
+        flowerInfo.Button.AddButtonEventOnetime
+        (
+            () =>
+            {
+                Tutorial.HightDisable(0, true);
+            }
+        );
+
+        tween = ResourceManager.Get(CanvasLabel.H_FlowerCard).GetTweenCG();
+
+        tween.AddEventOnetime
+        (
+            EventType.ForwardFinish,
+            () =>
+            {
+                Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.H_ArrowPos), ResourceManager.Get(CanvasLabel.H_Icon2));
+            }
+        );
+
+        ResourceManager.AddButtonEventOnetime
+        (
+            CanvasLabel.H_Icon2,
+            () =>
+            {
+                Tutorial.HightDisable(0, true);
+
+                ResourceManager.Get(CanvasLabel.H_FlowerCard).TweenBacCG();
+            }
+        );
+
+        tween = ResourceManager.Get(CanvasLabel.H_FlowerCard).GetTweenCG();
+
+        tween.AddEventOnetime
+        (
+            EventType.BackwardFinish,
+            () =>
+            {
+                Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.G_Arrow0), ResourceManager.Get(CanvasLabel.G_Close));
+            }
+        );
+
+        ResourceManager.AddButtonEventOnetime
+        (
+            CanvasLabel.G_Close,
+            () =>
+            {
+                Tutorial.HightDisable();
+            }
+        );
+
+        tween = ResourceManager.Get(CanvasLabel.G_Flower).GetTweenCG();
+
+        tween.AddEventOnetime
+        (
+            EventType.BackwardFinish,
+            () =>
+            {
+                EndPlantFlower();
+            }
+        );
+    }
+
+    public static void ClickManagePanel()
+    {
+        NewplayerTutorialIndex = 6;
+
+        ResourceManager.SetActive(CanvasLabel.C_Coin, true);
+        ResourceManager.SetActive(CanvasLabel.C_Group1, true);
+        ResourceManager.SetActive(CanvasLabel.C_Group3, true);
+        ResourceManager.SetActive(CanvasLabel.C_CloseSidePanelButton, true);
+
+        ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
+
+        TweenRoot tween = ResourceManager.Get(CanvasLabel.C_Group).TweenForCG();
+
+        tween.AddEventOnetime
+        (
+            EventType.ForwardFinish, () =>
+            {
+                Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.C_ManageArrow0), ResourceManager.Get(CanvasLabel.C_Manage));
+            }
+        );
+
+        ResourceManager.AddButtonEventOnetime
+        (
+            CanvasLabel.C_Manage,
+            () =>
+            {
+                EndClickManagePanel();
+            }
+        );
+    }
+
+    public static void OpenUnlockPanel()
+    {
+        TweenRoot tween = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
+
+        tween.AddEventOnetime
+        (
+            EventType.ForwardFinish, 
+            () =>
+            {
+                Transform tra = Manager.SkillDictionary["Ability1"].SkillItem;
+
+                Tutorial.HightScreen(tra.Find(SkillItemLabel.ArrowPosition), tra.Find(SkillItemLabel.ArrowDestination), tra.Find(SkillItemLabel.Button));
+            }
+        );
+
+
+        SkillRoot skill = Manager.SkillDictionary["Ability1"];
+
+        skill.button.AddButtonEventOnetime
+        (
+            () =>
+            {
+                Tutorial.HightDisable(0, true);
+
+                PayExemptAmt = 1;
+            }
+        );
+
+
+        tween = ResourceManager.Get(CanvasLabel.Fe_Info).GetTweenCG();
+
+        tween.AddEventOnetime
+        (
+            EventType.ForwardFinish, 
+            () =>
+            {
+                Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.Fe_Arrow0), ResourceManager.Get(CanvasLabel.Fe_Arrow1), ResourceManager.Get(CanvasLabel.Fe_Btn));
+
+                ResourceManager.AddButtonEventOnetime
+                (
+                    CanvasLabel.Fe_Btn,
+
+                    () =>
+                    {
+                        ResourceManager.Get(CanvasLabel.Fe_Info).TweenBacCG();
+
+                        EndOpenUnlockPanel();
+                    }
+                );
+            }
+        );
+    }
+
+    public static void ClickConfirmButton()
+    {
+        TweenRoot tween = ResourceManager.Get(CanvasLabel.Fe_Info).GetTweenCG();
+
+        tween.AddEventOnetime
+        (
+            EventType.BackwardFinish,
+            () =>
+            {
+                Transform tra = Manager.SkillDictionary["Skill1"].SkillItem;
+
+                Tutorial.HightScreen(tra.Find(SkillItemLabel.ArrowPosition), tra.Find(SkillItemLabel.ArrowDestination), tra.Find(SkillItemLabel.Button));
+            }
+        );
+
+
+        SkillRoot skill = Manager.SkillDictionary["Skill1"];
+
+        skill.button.AddButtonEventOnetime
+        (
+            () =>
+            {
+                Tutorial.HightDisable(0, true);
+
+                PayExemptAmt = 1;
+            }
+        );
+
+
+        tween = ResourceManager.Get(CanvasLabel.Fe_Info).GetTweenCG();
+
+        tween.AddEventOnetime
+        (
+            EventType.ForwardFinish,
+            () =>
+            {
+                Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.Fe_Arrow0), ResourceManager.Get(CanvasLabel.Fe_Arrow1), ResourceManager.Get(CanvasLabel.Fe_Btn));
+
+                ResourceManager.AddButtonEventOnetime
+                (
+                    CanvasLabel.Fe_Btn,
+                    () =>
+                    {
+                        ResourceManager.Get(CanvasLabel.Fe_Info).TweenBacCG();
+                        EndClickConfirmButton();
+                    }
+                );
+            }
+        );
+    }
+
+    public static void UseBigSkill()
+    {
+        TweenRoot tween = ResourceManager.Get(CanvasLabel.Fe_Info).GetTweenCG();
+
+        tween.AddEventOnetime
+        (
+            EventType.BackwardFinish,
+            () =>
+            {
+                ConnectExempt = true;
+
+                Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.F_Arrow0), ResourceManager.Get(CanvasLabel.F_Skill1));
+            }
+        );
+
+
+        ResourceManager.AddButtonEventOnetime
+        (
+            CanvasLabel.F_SkillBk11,
+            () =>
+            {
+                EndUseBigSkill();
+                ShowTip();
+            }
+        );
+    }
+
+    public static void ShowTip()
+    {
+        ResourceManager.Get(CanvasLabel.N_Mask).TweenForGra();
+
+        ResourceManager.Get(CanvasLabel.F_TipBK).TweenForCG();
+        ResourceManager.SetText(CanvasLabel.F_Tip, Language.GetStr(LanguageLabel.UI__F_Tip));
+
+        ResourceManager.SetActive(CanvasLabel.F_TipBtn, true);
+        ResourceManager.AddButtonEventOnetime(CanvasLabel.F_TipBtn, () => EndShowTip());
+
+        ResourceManager.Get<ContentSizeFitter>(CanvasLabel.F_TipBK).SetLayoutVertical();
+        ResourceManager.Get<ContentSizeFitter>(CanvasLabel.F_TipBK).SetLayoutHorizontal();
+        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.F_CoinLabArrow), ResourceManager.Get(CanvasLabel.F_TipBtn), 3, false);
+        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.F_CoinLabArrow), ResourceManager.Get(CanvasLabel.F_TipBK), 1);
+        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.F_CoinLabArrow), ResourceManager.Get(CanvasLabel.F_Tip), 2, false);
+        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.F_CoinLabArrow), ResourceManager.Get(CanvasLabel.F_DataB), 1, false);
+        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.F_CoinLabArrow), ResourceManager.Get(CanvasLabel.F_CoinLab), 2, false);
+        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.F_CoinLabArrow), ResourceManager.Get(CanvasLabel.F_DiamondLab), 2, false);
+    }
+
+
+    public static void EndClickVisitBtn()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndClickVisitBtn");
+
+        Tutorial.HightDisable();
+
+        VisitTutorial = false;
+
+        ResourceManager.SetActive(CanvasLabel.N_Tutorial, false);
+
+        PayExemptAmt = 0;
+        ConnectExemptAmt = 0;
+    }
+
+
+    public static void ClickVisitBtn()
+    {
+        VisitTutorial = true;
+        visitTutorial = false;
+
+        UIManager.BlockOfflinePanel();
+
+        TweenRoot tweenRoot = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
+
+        if (tweenRoot.InDestination)
+        {
+            TweenRoot tween = ResourceManager.Get(CanvasLabel.Fe_Info).TweenBacCG();
+
+            tween.AddEventOnetime
+            (
+                EventType.BackwardFinish,
+                () =>
+                {
+                    ResourceManager.Get(CanvasLabel.F_Manage).TweenBacGra();
+
+                    tween = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
+
+                    tween.AddEventOnetime
+                    (
+                        EventType.BackwardFinish,
+                        () =>
+                        {
+                            ShowVisitBtn();
+                        }
+                    );
+                }
+            );
+        }
+        else
+        {
+            ShowVisitBtn();   
+        }
+
+        ResourceManager.AddButtonEventOnetime
+        (
+            CanvasLabel.C_Return,
+            () =>
+            {
+                TweenRoot tween = ResourceManager.Get(CanvasLabel.I_BlackMask).GetTweenCG();
+                tween.AddEventOnetime
+                (
+                    EventType.BackwardFinish,
+                    () =>
+                    {
+                        UIManager.UnblockOfflinePanel();
+                    }
+                );
+            }
+        );
+    }
+
+    public static void ShowVisitBtn()
+    {
+        ResourceManager.Get(CanvasLabel.C_Main).TweenReForCG();
+        ResourceManager.Get(CanvasLabel.C_Group).TweenReForCG();
+        ResourceManager.Get(CanvasLabel.C_Group0).TweenReForCG();
+
+        TweenRoot tween = ResourceManager.Get(CanvasLabel.C_Group).GetTweenCG();
+
+        tween.AddEventOnetime
+        (
+            EventType.ForwardFinish,
+            () =>
+            {
+                ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
+
+                tween = ResourceManager.Get(CanvasLabel.N_Mask).TweenForGra();
+
+                tween.AddEventOnetime
+                (
+                    EventType.ForwardFinish,
+                    () =>
+                    {
+                        PayExemptAmt = 1;
+
+                        ResourceManager.SetActive(CanvasLabel.C_Visit, true);
+
+                        ResourceManager.Get<HorizontalLayoutGroup>(CanvasLabel.C_Group4).SetLayoutHorizontal();
+                        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.C_VisitArrow0), ResourceManager.Get(CanvasLabel.C_Visit));
+
+                        ResourceManager.AddButtonEventOnetime
+                        (
+                            CanvasLabel.C_Visit,
+                            () =>
+                            {
+                                EndClickVisitBtn();
+                            }
+                        );
+                    }
+                );
+            }
+        );
+    }
+
+
+    public static void EndShowFirstCorrectButton()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndShowFirstCorrectButton");
+
+        Tutorial.HightDisable(0, false);
+    }
+
+    public static void EndShowSecondCorrectButton()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndShowSecondCorrectButton");
+
+        Tutorial.HightDisable(0, false);
+    }
+
+    public static void EndShowThirdCorrectButton()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndShowThirdCorrectButton");
+
+        Tutorial.HightDisable(0, false);
+    }
+
+    public static void EndShowFourthCorrectButton()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndShowFourthCorrectButton");
+
+        Tutorial.HightDisable(0, false);
+    }
+
+    public static void EndShowFifthCorrectButton()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndShowFifthCorrectButton");
+
+        Tutorial.HightDisable(0, false);
+    }
+
+    public static void EndShowSixthCorrectButton()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndShowSixthCorrectButton");
+
+        Tutorial.HightDisable();
+
+        MemoryMinigameTutorial = false;
+
+        MiniGameManager.Pause = false;
+    }
+
+
+    public static void PlayMemoryGame()
+    {
+        memoryMinigameTutorial = false;
+
+        ResourceManager.Get(CanvasLabel.N_Mask).TweenForGra();
+
+        ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
+
+
+        MiniGameManager.Pause = true;
+
+        int index = MiniGameManager.GetMemoryGameButtonIndex(MiniGameManager.FindSoloGameIndexList[0]);
+        Button button = MiniGameManager.D_MemoryGameBtns[index].GetComponent<Button>();
+        Tutorial.HightScreen(MiniGameManager.D_MemoryGameArrows[index], button.transform, 1, true, new Vector3(0.05f, 0.05f, 0.05f));
+        button.AddButtonEventOnetime
+        (
+            () =>
+            {
+                EndShowFirstCorrectButton();
+                ShowSecondCorrectButton();
+            }
+        );
+    }
+
+    public static void ShowSecondCorrectButton()
+    {
+        int index = MiniGameManager.GetMemoryGameButtonIndex(MiniGameManager.FindSoloGameIndexList[0]);
+        Button button = MiniGameManager.D_MemoryGameBtns[index].GetComponent<Button>();
+        Tutorial.HightScreen(MiniGameManager.D_MemoryGameArrows[index], button.transform, 1, true, new Vector3(0.05f, 0.05f, 0.05f));
+        button.AddButtonEventOnetime
+        (
+            () =>
+            {
+                EndShowSecondCorrectButton();
+                ShowThirdCorrectButton();
+            }
+        );
+    }
+
+    public static void ShowThirdCorrectButton()
+    {
+        int index = MiniGameManager.GetMemoryGameButtonIndex(MiniGameManager.FindSoloGameIndexList[0]);
+        Button button = MiniGameManager.D_MemoryGameBtns[index].GetComponent<Button>();
+        Tutorial.HightScreen(MiniGameManager.D_MemoryGameArrows[index], button.transform, 1, true, new Vector3(0.05f, 0.05f, 0.05f));
+        button.AddButtonEventOnetime
+        (
+            () =>
+            {
+                EndShowThirdCorrectButton();
+                ShowFourthCorrectButton();
+            }
+        );
+    }
+
+    public static void ShowFourthCorrectButton()
+    {
+        int index = MiniGameManager.GetMemoryGameButtonIndex(MiniGameManager.FindSoloGameIndexList[0]);
+        Button button = MiniGameManager.D_MemoryGameBtns[index].GetComponent<Button>();
+        Tutorial.HightScreen(MiniGameManager.D_MemoryGameArrows[index], button.transform, 1, true, new Vector3(0.05f, 0.05f, 0.05f));
+        button.AddButtonEventOnetime
+        (
+            () =>
+            {
+                EndShowFourthCorrectButton();
+                ShowFifthCorrectButton();
+            }
+        );
+    }
+
+    public static void ShowFifthCorrectButton()
+    {
+        int index = MiniGameManager.GetMemoryGameButtonIndex(MiniGameManager.FindSoloGameIndexList[0]);
+        Button button = MiniGameManager.D_MemoryGameBtns[index].GetComponent<Button>();
+        Tutorial.HightScreen(MiniGameManager.D_MemoryGameArrows[index], button.transform, 1, true, new Vector3(0.05f, 0.05f, 0.05f));
+        button.AddButtonEventOnetime
+        (
+            () =>
+            {
+                EndShowFifthCorrectButton();
+                ShowSixthCorrectButton();
+            }
+        );
+    }
+
+    public static void ShowSixthCorrectButton()
+    {
+        int index = MiniGameManager.GetMemoryGameButtonIndex(MiniGameManager.FindSoloGameIndexList[0]);
+        Button button = MiniGameManager.D_MemoryGameBtns[index].GetComponent<Button>();
+        Tutorial.HightScreen(MiniGameManager.D_MemoryGameArrows[index], button.transform, 1, true, new Vector3(0.05f, 0.05f, 0.05f));
+        button.AddButtonEventOnetime
+        (
+            () =>
+            {
+                EndShowSixthCorrectButton();
+            }
+        );
+    }
+
+
+    public static void EndClickFindMissingCorrectButton()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndClickFindMissingCorrectButton");
+
+        FindMissingMinigameTutorial = false;
+
+        Tutorial.HightDisable();
+
+        ResourceManager.SetActive(CanvasLabel.N_Tutorial, false);
+
+        MiniGameManager.Pause = false;
+    }
+
+    public static void PlayFindMissingGame()
+    {
+        FindMissingMinigameTutorial = true;
+        findMissingMinigameTutorial = false;
+    }
+
+    public static void ShowFindMissingCorrectButton(Transform arrowTra, Transform targetTra)
+    {
+        MiniGameManager.Pause = true;
+
+        ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
+
+        Tutorial.HightScreen(arrowTra, targetTra, 1, true, new Vector3(0.05f, 0.05f, 0.05f));
+    }
+
+
+    public static void EndClickDressroomButton()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndClickDressroomButton");
+
+        DressroomTutorial = false;
+
+        ResourceManager.Get(CanvasLabel.C_Main2).TweenForCG();
+
+        Tutorial.HightDisable();
+
+        ResourceManager.Get(CanvasLabel.N_LabBK).TweenBacCG();
+
+        TweenRoot tweenRoot = ResourceManager.Get(CanvasLabel.I_BlackMask).TweenBacCG();
+
+        tweenRoot.AddEventOnetime
+        (
+            EventType.BackwardFinish,
+            () =>
+            {
+                Tutorial.MaskFlag = true;
+
+                ResourceManager.SetActive(CanvasLabel.N_Button, false);
+                ResourceManager.SetActive(CanvasLabel.N_Tutorial, false);
+            }
+        );
+
+        ResourceManager.AddButtonEventOnetime
+        (
+            CanvasLabel.P_Return,
+            () =>
+            {
+                tweenRoot = ResourceManager.Get(CanvasLabel.I_BlackMask).TweenBacCG();
+
+                tweenRoot.AddEventOnetime
+                (
+                    EventType.ForwardFinish,
+                    () =>
+                    {
+                        UIManager.UnblockOfflinePanel();
+                    }
+                );
+            }
+        );
+    }
+
+    public static void ClickDressroomButton()
+    {
+        DressroomTutorial = true;
+        dressroomTutorial = false;
+
+        UIManager.BlockOfflinePanel();
+
+        TweenRoot tweenRoot = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
+
+        if (tweenRoot.InDestination)
+        {
+            tweenRoot.AddEventOnetime
+            (
+                EventType.BackwardFinish,
+                () =>
+                {
+                    ShowDressroomButton();
+                }
+            );
+
+            tweenRoot = ResourceManager.Get(CanvasLabel.Fe_Info).TweenBacCG();
+
+            tweenRoot.AddEventOnetime
+            (
+                EventType.BackwardFinish,
+                () =>
+                {
+                    tweenRoot = ResourceManager.Get(CanvasLabel.F_Manage).TweenBacGra();
+                }
+            );
+        }
+        else
+        {
+            ShowDressroomButton();
+        }
+    }
+
+    public static void ShowDressroomButton()
+    {
+        ResourceManager.Get(CanvasLabel.C_Main).TweenReForCG();
+        ResourceManager.Get(CanvasLabel.C_Group).TweenReForCG();
+        ResourceManager.Get(CanvasLabel.C_Group0).TweenReForCG();
+
+        ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
+
+        ResourceManager.Get(CanvasLabel.N_Mask).TweenForGra();
+
+        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.C_DressRoomArrow), ResourceManager.Get(CanvasLabel.C_DressRoom));
+
+        ResourceManager.AddButtonEventOnetime
+        (
+            CanvasLabel.C_DressRoom,
+            () =>
+            {
+                EndClickDressroomButton();
+            }
+        );
+
+        ResourceManager.SetText(CanvasLabel.N_Lab, Language.GetStr(LanguageLabel.UI__N_Lab));
+
+        Tutorial.ShowDescriptScreen(ResourceManager.Get(CanvasLabel.C_DressRoomLabPos).position);
+    }
+
+
+    public static void EndClickFindSoloCorrectButton()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndClickFindSoloCorrectButton");
+
+        FindSoloMinigameTutorial = false;
+
+        Tutorial.HightDisable();
+
+        ResourceManager.SetActive(CanvasLabel.N_Tutorial, false);
+
+        MiniGameManager.Pause = false;
+    }
+
+    public static void PlayFindSoloGame()
+    {
+        FindSoloMinigameTutorial = true;
+        findSoloMinigameTutorial = false;
+    }
+
+    public static void ShowFindSoloCorrectButton(Transform arrowTra, Transform targetTra)
+    {
+        MiniGameManager.Pause = true;
+
+        ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
+
+        Tutorial.HightScreen(arrowTra, targetTra, 1, true, new Vector3(0.05f, 0.05f, 0.05f));
+    }
+
+
+    public static void EndClickPlazaRoomBtn()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndClickPlazaRoomBtn");
+
+        Tutorial.HightDisable();
+
+        PlazaRoomTutorial = false;
+
+        ResourceManager.SetActive(CanvasLabel.N_Tutorial, false);
+
+        PayExemptAmt = 0;
+        ConnectExemptAmt = 0;
+
+
+        ResourceManager.AddButtonEventOnetime
+        (
+            CanvasLabel.X_Quit,
+            () =>
+            {
+                TweenRoot tweenRoot = ResourceManager.Get(CanvasLabel.V_BlackMask).TweenForCG();
+
+                tweenRoot.AddEventOnetime
+                (
+                    EventType.ForwardFinish,
+                    () =>
+                    {
+                        UIManager.UnblockOfflinePanel();
+                    }
+                );
+            }
+        );
+    }
+
+    public static void ClickPlazaRoomBtn()
+    {
+        PlazaRoomTutorial = true;
+        plazaRoomTutorial = false;
+
+        UIManager.BlockOfflinePanel();
+
+        TweenRoot tweenRoot = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
+
+        if (tweenRoot.InDestination)
+        {
+            TweenRoot tween = ResourceManager.Get(CanvasLabel.Fe_Info).TweenBacCG();
+
+            tween.AddEventOnetime
+            (
+                EventType.BackwardFinish,
+                () =>
+                {
+                    ResourceManager.Get(CanvasLabel.F_Manage).TweenBacGra();
+
+                    tween = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
+
+                    tween.AddEventOnetime
+                    (
+                        EventType.BackwardFinish,
+                        () =>
+                        {
+                            ShowPlazaRoomBtn();
+                        }
+                    );
+                }
+            );
+        }
+        else
+        {
+            ShowPlazaRoomBtn();
+        }
+    }
+
+    public static void ShowPlazaRoomBtn()
+    {
+        ResourceManager.Get(CanvasLabel.C_Main).TweenReForCG();
+        ResourceManager.Get(CanvasLabel.C_Group).TweenReForCG();
+        ResourceManager.Get(CanvasLabel.C_Group0).TweenReForCG();
+
+        TweenRoot tween = ResourceManager.Get(CanvasLabel.C_Group).GetTweenCG();
+
+        tween.AddEventOnetime
+        (
+            EventType.ForwardFinish,
+            () =>
+            {
+                ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
+
+                tween = ResourceManager.Get(CanvasLabel.N_Mask).TweenForGra();
+
+                tween.AddEventOnetime
+                (
+                    EventType.ForwardFinish,
+                    () =>
+                    {
+                        ResourceManager.SetActive(CanvasLabel.C_EnterPlazaRoom, true);
+                        ResourceManager.SetActive(CanvasLabel.C_EnterPlazaRoom0, true);
+                        ResourceManager.Get<HorizontalLayoutGroup>(CanvasLabel.C_Group4).CalculateLayoutInputHorizontal();
+                        ResourceManager.Get<HorizontalLayoutGroup>(CanvasLabel.C_Group4).SetLayoutHorizontal();
+                        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.C_PlazaRoomArrow0), ResourceManager.Get(CanvasLabel.C_EnterPlazaRoom));
+
+                        ResourceManager.AddButtonEventOnetime
+                        (
+                            CanvasLabel.C_EnterPlazaRoom,
+                            () =>
+                            {
+                                EndClickPlazaRoomBtn();
+                            }
+                        );
+                    }
+                );
+            }
+        );
+    }
+
+
+    public static void EndClickFashionShowBtn()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndClickFashionShowBtn");
+
+        Tutorial.HightDisable();
+        ResourceManager.SetActive(CanvasLabel.N_Tutorial, false);
+
+        ShowHomePageDesc();
+    }
+
+    public static void EndHomePageDesc()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndHomePageDesc");
+        ResourceManager.SetActive(CanvasLabel.Pi_Tutorial, false);
+        ResourceManager.SetActive(CanvasLabel.Pi_HomePageTipBK, false);
+        ResourceManager.SetActive(CanvasLabel.Pi_HomePageTipBtn, false);
+
+        ClickMineTabButton();
+    }
+
+    public static void EndClickMineTabButton()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndClickMineTabButton");
+
+        Tutorial.HightDisable();
+        ResourceManager.SetActive(CanvasLabel.N_Tutorial, false);
+
+        ResourceManager.SetActive(CanvasLabel.Pi_Tutorial, true);
+
+        ResourceManager.Get(CanvasLabel.Pi_Tutorial).SetAsLastSibling();
+        ResourceManager.Get(CanvasLabel.Pi_LeaveTipBK).SetAsLastSibling();
+
+        DelayCall.Call(1, ShowLeaveDesc);
+    }
+
+    public static void EndLeaveDesc()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndLeaveDesc");
+
+        Tutorial.HightDisable();
+        ResourceManager.SetActive(CanvasLabel.N_Tutorial, false);
+
+        ResourceManager.SetActive(CanvasLabel.Pi_Tutorial, false);
+        ResourceManager.SetActive(CanvasLabel.Pi_LeaveTipBK, false);
+
+        ShowCloseDesc();
+    }
+
+    public static void EndCloseDesc()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndCloseDesc");
+        ResourceManager.SetActive(CanvasLabel.P_Tutorial, false);
+        ResourceManager.SetActive(CanvasLabel.P_CloseTipBK, false);
+        ResourceManager.SetActive(CanvasLabel.P_CloseTipBtn, false);
+        ClickShareButton();
+    }
+
+    public static void EndFashionShowTutorial()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndFashionShowTutorial");
+
+        ResourceManager.SetActive(CanvasLabel.P_Tutorial, false);
+        ResourceManager.SetActive(CanvasLabel.P_CreateTipBK, false);
+
+        Tutorial.HightDisable();
+
+        FashionShowTutorial = false;
+        fashionShowTutorial = false;
+
+        ResourceManager.SetActive(CanvasLabel.N_Tutorial, false);
+
+        PayExemptAmt = 0;
+        ConnectExemptAmt = 0;
+    }
+
+    public static void BeginFashionShowTutorial()
+    {
+        FashionShowTutorial = true;
+
+        ResourceManager.SetText(CanvasLabel.Pi_HomePageTip, Language.GetStr(LanguageLabel.Tutorial__ShowButtonDesc));
+        ResourceManager.SetText(CanvasLabel.Pi_LeaveTip, Language.GetStr(LanguageLabel.Tutorial__ShareButtonDesc));
+        ResourceManager.SetText(CanvasLabel.P_CloseTip, Language.GetStr(LanguageLabel.Tutorial__CloseDesc));
+        ResourceManager.SetText(CanvasLabel.P_CreateTip, Language.GetStr(LanguageLabel.Tutorial__CreateButtonDesc));
+
+        UIManager.BlockOfflinePanel();
+
+        TweenRoot tweenRoot = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
+
+        if (tweenRoot.InDestination)
+        {
+            TweenRoot tween = ResourceManager.Get(CanvasLabel.Fe_Info).TweenBacCG();
+
+            tween.AddEventOnetime
+            (
+                EventType.BackwardFinish,
+                () =>
+                {
+                    ResourceManager.Get(CanvasLabel.F_Manage).TweenBacGra();
+
+                    tween = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
+
+                    tween.AddEventOnetime
+                    (
+                        EventType.BackwardFinish,
+                        () =>
+                        {
+                            ClickFashionShowBtn();
+                        }
+                    );
+                }
+            );
+        }
+        else
+        {
+            ClickFashionShowBtn();
+        }
+    }
+
+    public static void ClickFashionShowBtn()
+    {
+        ResourceManager.Get(CanvasLabel.C_Main).TweenReForCG();
+        ResourceManager.Get(CanvasLabel.C_Group).TweenReForCG();
+        ResourceManager.Get(CanvasLabel.C_Group0).TweenReForCG();
+
+        TweenRoot tween = ResourceManager.Get(CanvasLabel.C_Group).GetTweenCG();
+
+        tween.AddEventOnetime
+        (
+            EventType.ForwardFinish,
+            () =>
+            {
+                ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
+
+                tween = ResourceManager.Get(CanvasLabel.N_Mask).TweenForGra();
+
+                tween.AddEventOnetime
+                (
+                    EventType.ForwardFinish,
+                    () =>
+                    {
+                        ResourceManager.SetActive(CanvasLabel.C_FashionShowButton, true);
+                        ResourceManager.Get<HorizontalLayoutGroup>(CanvasLabel.C_Group4).CalculateLayoutInputHorizontal();
+                        ResourceManager.Get<HorizontalLayoutGroup>(CanvasLabel.C_Group4).SetLayoutHorizontal();
+                        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.C_FashionShowArrow), ResourceManager.Get(CanvasLabel.C_FashionShowButton));
+
+                        ResourceManager.AddButtonEventOnetime
+                        (
+                            CanvasLabel.C_FashionShowButton,
+                            () =>
+                            {
+                                EndClickFashionShowBtn();
+                            }
+                        );
+                    }
+                );
+            }
+        );
+    }
+
+    public static void ShowHomePageDesc()
+    {
+        ResourceManager.SetActive(CanvasLabel.Pi_Tutorial, true);
+        ResourceManager.SetActive(CanvasLabel.Pi_HomePageTipBK, true);
+        ResourceManager.SetActive(CanvasLabel.Pi_HomePageTipBtn, true);
+        LayoutRebuilder.ForceRebuildLayoutImmediate(ResourceManager.Get<RectTransform>(CanvasLabel.Pi_HomePageTipBK));
+
+        TweenRoot tween = ResourceManager.Get(CanvasLabel.Pi_FashionShowHomePanel).GetTweenVec();
+        tween.AddEventOnetime
+        (EventType.ForwardFinish, () =>
+        {
+            ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
+            Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.Pi_HomePageArrow1),
+                ResourceManager.Get(CanvasLabel.Pi_HomePageArrow0), ResourceManager.Get(CanvasLabel.Pi_ShareBg));
+            ResourceManager.Get(CanvasLabel.N_Mask).GetTweenGra().Pause();
+            ResourceManager.Get(CanvasLabel.N_Mask).GetTweenGra().InOrigin = true;
+
+            ResourceManager.AddButtonEventOnetime(CanvasLabel.Pi_HomePageTipBtn, EndHomePageDesc);
+        });
+    }
+
+    public static void ClickMineTabButton()
+    {
+        ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
+
+        ResourceManager.Get(CanvasLabel.N_Mask).GetTweenGra().InDestination = true;
+
+        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.Pi_MineTabButtonArrow), ResourceManager.Get(CanvasLabel.Pi_MineTabButton));
+
+        ResourceManager.PushButtonEventOnetime
+        (
+            CanvasLabel.Pi_MineTabButton,
+            () =>
+            {
+                EndClickMineTabButton();
+            }
+        );
+    }
+
+    public static void ShowLeaveDesc()
+    {
+        ResourceManager.SetActive(CanvasLabel.Pi_LeaveTipBK, true);
+        LayoutRebuilder.ForceRebuildLayoutImmediate(ResourceManager.Get<RectTransform>(CanvasLabel.Pi_LeaveTipBK));
+        //Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.P_Close), ResourceManager.Get(CanvasLabel.Pi_ShareBg));
+
+        ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
+        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.Pi_ShareArrow), ResourceManager.Get(CanvasLabel.Pi_ShareBg));
+        ResourceManager.Get(CanvasLabel.N_Mask).GetTweenGra().Pause();
+        ResourceManager.Get(CanvasLabel.N_Mask).GetTweenGra().InOrigin = true;
+
+        ResourceManager.AddButtonEventOnetime(CanvasLabel.Pi_Share, EndLeaveDesc);
+    }
+
+    public static void ShowCloseDesc()
+    {
+        ResourceManager.SetActive(CanvasLabel.P_Tutorial, true);
+        ResourceManager.SetActive(CanvasLabel.P_CloseTipBtn, true);
+        ResourceManager.SetActive(CanvasLabel.P_CloseTipBK, true);
+
+        DelayCall.Call
+        (
+            0.5f,
+            () =>
+            {
+                LayoutRebuilder.ForceRebuildLayoutImmediate(ResourceManager.Get<RectTransform>(CanvasLabel.P_CloseTipBK));
+
+                ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
+                Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.P_CloseArrow0), ResourceManager.Get(CanvasLabel.P_CloseArrow1), ResourceManager.Get(CanvasLabel.Pi_ShareBg));
+                ResourceManager.Get(CanvasLabel.N_Mask).GetTweenGra().Pause();
+                ResourceManager.Get(CanvasLabel.N_Mask).GetTweenGra().InOrigin = true;
+            }
+        );
+
+        ResourceManager.AddButtonEventOnetime(CanvasLabel.P_CloseTipBtn, EndCloseDesc);
+    }
+
+    public static void ClickShareButton()
+    {
+        ResourceManager.Get(CanvasLabel.P_Tutorial).SetAsLastSibling();
+
+        ResourceManager.SetActive(CanvasLabel.P_Tutorial, true);
+        ResourceManager.SetActive(CanvasLabel.P_CreateTipBK, true);
+        DelayCall.Call(0.5f, () => LayoutRebuilder.ForceRebuildLayoutImmediate(ResourceManager.Get<RectTransform>(CanvasLabel.P_CreateTipBK)));
+
+        ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
+
+        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.Pi_LeaveTipBK), ResourceManager.Get(CanvasLabel.P_FashionShowButton));
+
+        ResourceManager.Get(CanvasLabel.N_Mask).GetTweenGra().Pause();
+        ResourceManager.Get(CanvasLabel.N_Mask).GetTweenGra().InOrigin = true;
+
+        ResourceManager.AddButtonEventOnetime
+        (
+            CanvasLabel.P_FashionShowButton,
+            () =>
+            {
+                EndFashionShowTutorial();
+            }
+        );
+    }
+
+
+
+    public static void EndChangeMouseTutorial()
+    {
+        ResourceManager.Get(CanvasLabel.Canvas).TweenBacCG();
+        PlayerManager.Player.onClick -= EndChangeMouseTutorial;
+        changeMouseTutorial = false;
+        Tutorial.HightDisable();
+    }
+
+    public static void BeginChangeMouseTutorial()
+    {
+        UIManager.BlockOfflinePanel();
+
+        TweenRoot tweenRoot = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
+
+        if (tweenRoot.InDestination)
+        {
+            TweenRoot tween = ResourceManager.Get(CanvasLabel.Fe_Info).TweenBacCG();
+
+            tween.AddEventOnetime
+            (
+                EventType.BackwardFinish,
+                () =>
+                {
+                    ResourceManager.Get(CanvasLabel.F_Manage).TweenBacGra();
+
+                    tween = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
+
+                    tween.AddEventOnetime
+                    (
+                        EventType.BackwardFinish,
+                        () =>
+                        {
+                            ClickPlayer();
+                        }
+                    );
+                }
+            );
+        }
+        else
+        {
+            ClickPlayer();
+        }
+    }
+
+    public static void ClickPlayer()
+    {
+        SceneMask.inst.SetActive(true);
+        Tutorial.HightScene(0.1f, 0.22f, PlayerManager.Player.transform, PlayerManager.Player.ChildDic["HighLightPos"]);
+        ResourceManager.Get(CanvasLabel.Canvas).TweenForCG();
+        PlayerManager.Player.onClick += EndChangeMouseTutorial;
+    }
 }

+ 3918 - 3910
Assets/Script/Manage/UIManager.cs

@@ -1,3911 +1,3919 @@
-using LitJson;
-
-using UnityEngine;
-using UnityEngine.UI;
-using UnityEngine.Events;
-using UnityEngine.EventSystems;
-
-using System;
-using System.Xml;
-using System.Collections;
-using System.Collections.Generic;
-using System.IO;
-using System.Text;
-using repeatCallUtility;
-using Sfs2X.Entities.Data;
-using Random = UnityEngine.Random;
-
-public class UIManager : Regist
-{
-    #region Config
-
-    public static bool Initd;
-
-    private static int MaxSkillIconForIncomeDetailPanel = 4;
-    private static int MaxSkillDisplayAmt = 2;
-    private static int MaxAbilityDisplayAmt = 3;
-    private static int MinigameDisplayCoinAwardRatio = 10;
-    private static int MinigameDisplayDiamondAward = 10;
-
-    public static Transform Canvas;
-    public static Transform Camera;
-    public static Transform EventSystem;
-    public static Coroutine StopPlayCreditsRoutine;
-
-    public static UIManager Instance;
-
-    #endregion
-
-
-    public static void Init(bool debugMode)
-    {
-        if (Initd)
-        {
-            return;
-        }
-
-        if (Bundle.UI == null && !debugMode)
-        {
-            return;
-        }
-
-        Transform tra = new GameObject(ResourceLabel.UI).transform;
-
-        tra.parent = Instance.transform;
-
-        Canvas = ResourceManager.Get(ResourceLabel.Canvas, Folder.UI, true, tra, false, ObjType.Canvas);
-        Camera = ResourceManager.Get(ResourceLabel.MainCamera, Folder.UI, true, tra, false, ObjType.MainCamera);
-        EventSystem = ResourceManager.Get(ResourceLabel.EventSystem, Folder.UI, false, tra, false, ObjType.EventSystem);
-
-        ResourceManager.SetActive(CanvasLabel.C_Main, true);
-        ResourceManager.SetActive(CanvasLabel.U_LoadingPanel, true);
-
-        #region WarningText
-
-        if (Initializer.Instance.DebugMode == false)
-        {
-            XmlDocument document = new XmlDocument();
-            TextAsset textAsset = Bundle.Defaul.LoadAsset<TextAsset>(ResourceLabel.DefaultEnglish);
-            document.LoadXml(textAsset.text);
-            Language.AddLanguageDocument(CurrentLanguage.English, document);
-
-            document = new XmlDocument();
-            textAsset = Bundle.Defaul.LoadAsset<TextAsset>(ResourceLabel.DefaultChineseSimplified);
-            document.LoadXml(textAsset.text);
-            Language.AddLanguageDocument(CurrentLanguage.ChineseSimplified, document);
-
-            document = new XmlDocument();
-            textAsset = Bundle.Defaul.LoadAsset<TextAsset>(ResourceLabel.DefaultChineseTraditional);
-            document.LoadXml(textAsset.text);
-            Language.AddLanguageDocument(CurrentLanguage.ChineseTraditional, document);
-
-            Initializer.SetWarningText();
-        }
-
-        #endregion
-
-        #region 
-
-        ResourceManager.Get(CanvasLabel.K_Bubble).AddScript<Bubble>();
-
-        #endregion
-
-        Initd = true;
-    }
-
-
-    public override bool InitAtOnce()
-    {
-        if (base.InitAtOnce())
-        {
-            return true;
-        }
-
-        Instance = this;
-
-        return false;
-    }
-
-
-    public override void FirstInit()
-    {
-        Instance = this;
-
-        #region B
-
-        ResourceManager.SetSprite(CanvasLabel.Ba_Icon, Lib.BigGoldSprite);
-        ResourceManager.SetSprite(CanvasLabel.Bb_IconB, Lib.BigGoldSprite);
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Ba_Lab), new MulLanStr(LanguageLabel.UI__Ba_Lab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Ba_ConfirmLab), new MulLanStr(LanguageLabel.UI__Ba_ConfirmLab));
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Bb_Title), new MulLanStr(LanguageLabel.UI__Bb_Title));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Bb_GetLab), new MulLanStr(LanguageLabel.UI__Bb_GetLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Bb_ConfirmLab), new MulLanStr(LanguageLabel.UI__Bb_ConfirmLab));
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Bc_Lab), new MulLanStr(LanguageLabel.UI__Bc_Lab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Bc_ConfirmLab), new MulLanStr(LanguageLabel.UI__Bc_ConfirmLab));
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Bd_GetLab), new MulLanStr(LanguageLabel.UI__Bd_GetLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Bd_Title), new MulLanStr(LanguageLabel.UI__Bd_Title));
-
-        #region B_SignIn
-
-        TweenRoot tween = ResourceManager.Get(CanvasLabel.B_SignIn).CreateTweenCG(0f, 1f, 0.5f, false, true, Curve.EaseOutQuad);
-
-        tween.OnForwardStart += () =>
-        {
-            ResourceManager.Get(CanvasLabel.C_Group0).TweenBacCG();
-        };
-
-        tween.OnBackwardFinish += () =>
-        {
-            ResourceManager.Get(CanvasLabel.C_Group0).TweenForCG();
-            ResourceManager.Get(CanvasLabel.C_Group).GetTweenCG().InOrigin = true;
-        };
-
-        #endregion
-
-        #region B_SignIn0
-
-        ResourceManager.Get(CanvasLabel.B_SignIn0).CreateTweenCG(0f, 1f, 0.5f, false, true, Curve.EaseOutQuad);
-
-        #endregion
-
-
-        #region Ba_Notice
-
-        ResourceManager.Get(CanvasLabel.Ba_Notice).CreateTweenCG(0f, 1f, 0.5f, false, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.Ba_Notice0).CreateTweenCG(0f, 1f, 0.5f, false, true, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region Ba_Confirm
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Ba_Confirm,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.GetCurrent);
-
-                ResourceManager.Get(CanvasLabel.Ba_Notice).TweenBacCG();
-
-                Manager.OfflineFlag = false;
-
-                if (!SignManager.ShowPanels())
-                {
-                    ResourceManager.Get(CanvasLabel.B_SignIn).TweenBacCG();
-                }
-            }
-        );
-
-        #endregion
-
-
-        #region Bb_Get
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Bb_Get,
-            () =>
-            {
-                SignManager.GetSignAward();
-            }
-        );
-
-        #endregion
-
-        #region Bb_SignIn
-
-        tween = ResourceManager.Get(CanvasLabel.Bb_SignIn).CreateTweenCG(0f, 1f, 0.5f, false, true, Curve.EaseOutQuad);
-
-        tween.OnForwardStart += () =>
-        {
-            ResourceManager.SetActive(CanvasLabel.Bb_Get, true);
-            ResourceManager.SetActive(CanvasLabel.Bb_IconB, false);
-            ResourceManager.SetActive(CanvasLabel.Bb_IconA, false);
-            ResourceManager.SetActive(CanvasLabel.Bb_Rotate, false);
-            ResourceManager.SetActive(CanvasLabel.Bb_Confirm, false);
-        };
-
-        #endregion
-
-        #region Bb_Confirm
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Bb_Confirm,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.Get(CanvasLabel.B_SignIn).TweenBacCG();
-                ResourceManager.Get(CanvasLabel.Bb_SignIn).TweenBacCG();
-
-                SignManager.ShowPanels();
-            }
-        );
-
-        #endregion
-
-
-        #region Bc_Lottery
-
-        ResourceManager.Get(CanvasLabel.Bc_Lab).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.Bc_Lottery).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.Bc_Confirm).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        ResourceManager.Get(CanvasLabel.Bc_LotteryItem1).CreateTweenEuler(new Vector3(0, 180, 0), 0.25f, false, true, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.Bc_LotteryItem2).CreateTweenEuler(new Vector3(0, 180, 0), 0.25f, false, true, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.Bc_LotteryItem3).CreateTweenEuler(new Vector3(0, 180, 0), 0.25f, false, true, true, Curve.EaseOutQuad);
-
-        tween = ResourceManager.Get(CanvasLabel.Bc_LotteryBK12).CreateTweenGra(new Color(242/255f, 255/255f, 142/255f, 180/255f), 1, true, true, Curve.EaseOutQuad);
-
-        tween.PingPong = true;
-        tween.StartForward();
-
-        tween = ResourceManager.Get(CanvasLabel.Bc_LotteryBK22).CreateTweenGra(new Color(242/255f, 255/255f, 142/255f, 180/255f), 1, true, true, Curve.EaseOutQuad);
-
-        tween.PingPong = true;
-        tween.StartForward();
-
-        tween = ResourceManager.Get(CanvasLabel.Bc_LotteryBK32).CreateTweenGra(new Color(242/255f, 255/255f, 142/255f, 180/255f), 1, true, true, Curve.EaseOutQuad);
-
-        tween.PingPong = true;
-        tween.StartForward();
-
-        ResourceManager.SetButtonEvent(CanvasLabel.Bc_Confirm, Lottery.EndAnimation);
-
-        #endregion
-
-
-        #region Bd_Get
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Bd_Get,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                int childCount = ResourceManager.Get(CanvasLabel.Bd_Grid).childCount;
-                for (int i = 0; i < childCount; i++)
-                {
-                    ResourceManager.Save(ResourceManager.Get(CanvasLabel.Bd_Grid).GetChild(0));
-                }
-
-                if (HttpManager.MailRewardList.Count == 0 && HttpManager.BroadcastMailRewardList.Count == 0)
-                {
-                    ResourceManager.Get(CanvasLabel.Bd_Mail0).TweenBacCG();
-                }
-
-                if (!SignManager.ShowPanels())
-                {
-                    ResourceManager.Get(CanvasLabel.B_SignIn).TweenBacCG();
-                }
-            }
-        );
-
-        #endregion
-
-        #region Bd_Mail0
-
-        TweenRoot tweenRoot9 = ResourceManager.Get(CanvasLabel.Bd_Mail0).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        tweenRoot9.OnBackwardFinish = () =>
-        {
-            for (int i = 0; i < ResourceManager.Get(CanvasLabel.Bd_Grid).childCount; i++)
-            {
-                ResourceManager.Save(ResourceManager.Get(CanvasLabel.Bd_Grid).GetChild(i--));
-            }
-        };
-
-        #endregion
-
-        #endregion
-
-        #region C
-
-        ResourceManager.SetSprite(CanvasLabel.C_Coin, ResourceManager.LoadSprite(ResourceLabel.Gold, Folder.Atlas));
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.C_MiniGameLab), new MulLanStr(LanguageLabel.UI__C_MiniGameLab));
-
-        #region C_Main
-
-        ResourceManager.Get(CanvasLabel.C_Main).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region C_Main2
-
-        ResourceManager.Get(CanvasLabel.C_Main2).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region C_Group
-
-        ResourceManager.Get(CanvasLabel.C_Group).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        ResourceManager.Get(CanvasLabel.C_Group0).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region C_Setting
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.C_Setting,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.Get(CanvasLabel.L_Setting).TweenForCG();
-            }
-        );
-
-        #endregion
-
-        #region C_Achieve
-
-        tween = AnimManager.CreateTweenOutline(ResourceManager.Get(CanvasLabel.C_Achieve), 0, 201/255f, 1f, true, true, Curve.EaseOutQuad);
-
-        tween.PingPong = true;
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.C_Achieve,
-            () =>
-            {
-                AchieveManager.OpenAchievePanel();
-            }
-        );
-
-        #endregion
-
-        #region C_Manage
-
-        tween = AnimManager.CreateTweenOutline(ResourceManager.Get(CanvasLabel.C_Manage), 0, 201/255f, 1f, true, true, Curve.EaseOutQuad);
-
-        tween.PingPong = true;
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.C_Manage,
-            () =>
-            {
-                OpenManagePanel();
-            }
-        );
-
-        #endregion
-
-        #region C_MiniGame
-
-        Vector3 big = ResourceManager.Get<RectTransform>(CanvasLabel.C_MiniGame).sizeDelta;
-        Vector3 small = big*0.5f;
-
-        TweenRoot tweenRoot = ResourceManager.Get(CanvasLabel.C_MiniGame).CreateTweenRect(big, small, 1f, true, true, Curve.EaseOutQuad, true);
-
-        tweenRoot.OnForwardStart = () =>
-        {
-            TweenOutline tweenOutline = ResourceManager.Get(CanvasLabel.C_MiniGame).GetTweenOutline();
-
-            tweenOutline.PingPong = false;
-            tweenOutline.StartBackward();
-        };
-
-        tweenRoot.OnForwardFinish = () =>
-        {
-            TweenOutline tweenOutline = ResourceManager.Get(CanvasLabel.C_MiniGame).GetTweenOutline();
-
-            tweenOutline.Target.enabled = false;
-
-            //ResourceManager.Get<Button>(ObjectLabel.C_MiniGame).interactable = false;
-        };
-
-        tweenRoot.OnBackwardFinish = () =>
-        {
-            TweenOutline tweenOutline = ResourceManager.Get(CanvasLabel.C_MiniGame).GetTweenOutline();
-
-            tweenOutline.Resume();
-            tweenOutline.StartForward();
-
-            tweenOutline.PingPong = true;
-            tweenOutline.Target.enabled = true;
-
-            LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.C_MiniGameLab), new MulLanStr(LanguageLabel.UI__C_MiniGameLab));
-
-            //ResourceManager.Get<Button>(ObjectLabel.C_MiniGame).interactable = true;
-        };
-
-
-        tweenRoot = ResourceManager.Get(CanvasLabel.C_MiniGame).CreateTweenOutline(0, 180/255f, 1f, true, true, Curve.EaseOutQuad);
-
-        tweenRoot.PingPong = true;
-
-        tweenRoot.StartBackward();
-
-
-        ResourceManager.Get(CanvasLabel.C_MiniGame).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.C_MiniGame,
-            () =>
-            {
-                if (Manager.MinigameCDTimer <= 0)
-                {
-                    EnterMinigamePanelManager.TryOpenPanel();
-                }
-                else
-                {
-                    CDMinigamePanelManager.OpenPanel();
-                    AudioManager.PlayClip(AudioLabel.Bubble);
-                }
-            }
-        );
-
-        #endregion
-
-        #region C_IncomeLab
-
-        ResourceManager.Get(CanvasLabel.C_IncomeLab).CreateTweenGra(1, 0, 2, true, false, Curve.EaseOutQuad);
-
-        ResourceManager.Get(CanvasLabel.C_IncomeLab).CreateTweenVec2D(ResourceManager.Get(CanvasLabel.C_Pos).position, 2, false, true, false, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region C_DressRoom
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.C_DressRoom,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                if (Manager.GardenLevel < 13)
-                {
-                    Toast.Show(1.5f, Language.GetStr(LanguageLabel.UI__C_DressRoom));
-                }
-                else
-                {
-                    ResourceManager.Get(CanvasLabel.I_BlackMask).GetTweenCG().Duration = 0.5f;
-
-                    PlayerManager.Player.EnterDressRoom();
-                }
-            }
-        );
-
-        #endregion
-
-
-        #region C_AddFriendButton
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.C_AddFriendButton,
-            () =>
-            {
-                HttpManager.ApplyBuddy
-                (
-                    VisitManager.VisiteeSerialNumber,
-                    () =>
-                    {
-                        Bubble.Show(null, Language.GetStr(LanguageLabel.UI__AG_SendApplySucceed));
-                        ResourceManager.SetActive(CanvasLabel.C_AddFriendButton, false);
-                    },
-                    () =>
-                    {
-                        Bubble.Show(null, Language.GetStr(LanguageLabel.UI__AG_ConnectError));
-                    }
-                );
-            }
-        );
-
-        #endregion
-
-        #region C_Visit
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.C_Visit,
-            () =>
-            {
-                VisitManager.Visit(ConfigSource.Random);
-            }
-        );
-
-        #endregion
-
-        #region C_Praise
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.C_Praise,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                SocialManager.Praise();
-            }
-        );
-
-        #endregion
-
-        #region C_Notify
-
-        ResourceManager.Get(CanvasLabel.C_Notify).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.C_Notify,
-            () =>
-            {
-                AnnounceManager.ShowAnnouncePanel();
-            }
-        );
-
-        #endregion
-
-        #region C_Rank
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.C_Rank,
-            () =>
-            {
-                SocialManager.OpenRankPanel();
-            }
-        );
-
-        #endregion
-
-        #region C_Comment
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.C_Comment,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                SocialManager.OpenCommentPanel();
-            }
-        );
-
-        #endregion
-
-        #region C_Return
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.C_Return,
-            () =>
-            {
-                ResourceManager.SetActive(CanvasLabel.C_Visit, false);
-                ResourceManager.SetActive(CanvasLabel.C_Return, false);
-                ResourceManager.SetActive(CanvasLabel.C_AddFriendButton, false);
-
-                tween = ResourceManager.Get(CanvasLabel.I_BlackMask).GetTweenCG();
-
-                tween.Duration = 0.5f;
-                tween.StartBackward();
-
-                tween.AddEventOnetime
-                (
-                    EventType.BackwardFinish,
-                    () =>
-                    {
-                        VisitManager.StartExitVisiteeGarden();
-                        VisitManager.OnStartExitVisiteeGarden();
-                    }
-                );
-
-                AudioManager.PlayClip(AudioLabel.Bubble);
-            }
-        );
-
-        #endregion
-
-        #region C_EnterPlazaRoom
-
-        LanguageManager.OnLanguageChange += OnLanguageChange;
-        OnLanguageChange(CurrentLanguage.Default, LanguageManager.CurrentLanguage);
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.C_EnterPlazaRoom,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                PlazaRoomManager.OpenJoinRoomPanel();
-            }
-        );
-
-        #endregion
-
-        #region C_NickNameBK
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.C_NickNameBK,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-                NickNameManager.ShowNickNameSettingPanel();
-            }
-        );
-
-        #endregion
-
-        #region C_CommentParent
-
-        ResourceManager.Get(CanvasLabel.C_CommentParent).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region C_RightPanel
-
-        ResourceManager.Get(CanvasLabel.C_RightSidePanel).CreateTweenVec2D(ResourceManager.Get(CanvasLabel.C_RightSidePanelPosition).position, 0.25f, false, true, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.C_RightSidePanelGroup).CreateTweenCG(0, 0.25f, true, true, Curve.EaseOutQuad);
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.C_OpenSidePanelButton, () =>
-            {
-                AudioManager.PlayClip(ResourceLabel.BtnClip);
-                ResourceManager.Get(CanvasLabel.C_RightSidePanel).TweenBacVec();
-                ResourceManager.Get(CanvasLabel.C_RightSidePanelGroup).TweenBacCG();
-                ResourceManager.SetActive(CanvasLabel.C_CloseSidePanelButton, true);
-                ResourceManager.SetActive(CanvasLabel.C_OpenSidePanelButton, false);
-            }
-        );
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.C_CloseSidePanelButton, () =>
-            {
-                AudioManager.PlayClip(ResourceLabel.BtnClip);
-                ResourceManager.Get(CanvasLabel.C_RightSidePanel).TweenForVec();
-                ResourceManager.Get(CanvasLabel.C_RightSidePanelGroup).TweenForCG();
-                ResourceManager.SetActive(CanvasLabel.C_CloseSidePanelButton, false);
-                ResourceManager.SetActive(CanvasLabel.C_OpenSidePanelButton, true);
-            }
-        );
-
-        #endregion
-
-        #endregion
-
-        #region D
-
-        ResourceManager.SetText(CanvasLabel.D_ScoreLab);
-        ResourceManager.SetText(CanvasLabel.D_BeginLab, Language.GetStr(LanguageLabel.UI__D_BeginLab0));
-        ResourceManager.SetText(CanvasLabel.D_StatusLab, Language.GetStr(LanguageLabel.UI__D_StatusLab0));
-
-        ResourceManager.SetSprite(CanvasLabel.D_Rip2, ResourceManager.LoadSprite(ResourceLabel.Rip, Folder.Scene));
-        ResourceManager.SetSprite(CanvasLabel.D_Water2, ResourceManager.LoadSprite(ResourceLabel.Water, Folder.Scene));
-        ResourceManager.SetSprite(CanvasLabel.D_Fertilize2, ResourceManager.LoadSprite(ResourceLabel.Fertilize, Folder.Scene));
-
-        ResourceManager.SetSprite(CanvasLabel.Da_Coin, ResourceManager.LoadSprite(ResourceLabel.Gold, Folder.Atlas));
-        ResourceManager.SetSprite(CanvasLabel.Da_Star1, ResourceManager.LoadSprite(ResourceLabel.MinigameRateStar, Folder.Scene));
-        ResourceManager.SetSprite(CanvasLabel.Da_Star2, ResourceManager.LoadSprite(ResourceLabel.MinigameRateStar, Folder.Scene));
-        ResourceManager.SetSprite(CanvasLabel.Da_Star3, ResourceManager.LoadSprite(ResourceLabel.MinigameRateStar, Folder.Scene));
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.D_DescA), new MulLanStr(LanguageLabel.UI__D_DescA));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.D_DescB), new MulLanStr(LanguageLabel.UI__D_DescB));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.D_DescC), new MulLanStr(LanguageLabel.UI__D_DescC));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.D_FindMissingGameDesc), new MulLanStr(LanguageLabel.UI__D_FindMissingGameDesc));
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Da_Lab), new MulLanStr(LanguageLabel.UI__Da_Lab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Da_QuitLab), new MulLanStr(LanguageLabel.UI__Da_QuitLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Da_ScoreTit), new MulLanStr(LanguageLabel.UI__Da_ScoreTit));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Da_CancelLab), new MulLanStr(LanguageLabel.UI__Da_CancelLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Da_GetAwardLab), new MulLanStr(LanguageLabel.UI__Da_GetAwardLab));
-
-        #region D_Rip
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.D_Rip2,
-            () =>
-            {
-                MiniGameManager.OnPunchGameClick(OpType.Rip);
-            }
-        );
-
-        tween = ResourceManager.Get(CanvasLabel.D_Rip2).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.2f, 1.2f, 1.2f), 0.1f, true, true, Curve.EaseOutQuad);
-
-        tween.OnForwardFinish += () =>
-        {
-            ResourceManager.Get(CanvasLabel.D_Rip2).TweenBacScale();
-        };
-
-        #endregion
-
-        #region D_Quit
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.D_Quit,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.Close);
-
-                MiniGameManager.Pause = true;
-
-                ResourceManager.Get(CanvasLabel.Da_Info).TweenForCG();
-
-                ResourceManager.Get(CanvasLabel.Da_CoinGroup).GetTweenScale().InDestination = true;
-                ResourceManager.Get(CanvasLabel.Da_DiamondGroup).GetTweenScale().InDestination = true;
-
-                ResourceManager.SetText(CanvasLabel.Da_Tit, Language.GetStr(LanguageLabel.UI__Da_Tit0));
-                ResourceManager.SetText(CanvasLabel.Da_CoinLab, string.Format("{0}+", MinigameDisplayCoinAwardRatio*Manager.GardenLevel));
-                ResourceManager.SetText(CanvasLabel.Da_DiamondLab, string.Format("{0}+", MinigameDisplayDiamondAward));
-
-                ResourceManager.SetActive(CanvasLabel.Da_Lab, true);
-                ResourceManager.SetActive(CanvasLabel.Da_Quit, true);
-                ResourceManager.SetActive(CanvasLabel.Da_Cancel, true);
-                ResourceManager.SetActive(CanvasLabel.Da_CoinLab, true);
-                ResourceManager.SetActive(CanvasLabel.Da_DiamondLab, true);
-
-                ResourceManager.SetActive(CanvasLabel.Da_HGroup1, false);
-                ResourceManager.SetActive(CanvasLabel.Da_ScoreTit, false);
-                ResourceManager.SetActive(CanvasLabel.Da_GetAward, false);
-                ResourceManager.SetActive(CanvasLabel.Da_FlowerGroup, false);
-                ResourceManager.SetActive(CanvasLabel.Da_DiamondGroup, true);
-
-                ResourceManager.Get<Text>(CanvasLabel.Da_CoinLab).Resize(true, false);
-                ResourceManager.Get<Text>(CanvasLabel.Da_DiamondLab).Resize(true, false);
-
-                ResourceManager.Get<ContentSizeFitter>(CanvasLabel.Da_CoinGroup).enabled = true;
-                ResourceManager.Get<ContentSizeFitter>(CanvasLabel.Da_DiamondGroup).enabled = true;
-
-                if (!MinigameAward.HaveNewFlowerFlag)
-                {
-                    ResourceManager.Get(CanvasLabel.Da_FlowerGroup).GetTweenScale().InDestination = true;
-
-                    FlowerInfo flowerInfo = GardenManager.GetFlowerInfo(MinigameAward.UnlockFlowerID);
-
-                    ResourceManager.SetActive(CanvasLabel.Da_Flower, true);
-
-                    ResourceManager.Get<Image>(CanvasLabel.Da_FlowerIcon).sprite = flowerInfo.Icon;
-                    ResourceManager.Get<Image>(CanvasLabel.Da_FlowerIcon).Resize(true, 0.25f, 0.25f);
-
-                    ResourceManager.SetText(CanvasLabel.Da_FlowerLab, Language.GetStr(LanguageLabel.CombineLanguageLabel(LanguageLabel.FlowerName, flowerInfo.FullID)));
-
-                    Auxiliary.Instance.DelayCall
-                    (
-                        () =>
-                        {
-                            ResourceManager.Get<Text>(CanvasLabel.Da_FlowerLab).SetLayoutDirty();
-                        },
-                        2
-                    );
-                }
-            }
-        );
-
-        #endregion
-
-        #region D_Begin
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.D_Begin,
-            () =>
-            {
-                MiniGameManager.GamePrepare();
-
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-            }
-        );
-
-        #endregion
-
-        #region D_Water
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.D_Water2,
-            () =>
-            {
-                MiniGameManager.OnPunchGameClick(OpType.Water);
-            }
-        );
-
-        tween = ResourceManager.Get(CanvasLabel.D_Water2).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.2f, 1.2f, 1.2f), 0.1f, true, true, Curve.EaseOutQuad);
-
-        tween.OnForwardFinish += () =>
-        {
-            ResourceManager.Get(CanvasLabel.D_Water2).TweenBacScale();
-        };
-
-        #endregion
-
-        #region D_Fertilize
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.D_Fertilize2,
-
-            () =>
-            {
-                MiniGameManager.OnPunchGameClick(OpType.Fertilize);
-            }
-        );
-
-        tween = ResourceManager.Get(CanvasLabel.D_Fertilize2).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.2f, 1.2f, 1.2f), 0.1f, true, true, Curve.EaseOutQuad);
-
-        tween.OnForwardFinish += () =>
-        {
-            ResourceManager.Get(CanvasLabel.D_Fertilize2).TweenBacScale();
-        };
-
-        #endregion
-
-        #region D_TimerIcon
-
-        ResourceManager.Get<Image>(CanvasLabel.D_TimerIcon).material = ResourceManager.Load<Material>(ResourceLabel.TimerMat, Folder.UI);
-
-        #endregion
-
-        #region D_MiniGame
-
-        tween = ResourceManager.Get(CanvasLabel.D_MiniGame).CreateTweenCG(0, 1, 0.5f, false, true, Curve.EaseOutQuad);
-
-        tween.OnForwardStart += () =>
-        {
-            ResourceManager.Get(CanvasLabel.C_Main).TweenBacCG();
-
-            AudioManager.GardenThemeAudio.TweenBacAudio();
-
-            ResourceManager.SetText(CanvasLabel.D_ScoreLab);
-            ResourceManager.SetText(CanvasLabel.D_BeginLab, Language.GetStr(LanguageLabel.UI__D_BeginLab0));
-            ResourceManager.SetText(CanvasLabel.D_StatusLab, Language.GetStr(LanguageLabel.UI__D_StatusLab0));
-
-            GardenManager.InMinigameFlag = false;
-        };
-
-        tween.OnForwardFinish += () =>
-        {
-            AudioManager.MinigameAudio.TweenForAudio();
-
-            ResourceManager.SetActive(GardenLabel.GardenPivot, false);
-
-            GardenManager.RetrieveAllElf();
-            IAPManager.RetrieveADChest();
-        };
-
-        tween.OnBackwardStart += () =>
-        {
-            AudioManager.MinigameAudio.TweenBacAudio();
-
-            ResourceManager.SetActive(GardenLabel.GardenPivot, true);
-        };
-
-        tween.OnBackwardFinish += () =>
-        {
-            ResourceManager.Get(CanvasLabel.C_Main).TweenForCG();
-            ResourceManager.Get(CanvasLabel.C_Group).GetTweenCG().InOrigin = true;
-
-            AudioManager.GardenThemeAudio.TweenForAudio();
-
-            GardenManager.InMinigameFlag = true;
-
-            #region PunchGame
-
-            if (MiniGameManager.miniGameType == MiniGameType.Punch)
-            {
-                for (int i = 0; i < MiniGameManager.PunchGameOperateList.Count; i++)
-                {
-                    MiniGameManager.PunchGameOperateList[i].RetrieveFlower();
-
-                    MiniGameManager.PunchGameOperateList.RemoveAt(i--);
-                }
-
-                for (int i = 0; i < MiniGameManager.MinigameIdleFlowerList.Count; i++)
-                {
-                    MiniGameManager.MinigameIdleFlowerList[i].RetrieveFlower();
-
-                    MiniGameManager.MinigameIdleFlowerList.RemoveAt(i--);
-                }
-            }
-
-            #endregion
-
-            #region MemoryGame
-
-            if (MiniGameManager.miniGameType == MiniGameType.Memory)
-            {
-                for (int i = 0; i < MiniGameManager.MemoryGameFadeList.Count; i++)
-                {
-                    MiniGameManager.MemoryGameFadeList[i].FlowerIcon.GetTweenSr().InOrigin = true;
-
-                    MiniGameManager.MemoryGameFadeList[i].RetrieveFlower();
-
-                    MiniGameManager.MemoryGameFadeList.RemoveAt(i--);
-                }
-
-                for (int i = 0; i < MiniGameManager.MinigameIdleFlowerList.Count; i++)
-                {
-                    MiniGameManager.MinigameIdleFlowerList[i].RetrieveFlower();
-
-                    MiniGameManager.MinigameIdleFlowerList.RemoveAt(i--);
-                }
-            }
-
-            #endregion
-
-            #region FindSoloGame 
-
-            if (MiniGameManager.miniGameType == MiniGameType.FindSolo)
-            {
-                MiniGameManager.MinigameIdleFlowerList.ForEach
-                (
-                    flower =>
-                    {
-                        flower.FlowerIcon.GetTweenSr().InOrigin = true;
-
-                        flower.RetrieveFlower();
-                    },
-                    true
-                );
-            }
-
-            #endregion
-
-            #region FindMissingGame 
-
-            if (MiniGameManager.miniGameType == MiniGameType.FindMissing)
-            {
-                MiniGameManager.MinigameIdleFlowerList.ForEach
-                (
-                    flower =>
-                    {
-                        flower.FlowerIcon.GetTweenSr().InOrigin = true;
-
-                        flower.RetrieveFlower();
-                    },
-                    true
-                );
-            }
-
-            #endregion
-        };
-
-        #endregion
-
-        #region D_PrepareLab
-
-        Text text = ResourceManager.Get<Text>(CanvasLabel.D_PrepareLab);
-
-        ResourceManager.Get(CanvasLabel.D_PrepareLab).CreateStreamScale
-        (
-            new List<float>() {0.5f, 0, 0.5f, 0, 0.5f, 0, 0.5f},
-            new List<float>() {0.25f, 0.25f, 0.25f, 0.25f, 0.25f, 0.25f, 0.25f, 0.125f},
-            new List<VecPair>() {new VecPair(2, 2, 2, 1, 1, 1), new VecPair(1, 1, 1, 0, 0, 0), new VecPair(2, 2, 2, 1, 1, 1), new VecPair(1, 1, 1, 0, 0, 0), new VecPair(2, 2, 2, 1, 1, 1), new VecPair(1, 1, 1, 0, 0, 0), new VecPair(0, 0, 0, 1, 1, 1), new VecPair(1, 1, 1, 1.5f, 0, 1)},
-            false,
-            false,
-            Curve.EaseOutQuad,
-            false,
-            new List<UnityAction>()
-            {
-                () =>
-                {
-                    text.text = "3";
-                    AudioManager.PlayClip(AudioLabel.Bubble);
-                },
-                () => { },
-                () =>
-                {
-                    text.text = "2";
-                    ;
-                    AudioManager.PlayClip(AudioLabel.Bubble);
-                },
-                () => { },
-                () =>
-                {
-                    text.text = "1";
-                    ;
-                    AudioManager.PlayClip(AudioLabel.Bubble);
-                },
-                () => { },
-                () =>
-                {
-                    text.text = Language.GetStr(LanguageLabel.UI__D_PrepareLab);
-                    AudioManager.PlayClip(AudioLabel.GetCurrent);
-                },
-                () => { },
-            }
-        );
-
-        #endregion
-
-
-        #region Da_Star
-
-        ResourceManager.Get(CanvasLabel.Da_Star1).CreateTweenScale(new Vector3(), new Vector3(1, 1, 1), 0.25f, false, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.Da_Star2).CreateTweenScale(new Vector3(), new Vector3(1, 1, 1), 0.25f, false, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.Da_Star3).CreateTweenScale(new Vector3(), new Vector3(1, 1, 1), 0.25f, false, true, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region Da_Info
-
-        ResourceManager.Get(CanvasLabel.Da_Info).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region Da_Quit
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Da_Quit,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.Close);
-
-                ResourceManager.Get(CanvasLabel.Da_Info).TweenBacCG();
-                ResourceManager.Get(GardenLabel.Minigame).TweenBacVec();
-                ResourceManager.Get(CanvasLabel.D_MiniGame).TweenBacCG();
-
-                MiniGameManager.GameEnd();
-            }
-        );
-
-        #endregion
-
-        #region Da_Score
-
-        ResourceManager.Get(CanvasLabel.Da_ScoreTit).CreateTweenFont(1, 25, 0.25f, false, true, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region Da_Cancel
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Da_Cancel,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.Get(CanvasLabel.Da_Info).TweenBacCG();
-
-                MiniGameManager.Pause = false;
-            }
-        );
-
-        #endregion
-
-        #region Da_GetAward
-
-        ResourceManager.Get(CanvasLabel.Da_GetAward).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Da_GetAward,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.GetCurrent);
-
-                ResourceManager.Get(CanvasLabel.Da_Info).TweenBacCG();
-                ResourceManager.Get(GardenLabel.Minigame).TweenBacVec();
-                ResourceManager.Get(CanvasLabel.D_MiniGame).TweenBacCG();
-
-                InfoBoxManager.GardenInfoBox.Display(MinigameAward.DisplayContent, 10f, Color.white, Lib.Atlas);
-            }
-        );
-
-        #endregion
-
-        #region Da_CoinGroup
-
-        ResourceManager.Get(CanvasLabel.Da_CoinGroup).CreateTweenScale(new Vector3(), new Vector3(1, 1, 1), 0.25f, false, true, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region Da_FlowerGroup
-
-        ResourceManager.Get(CanvasLabel.Da_FlowerGroup).CreateTweenScale(new Vector3(), new Vector3(1, 1, 1), 0.25f, false, true, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region Da_DiamondGroup
-
-        ResourceManager.Get(CanvasLabel.Da_DiamondGroup).CreateTweenScale(new Vector3(), new Vector3(1, 1, 1), 0.25f, false, true, Curve.EaseOutQuad);
-
-        #endregion
-
-
-        #region D_Mask
-
-        ResourceManager.Get(CanvasLabel.D_Mask).CreateTweenGra(0, 180/255f, 0.25f, false, true, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region D_FlowerBtn
-
-        #region MemoryGame
-
-        tweenRoot = ResourceManager.Get(CanvasLabel.D_FlowerIcon1).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
-
-        var root0 = tweenRoot;
-        tweenRoot.OnForwardFinish = () =>
-        {
-            root0.StartBackward();
-        };
-
-        tweenRoot = ResourceManager.Get(CanvasLabel.D_FlowerIcon2).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
-
-        var root1 = tweenRoot;
-        tweenRoot.OnForwardFinish = () =>
-        {
-            root1.StartBackward();
-        };
-
-        tweenRoot = ResourceManager.Get(CanvasLabel.D_FlowerIcon3).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
-
-        var root2 = tweenRoot;
-        tweenRoot.OnForwardFinish = () =>
-        {
-            root2.StartBackward();
-        };
-
-        tweenRoot = ResourceManager.Get(CanvasLabel.D_FlowerIcon4).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
-
-        var root3 = tweenRoot;
-        tweenRoot.OnForwardFinish = () =>
-        {
-            root3.StartBackward();
-        };
-
-        tweenRoot = ResourceManager.Get(CanvasLabel.D_FlowerIcon5).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
-
-        var root4 = tweenRoot;
-        tweenRoot.OnForwardFinish = () =>
-        {
-            root4.StartBackward();
-        };
-
-        tweenRoot = ResourceManager.Get(CanvasLabel.D_FlowerIcon6).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
-
-        var root8 = tweenRoot;
-        tweenRoot.OnForwardFinish = () =>
-        {
-            root8.StartBackward();
-        };
-
-
-        ResourceManager.AddButtonEvent(CanvasLabel.D_FlowerBtn1, () => { MiniGameManager.OnMemoryGameClick(0, 0); });
-        ResourceManager.AddButtonEvent(CanvasLabel.D_FlowerBtn2, () => { MiniGameManager.OnMemoryGameClick(1, 1); });
-        ResourceManager.AddButtonEvent(CanvasLabel.D_FlowerBtn3, () => { MiniGameManager.OnMemoryGameClick(2, 3); });
-        ResourceManager.AddButtonEvent(CanvasLabel.D_FlowerBtn4, () => { MiniGameManager.OnMemoryGameClick(3, 4); });
-        ResourceManager.AddButtonEvent(CanvasLabel.D_FlowerBtn5, () => { MiniGameManager.OnMemoryGameClick(4, 6); });
-        ResourceManager.AddButtonEvent(CanvasLabel.D_FlowerBtn6, () => { MiniGameManager.OnMemoryGameClick(5, 7); });
-
-        #endregion
-
-        #region FindSoloGame
-
-        ResourceManager.Get(CanvasLabel.D_FlowerBtn7).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.D_FlowerBtn8).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.D_FlowerBtn9).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        tweenRoot = ResourceManager.Get(CanvasLabel.D_FlowerIcon7).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
-
-        var root5 = tweenRoot;
-        tweenRoot.OnForwardFinish = () =>
-        {
-            root5.StartBackward();
-        };
-
-        tweenRoot = ResourceManager.Get(CanvasLabel.D_FlowerIcon8).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
-
-        var root6 = tweenRoot;
-        tweenRoot.OnForwardFinish = () =>
-        {
-            root6.StartBackward();
-        };
-
-        tweenRoot = ResourceManager.Get(CanvasLabel.D_FlowerIcon9).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
-
-        var root7 = tweenRoot;
-        tweenRoot.OnForwardFinish = () =>
-        {
-            root7.StartBackward();
-        };
-
-        #endregion
-
-        #region FindMissingGame
-
-        ResourceManager.Get(CanvasLabel.D_FindMissingGameButton0).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.D_FindMissingGameButton1).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.D_FindMissingGameButton2).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        tweenRoot = ResourceManager.Get(CanvasLabel.D_FindMissingGameIcon0).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
-
-        var root9 = tweenRoot;
-        tweenRoot.OnForwardFinish = () =>
-        {
-            root9.StartBackward();
-        };
-
-        tweenRoot = ResourceManager.Get(CanvasLabel.D_FindMissingGameIcon1).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
-
-        var root10 = tweenRoot;
-        tweenRoot.OnForwardFinish = () =>
-        {
-            root10.StartBackward();
-        };
-
-        tweenRoot = ResourceManager.Get(CanvasLabel.D_FindMissingGameIcon2).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
-
-        var root11 = tweenRoot;
-        tweenRoot.OnForwardFinish = () =>
-        {
-            root11.StartBackward();
-        };
-
-        #endregion
-
-        #endregion
-
-        #endregion
-
-        #region E
-
-        #region E_Show
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.E_ShowBtn,
-            () =>
-            {
-                if (ResourceManager.Get(CanvasLabel.E_Group).gameObject.activeSelf)
-                {
-                    ResourceManager.SetActive(CanvasLabel.E_Group, false);
-                    ResourceManager.SetActive(CanvasLabel.Ea_Central, false);
-
-                    ResourceManager.SetText(CanvasLabel.E_ShowLab, "显示");
-                }
-                else
-                {
-                    ResourceManager.SetActive(CanvasLabel.E_Group, true);
-
-                    ResourceManager.SetText(CanvasLabel.E_ShowLab, "隐藏");
-                }
-            }
-        );
-
-        #endregion
-
-        #region E_CentralBtn
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.E_CentralBtn,
-            () =>
-            {
-                ResourceManager.SetActive(CanvasLabel.Ea_Central, true);
-            }
-        );
-
-        #endregion
-
-
-        #region Ea_Free
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Ea_Free,
-            () =>
-            {
-                TutorialManager.PayExempt = true;
-            }
-        );
-
-        #endregion
-
-        #region Ea_Send
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Ea_Send,
-            () =>
-            {
-                HttpManager.UploadConfig();
-            }
-        );
-
-        #endregion
-
-        #region Ea_Close
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Ea_Close,
-            () =>
-            {
-                ResourceManager.SetActive(CanvasLabel.Ea_Central, false);
-            }
-        );
-
-        #endregion
-
-        #region Ea_Reset
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Ea_Reset,
-            () =>
-            {
-                ConfigManager.ResetConfigDocument();
-            }
-        );
-
-        #endregion
-
-        #region Ea_Unlock
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Ea_Unlock,
-            () =>
-            {
-                //ManaDebug.Log(ManaAudio.MusicTheme.isPlaying + " " + ManaAudio.MusicTheme.volume + " " + ManaAudio.MusicTheme.spatialBlend + " " + ManaAudio.MusicTheme.mute + " " + ManaAudio.MusicTheme.time);
-
-                GardenManager.UnlockSlot();
-            }
-        );
-
-        #endregion
-
-        #region Ea_Lottery
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Ea_Lottery,
-            () =>
-            {
-                SignManager.SignIndex = 7;
-                SignManager.LastSignTime = new DateTime(2017, 2, 3);
-
-                ResourceManager.Get(CanvasLabel.B_SignIn).TweenForCG();
-                ResourceManager.Get(CanvasLabel.Bb_SignIn).TweenForCG();
-            }
-        );
-
-        #endregion
-
-
-        #region Ea_Cool
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Ea_Cool,
-            () =>
-            {
-                Manager.MinigameCDTimer = 0;
-            }
-        );
-
-        #endregion
-
-        #region Ea_Score
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Ea_Score,
-            () =>
-            {
-                MiniGameManager.Score = 1000;
-            }
-        );
-
-        #endregion
-
-        #region Ea_End
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Ea_End,
-            () =>
-            {
-                MiniGameManager.GameTimer = 45;
-            }
-        );
-
-        #endregion
-
-
-        #region Ea_IncreaseFR
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Ea_IncreaseFR,
-            () =>
-            {
-                Application.targetFrameRate += 1;
-            }
-        );
-
-        #endregion
-
-        #region Ea_DecreaseFR
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Ea_DecreaseFR,
-            () =>
-            {
-                Application.targetFrameRate -= 1;
-            }
-        );
-
-        #endregion
-
-        #endregion
-
-        #region F
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.F_ElfLab), new MulLanStr(LanguageLabel.UI__F_ElfLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.F_StoreLab), new MulLanStr(LanguageLabel.UI__F_StoreLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.F_MagicLab), new MulLanStr(LanguageLabel.UI__F_MagicLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.F_GardenLab), new MulLanStr(LanguageLabel.UI__F_GardenLab));
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Fg_Tit), new MulLanStr(LanguageLabel.UI__Fg_Tit));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Fg_Lab), new MulLanStr(LanguageLabel.UI__Fg_Lab0));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Fg_BtnLab), new MulLanStr(LanguageLabel.UI__Fg_BtnLab));
-
-        TextPlus textPlus = ResourceManager.Get<TextPlus>(CanvasLabel.Fe_BtnLab);
-        textPlus.MaxLineHeight = 16.71891f;
-
-        ResourceManager.Get(CanvasLabel.F_TipBK).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        #region F_Close
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.F_Close,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.Close);
-
-                ResourceManager.Get(CanvasLabel.F_Manage).TweenBacGra();
-            }
-        );
-
-        #endregion
-
-        #region F_Flower
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.F_Flower,
-            () =>
-            {
-                ResourceManager.Get(CanvasLabel.G_Flower).TweenForCG();
-            }
-        );
-
-        #endregion
-
-        #region F_TabBtn
-
-        ResourceManager.Get(CanvasLabel.F_Elf).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.F_Store).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.F_Magic).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.F_Garden).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.F_Elf,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.Get(CanvasLabel.F_Elf).TweenForScale();
-                ResourceManager.Get(CanvasLabel.F_Store).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.F_Magic).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.F_Garden).TweenBacScale();
-
-                ResourceManager.Get(CanvasLabel.F_Elf).SetAsLastSibling();
-                ResourceManager.Get(CanvasLabel.F_Store).SetSiblingIndex(0);
-                ResourceManager.Get(CanvasLabel.F_Magic).SetSiblingIndex(1);
-                ResourceManager.Get(CanvasLabel.F_Garden).SetSiblingIndex(2);
-
-                ResourceManager.Get<Button>(CanvasLabel.F_Elf).interactable = false;
-                ResourceManager.Get<Button>(CanvasLabel.F_Store).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.F_Magic).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.F_Garden).interactable = true;
-
-                ResourceManager.SetActive(CanvasLabel.Fd_Elf, true);
-                ResourceManager.SetActive(CanvasLabel.Fc_Store, false);
-                ResourceManager.SetActive(CanvasLabel.Fb_Magic, false);
-                ResourceManager.SetActive(CanvasLabel.Fa_Garden, false);
-
-                ResourceManager.SetActive(CanvasLabel.F_ElfIcon, true);
-                ResourceManager.SetActive(CanvasLabel.F_StoreIcon, false);
-                ResourceManager.SetActive(CanvasLabel.F_MagicIcon, false);
-                ResourceManager.SetActive(CanvasLabel.F_GardenIcon, false);
-
-                ResourceManager.SetActive(CanvasLabel.Ff_SkillBar, false);
-            }
-        );
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.F_Store,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.Get(CanvasLabel.F_Elf).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.F_Store).TweenForScale();
-                ResourceManager.Get(CanvasLabel.F_Magic).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.F_Garden).TweenBacScale();
-
-                ResourceManager.Get(CanvasLabel.F_Elf).SetSiblingIndex(1);
-                ResourceManager.Get(CanvasLabel.F_Store).SetAsLastSibling();
-                ResourceManager.Get(CanvasLabel.F_Magic).SetSiblingIndex(0);
-                ResourceManager.Get(CanvasLabel.F_Garden).SetSiblingIndex(2);
-
-                ResourceManager.Get<Button>(CanvasLabel.F_Elf).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.F_Store).interactable = false;
-                ResourceManager.Get<Button>(CanvasLabel.F_Magic).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.F_Garden).interactable = true;
-
-                ResourceManager.SetActive(CanvasLabel.Fd_Elf, false);
-                ResourceManager.SetActive(CanvasLabel.Fc_Store, true);
-                ResourceManager.SetActive(CanvasLabel.Fb_Magic, false);
-                ResourceManager.SetActive(CanvasLabel.Fa_Garden, false);
-
-                ResourceManager.SetActive(CanvasLabel.F_ElfIcon, false);
-                ResourceManager.SetActive(CanvasLabel.F_StoreIcon, true);
-                ResourceManager.SetActive(CanvasLabel.F_MagicIcon, false);
-                ResourceManager.SetActive(CanvasLabel.F_GardenIcon, false);
-
-                ResourceManager.SetActive(CanvasLabel.Ff_SkillBar, false);
-            }
-        );
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.F_Magic,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.Get(CanvasLabel.F_Elf).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.F_Store).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.F_Magic).TweenForScale();
-                ResourceManager.Get(CanvasLabel.F_Garden).TweenBacScale();
-
-                ResourceManager.Get(CanvasLabel.F_Elf).SetSiblingIndex(1);
-                ResourceManager.Get(CanvasLabel.F_Store).SetSiblingIndex(0);
-                ResourceManager.Get(CanvasLabel.F_Magic).SetAsLastSibling();
-                ResourceManager.Get(CanvasLabel.F_Garden).SetSiblingIndex(2);
-
-                ResourceManager.Get<Button>(CanvasLabel.F_Elf).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.F_Store).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.F_Magic).interactable = false;
-                ResourceManager.Get<Button>(CanvasLabel.F_Garden).interactable = true;
-
-                ResourceManager.SetActive(CanvasLabel.Fd_Elf, false);
-                ResourceManager.SetActive(CanvasLabel.Fc_Store, false);
-                ResourceManager.SetActive(CanvasLabel.Fb_Magic, true);
-                ResourceManager.SetActive(CanvasLabel.Fa_Garden, false);
-
-                ResourceManager.SetActive(CanvasLabel.F_ElfIcon, false);
-                ResourceManager.SetActive(CanvasLabel.F_StoreIcon, false);
-                ResourceManager.SetActive(CanvasLabel.F_MagicIcon, true);
-                ResourceManager.SetActive(CanvasLabel.F_GardenIcon, false);
-
-                ResourceManager.SetActive(CanvasLabel.Ff_SkillBar, false);
-            }
-        );
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.F_Garden,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.Get(CanvasLabel.F_Elf).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.F_Store).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.F_Magic).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.F_Garden).TweenForScale();
-
-                ResourceManager.Get(CanvasLabel.F_Elf).SetSiblingIndex(2);
-                ResourceManager.Get(CanvasLabel.F_Store).SetSiblingIndex(0);
-                ResourceManager.Get(CanvasLabel.F_Magic).SetSiblingIndex(1);
-                ResourceManager.Get(CanvasLabel.F_Garden).SetAsLastSibling();
-
-                ResourceManager.Get<Button>(CanvasLabel.F_Elf).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.F_Store).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.F_Magic).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.F_Garden).interactable = false;
-
-                ResourceManager.SetActive(CanvasLabel.Fd_Elf, false);
-                ResourceManager.SetActive(CanvasLabel.Fc_Store, false);
-                ResourceManager.SetActive(CanvasLabel.Fb_Magic, false);
-                ResourceManager.SetActive(CanvasLabel.Fa_Garden, true);
-
-                ResourceManager.SetActive(CanvasLabel.F_ElfIcon, false);
-                ResourceManager.SetActive(CanvasLabel.F_StoreIcon, false);
-                ResourceManager.SetActive(CanvasLabel.F_MagicIcon, false);
-                ResourceManager.SetActive(CanvasLabel.F_GardenIcon, true);
-
-                ResourceManager.SetActive(CanvasLabel.Ff_SkillBar, true);
-            }
-        );
-
-        #endregion
-
-        #region F_Manage
-
-        tween = ResourceManager.Get(CanvasLabel.F_Manage).CreateTweenGra(0, 180/255f, 0.5f, true, true, Curve.EaseOutQuad);
-
-        var tween1 = tween;
-        tween.OnForwardStart += () =>
-        {
-            tween1.Duration = 0.5f;
-        };
-
-        tween.OnBackwardStart += () =>
-        {
-            tween1.Duration = 0.25f;
-        };
-
-        tween.OnBackwardFinish += () =>
-        {
-            ResourceManager.Get(CanvasLabel.F_Manage0).TweenBacVec();
-        };
-
-
-        tween = ResourceManager.Get(CanvasLabel.F_Manage0).CreateTweenVec2D(ResourceManager.Get(CanvasLabel.F_PosTra).position, 0.5f, false, false, true, Curve.EaseOutQuad);
-
-        tween.OnForwardStart += () =>
-        {
-            ResourceManager.Get(CanvasLabel.C_Main).TweenBacCG();
-
-            ResourceManager.SetActive(CanvasLabel.F_Manage, true);
-        };
-
-        tween.OnForwardFinish += () =>
-        {
-            ResourceManager.Get(CanvasLabel.F_Manage).TweenForGra();
-        };
-
-        tween.OnBackwardFinish += () =>
-        {
-            ResourceManager.Get(CanvasLabel.C_Main).TweenForCG();
-
-            ResourceManager.SetActive(CanvasLabel.F_Manage, false);
-        };
-
-        #endregion
-
-        #region F_PersonBtn
-
-        List<Sprite> spriteList = new List<Sprite>();
-        foreach (var skill in Manager.SkillList)
-        {
-            if (spriteList.Contains(skill.Icon))
-            {
-                continue;
-            }
-            spriteList.Add(skill.Icon);
-        }
-        SpriteAsset.AddBundleSpriteInfo(spriteList.ToArray());
-
-        Sprite sprite;
-        if (Initializer.Instance.DebugMode)
-        {
-            Texture2D texture = ResourceManager.LoadSprite("4大技能1", Folder.Atlas2).texture;
-            sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0.5f, 0.5f));
-        }
-        else
-        {
-            sprite = ResourceManager.LoadSprite(ResourceLabel.SkillAtlas, Folder.Atlas2);
-        }
-
-        ResourceManager.Get<TextPlus>(CanvasLabel.K_Lab1).Scale = 1.8f;
-        ResourceManager.Get<TextPlus>(CanvasLabel.K_Lab1).SetY = true;
-        ResourceManager.Get<TextPlus>(CanvasLabel.K_Lab1).Y = 0;
-        ResourceManager.Get<Image>(CanvasLabel.K_ImagePlus1).sprite = sprite;
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.F_PersonBtn,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                Bubble.Show(Language.GetStr(LanguageLabel.UI__F_PersonBtn0), null, null, ResourceManager.LoadSprite("4大技能1", Folder.UI));
-                string content0 = Language.GetStr(LanguageLabel.UI__F_PersonBtn1);
-                string person = "";
-                Ability gardenAbility = Manager.SkillDictionary["Ability1"] as Ability;
-                float increasePerson = Manager.CurrentPerson - gardenAbility.NewPerson;
-                if (increasePerson > 0.001f)
-                {
-                    person = Auxiliary.ShrinkBigNumberStr(gardenAbility.NewPerson * 60) + "<color=#00ff00ff>+" + Auxiliary.ShrinkBigNumberStr(increasePerson*60) + "</color>";
-                }
-                if (Manager.ExtraPersonSourceSpritesName.Count > 0)
-                {
-                    StringBuilder stringBuilder = new StringBuilder();
-                    for (int i = 0; i < MaxSkillIconForIncomeDetailPanel; i++)
-                    {
-                        if (i < Manager.ExtraPersonSourceSpritesName.Count)
-                        {
-                            stringBuilder.Append(string.Format("<({0})>", Manager.ExtraPersonSourceSpritesName[i]));
-                        }
-                        if (i < MaxSkillIconForIncomeDetailPanel - 1)
-                        {
-                            stringBuilder.Append(" ");
-                        }
-                    }
-                    string content1 = Language.GetStr(LanguageLabel.UI__F_IncreaseSource).Replace(TransferLabel.Value, stringBuilder.ToString());
-                    if (Manager.ExtraPersonSourceSpritesName.Count > MaxSkillIconForIncomeDetailPanel)
-                    {
-                        Bubble.LinkButton.GetComponent<Text>().text = Language.GetStr(LanguageLabel.UI__F_LinkButton);
-                        Bubble.LinkButton.SetActive(true);
-                        Bubble.LinkButton.onClick.RemoveAllListeners();
-                        Bubble.LinkButton.onClick.AddListener
-                        (
-                            () =>
-                            {
-                                AudioManager.PlayClip(ResourceLabel.BubbleClip);
-                                AlertPanel.Show(Language.GetStr(LanguageLabel.UI__F_IncreaseSource).Replace(TransferLabel.Value, ""), Manager.ExtraPersonSourceSpritesName);
-                            }
-                        );
-                        content1 += "\u3000\u3000\u3000\u3000";
-                    }
-                    Bubble.Lab1.SetActive(true);
-                    Bubble.Lab1.text = content1;
-                }
-                content0 = content0.Replace(TransferLabel.Value, person);
-                Bubble.Lab2.text = content0;
-                Bubble.Lab2.SetActive(true);
-            }
-        );
-
-        #endregion
-
-        #region F_PersonLab
-
-        tween = AnimManager.CreateTweenOutline(ResourceManager.Get(CanvasLabel.F_PersonLab), 0, 201/255f, 1f, true, true, Curve.EaseOutQuad);
-
-        tween.PingPong = true;
-
-        #endregion
-
-        #region F_CoinPersonBtn
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.F_CoinPersonBtn,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-
-                Bubble.Show(Language.GetStr(LanguageLabel.UI__F_CoinPersonBtn0), null, null, ResourceManager.LoadSprite("绿-免费金币", Folder.UI));
-                string content0 = Language.GetStr(LanguageLabel.UI__F_CoinPersonBtn1);
-                string coinPerson = "";
-                Ability gardenAbility = Manager.SkillDictionary["Ability1"] as Ability;
-                float increaseCoinPerson = Manager.CurrentCoinPerson - gardenAbility.NewCoinPerson;
-                if (increaseCoinPerson > 0.001f)
-                {
-                    coinPerson = Auxiliary.ShrinkBigNumberStr(gardenAbility.NewCoinPerson) + "<color=#00ff00ff>+" + Auxiliary.ShrinkBigNumberStr(increaseCoinPerson) + "</color>";
-                }
-                if (Manager.ExtraCoinPersonSourceSpritesName.Count > 0)
-                {
-                    StringBuilder stringBuilder = new StringBuilder();
-                    for (int i = 0; i < MaxSkillIconForIncomeDetailPanel; i++)
-                    {
-                        if (i < Manager.ExtraCoinPersonSourceSpritesName.Count)
-                        {
-                            stringBuilder.Append(string.Format("<({0})>", Manager.ExtraCoinPersonSourceSpritesName[i]));
-                        }
-                        if (i < MaxSkillIconForIncomeDetailPanel - 1)
-                        {
-                            stringBuilder.Append(" ");
-                        }
-                    }
-                    string content1 = Language.GetStr(LanguageLabel.UI__F_IncreaseSource).Replace(TransferLabel.Value, stringBuilder.ToString());
-                    if (Manager.ExtraCoinPersonSourceSpritesName.Count > MaxSkillIconForIncomeDetailPanel)
-                    {
-                        Bubble.LinkButton.GetComponent<Text>().text = Language.GetStr(LanguageLabel.UI__F_LinkButton);
-                        Bubble.LinkButton.SetActive(true);
-                        Bubble.LinkButton.onClick.RemoveAllListeners();
-                        Bubble.LinkButton.onClick.AddListener
-                        (
-                            () =>
-                            {
-                                AudioManager.PlayClip(ResourceLabel.BubbleClip);
-                                AlertPanel.Show(Language.GetStr(LanguageLabel.UI__F_IncreaseSource).Replace(TransferLabel.Value, ""), Manager.ExtraCoinPersonSourceSpritesName);
-                            }
-                        );
-                        content1 += "\u3000\u3000\u3000\u3000";
-                    }
-                    Bubble.Lab1.SetActive(true);
-                    Bubble.Lab1.text = content1;
-                }
-                content0 = content0.Replace(TransferLabel.Value, coinPerson);
-                Bubble.Lab2.text = content0;
-                Bubble.Lab2.SetActive(true);
-            }
-        );
-
-        #endregion
-
-        #region F_CoinPersonLab
-
-        tween = AnimManager.CreateTweenOutline(ResourceManager.Get(CanvasLabel.F_CoinPersonLab), 0, 201/255f, 1f, true, true, Curve.EaseOutQuad);
-
-        tween.PingPong = true;
-
-        #endregion
-
-
-        #region Fe_Info
-
-        ResourceManager.Get(CanvasLabel.Fe_Info).CreateTweenCG(0f, 1f, 0.1f, false, true, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region Fe_Close
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Fe_Close,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.Close);
-
-                ResourceManager.Get(CanvasLabel.Fe_Info).TweenBacCG();
-            }
-        );
-
-        #endregion
-
-
-        #region Fg_Btn
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Fg_Btn,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.Get<Button>(CanvasLabel.Fg_Btn).interactable = false;
-
-                ResourceManager.SetText(CanvasLabel.Fg_Lab, Language.GetStr(LanguageLabel.UI__Fg_Lab1));
-
-                HttpManager.Login(LoginCallback);
-            }
-        );
-
-        #endregion
-
-        #region Fg_Close
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Fg_Close,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.Close);
-
-                ResourceManager.Get(CanvasLabel.Fg_Reconnect).TweenBacCG();
-            }
-        );
-
-        #endregion
-
-        #region Fg_Reconnect
-
-        tween = ResourceManager.Get(CanvasLabel.Fg_Reconnect).CreateTweenCG(0f, 1f, 0.1f, false, true, Curve.EaseOutQuad);
-
-        tween.OnForwardStart += () =>
-        {
-            ResourceManager.SetText(CanvasLabel.Fg_Lab, Language.GetStr(LanguageLabel.UI__Fg_Lab0));
-        };
-
-        #endregion
-
-        #endregion
-
-        #region G
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.G_Tit), new MulLanStr(LanguageLabel.UI__G_Tit));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.G_SpecialLab), new MulLanStr(LanguageLabel.UI__G_SpecialLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.G_RegularLab), new MulLanStr(LanguageLabel.UI__G_RegularLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.G_RetrieveLab), new MulLanStr(LanguageLabel.UI__G_RetrieveLab));
-
-        #region G_Close
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.G_Close,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.Close);
-
-                ResourceManager.Get(CanvasLabel.G_Flower).TweenBacCG();
-            }
-        );
-
-        #endregion
-
-        #region G_Flower
-
-        tween = ResourceManager.Get(CanvasLabel.G_Flower).CreateTweenCG(0f, 1f, 0.25f, false, true, Curve.EaseOutQuad);
-
-        tween.OnForwardStart += () =>
-        {
-            AudioManager.PlayClip(AudioLabel.Bubble);
-
-            ResourceManager.Get(CanvasLabel.C_Main).TweenBacCG();
-
-            if (GardenManager.TotalUnlockSpecialFlower == 0)
-            {
-                ResourceManager.SetActive(CanvasLabel.G_Special, false);
-            }
-        };
-
-        tween.OnBackwardStart += () =>
-        {
-            foreach (var kv in GardenManager.GetFlowerInfoDict())
-            {
-                //Debug.Log(kv.Value);
-                //Debug.Log(kv.Value.UIPartical);
-                //Debug.Log(kv.Value.UIPartical.Animator);
-                if (kv.Value.UIPartical.Animator == null)
-                {
-                    continue;
-                }
-                kv.Value.UIPartical.Animator.SetTrigger("Stop");
-            }
-        };
-
-        tween.OnBackwardFinish += () =>
-        {
-            ResourceManager.Get(CanvasLabel.C_Main).TweenForCG();
-            ResourceManager.Get(CanvasLabel.C_Group).GetTweenCG().InOrigin = true;
-        };
-
-        #endregion
-
-        #region G_Special
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.G_Special,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.SetActive(CanvasLabel.G_SpecialScrr, true);
-                ResourceManager.SetActive(CanvasLabel.G_RegularScrr, false);
-
-                ResourceManager.Get<Button>(CanvasLabel.G_Special).interactable = false;
-                ResourceManager.Get<Button>(CanvasLabel.G_Regular).interactable = true;
-            }
-        );
-
-        #endregion
-
-        #region G_Regular
-
-        ResourceManager.Get(CanvasLabel.G_Regular).CreateTweenVec2D(ResourceManager.Get(CanvasLabel.G_PosTraL).position, ResourceManager.Get(CanvasLabel.G_PosTraR).position, 0.25f, false, true, true, Curve.EaseOutQuad);
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.G_Regular,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.SetActive(CanvasLabel.G_SpecialScrr, false);
-                ResourceManager.SetActive(CanvasLabel.G_RegularScrr, true);
-
-                ResourceManager.Get<Button>(CanvasLabel.G_Special).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.G_Regular).interactable = false;
-            }
-        );
-
-        #endregion
-
-        #region G_Retrieve
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.G_Retrieve,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.Close);
-
-                ResourceManager.Get(CanvasLabel.G_Flower).TweenBacCG();
-
-                GardenManager.RetriveAllFlower();
-            }
-        );
-
-        #endregion
-
-        #endregion
-
-        #region H
-
-        #region H_Close
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.H_Close,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.Close);
-
-                ResourceManager.Get(CanvasLabel.H_FlowerCard).TweenBacCG();
-            }
-        );
-
-        #endregion
-
-        #region H_FlowerCard
-
-        tween = ResourceManager.Get(CanvasLabel.H_FlowerCard).CreateTweenCG(0f, 1f, 0.25f, false, true, Curve.EaseOutQuad);
-
-        tween.OnForwardStart += () =>
-        {
-            ResourceManager.Get(CanvasLabel.C_Main).TweenBacCG();
-        };
-
-        tween.OnBackwardFinish += () =>
-        {
-            ResourceManager.Get(CanvasLabel.H_Icon1).Find(string.Format("{0}/{1}", CanvasLabel.H_UIFlashLight, CanvasLabel.H_UIFlash)).SetActive(false);
-            ResourceManager.Get(CanvasLabel.H_Icon1).Find(string.Format("{0}/{1}", CanvasLabel.H_UIFlashLight, CanvasLabel.H_UIParticleSystem)).SetActive(false);
-
-            if (GardenManager.FlowerCardMaterialTween != null)
-                GardenManager.FlowerCardMaterialTween.Pause();
-        };
-
-        #endregion
-
-        #region H_Icon2
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.H_Icon2,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                GardenManager.PlantFlower(GardenManager.SelectFlowerInfo);
-            }
-        );
-
-        #endregion
-
-        #endregion
-
-        #region I
-
-        TweenCG tweenCG = ResourceManager.Get(CanvasLabel.I_BlackMask).CreateTweenCG(1, 0, 1f, true, false, Curve.EaseOutQuad);
-        tweenCG.CG = false;
-
-        #endregion
-
-        #region J
-
-        ResourceManager.Get(CanvasLabel.C_Info).CreateTweenCG(0, 0.9f, 0.25f, false, true, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region L
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_MusicOnLab), new MulLanStr(LanguageLabel.UI__L_On));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_MusicOffLab), new MulLanStr(LanguageLabel.UI__L_Off));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_AudioOnLab), new MulLanStr(LanguageLabel.UI__L_On));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_AudioOffLab), new MulLanStr(LanguageLabel.UI__L_Off));
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_Tit), new MulLanStr(LanguageLabel.UI__L_Tit));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_UserTit), new MulLanStr(LanguageLabel.UI__L_UserTit));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_AudioTit), new MulLanStr(LanguageLabel.UI__L_AudioTit));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_SupportTit), new MulLanStr(LanguageLabel.UI__L_SupportTit));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_LanguageTit), new MulLanStr(LanguageLabel.UI__L_LanguageTit));
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_AudioLab), new MulLanStr(LanguageLabel.UI__L_AudioLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_MusicLab), new MulLanStr(LanguageLabel.UI__L_MusicLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_ReportLab), new MulLanStr(LanguageLabel.UI__L_ReportLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_ChangeLab), new MulLanStr(LanguageLabel.UI__L_ChangeLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_CreditsLab), new MulLanStr(LanguageLabel.UI__L_CreditsLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_ShareLab), new MulLanStr(LanguageLabel.UI__L_ShareLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_ConfirmLab), new MulLanStr(LanguageLabel.UI__L_ConfirmLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_ResetLab), new MulLanStr(LanguageLabel.UI__L_ResetLab0));
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_TraChiLab), new MulLanStr(LanguageLabel.UI__L_TraChiLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_SimChiLab), new MulLanStr(LanguageLabel.UI__L_SimChiLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_EnglishLab), new MulLanStr(LanguageLabel.UI__L_EnglishLab));
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.La_Tit), new MulLanStr(LanguageLabel.UI__La_Tit));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.La_CancelLab), new MulLanStr(LanguageLabel.Common__Cancel));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.La_ConfirmLab), new MulLanStr(LanguageLabel.Common__Confirm));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.La_Placeholder), new MulLanStr(LanguageLabel.UI__La_Placeholder));
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Lb_Tit), new MulLanStr(LanguageLabel.UI__Lb_Tit));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Lb_CancelLab), new MulLanStr(LanguageLabel.Common__Cancel));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Lb_ConfirmLab), new MulLanStr(LanguageLabel.Common__Confirm));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Lb_Placeholder), new MulLanStr(LanguageLabel.UI__Lb_Placeholder));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Lb_Placeholder0), new MulLanStr(LanguageLabel.UI__Lb_Placeholder0));
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Lc_CreditsContent), new MulLanStr(LanguageLabel.UI__Lc_CreditsContent));
-
-        ResourceManager.SetText(CanvasLabel.L_UserLab, ConfigManager.GetStringFormConfig(PlayerConfigLabel.ID));
-
-        #region L_Setting
-
-        tween = ResourceManager.Get(CanvasLabel.L_Setting).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        tween.OnForwardStart += () =>
-        {
-            ResourceManager.Get(CanvasLabel.C_Main).TweenBacCG();
-        };
-
-        tween.OnBackwardFinish += () =>
-        {
-            ResourceManager.Get(CanvasLabel.C_Main).TweenForCG();
-        };
-
-        #endregion
-
-        #region L_Confirm
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.L_Confirm,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.Close);
-
-                ResourceManager.Get(CanvasLabel.L_Setting).TweenBacCG();
-            }
-        );
-
-        #endregion
-
-
-        #region L_CreditsMask
-
-        ResourceManager.Get(CanvasLabel.Lc_CreditsMask).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.Lc_CreditsMask,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.Get(CanvasLabel.Lc_CreditsMask).TweenBacCG();
-                ResourceManager.Get(CanvasLabel.Lc_CreditsContent).TweenBacCG();
-
-                Auxiliary.Instance.StopCoroutine(StopPlayCreditsRoutine);
-            }
-        );
-
-        #endregion
-
-        #region L_CreditsContent
-
-        ResourceManager.Get(CanvasLabel.Lc_CreditsContent).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.Lc_CreditsContent).CreateTweenVec2D(ResourceManager.Get(CanvasLabel.Lc_Pos).position, 10f, false, false, true, Curve.Linear);
-
-        #endregion
-
-        #region L_CreditsBtn
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.L_CreditsBtn,
-            () =>
-            {
-                ShowCredits();
-
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-            }
-        );
-
-        #endregion
-
-
-        #region L_ShareBtn
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.L_ShareBtn,
-            () =>
-            {
-                IAPManager.Share();
-
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-            }
-        );
-
-        if (Application.isEditor)
-        {
-            ResourceManager.Get<Button>(CanvasLabel.L_ShareBtn).interactable = false;
-        }
-
-        #endregion
-
-        #region L_AudioBtn
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.L_AudioBtn,
-            () =>
-            {
-                AudioManager.Instance.AudioSwitch();
-
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-            }
-        );
-
-        #endregion
-
-        #region L_MusicBtn
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.L_MusicBtn,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                AudioManager.Instance.MusicSwitch();
-            }
-        );
-
-        #endregion
-
-        #region L_ReportBtn
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.L_ReportBtn,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.Get(CanvasLabel.Lb_Info).TweenForCG();
-            }
-        );
-
-        #endregion
-
-        #region L_ChangeBtn
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.L_ChangeBtn,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.Get(CanvasLabel.La_Info).TweenForCG();
-            }
-        );
-
-        #endregion
-
-        #region L_Reset
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.L_ResetBtn,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                Bubble.Show
-                (
-                    null,
-                    Language.GetStr(LanguageLabel.UI__L_ResetLab1),
-                    null,
-                    null,
-                    () =>
-                    {
-                        ConfigManager.ResetConfigDocument();
-                    }
-                );
-            }
-        );
-
-        #endregion
-
-
-        #region L_TraChi
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.L_TraChi,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.Get<Button>(CanvasLabel.L_TraChi).interactable = false;
-                ResourceManager.Get<Button>(CanvasLabel.L_SimChi).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.L_English).interactable = true;
-
-                ResourceManager.Get<Button>(CanvasLabel.L_TraChi).image.color = Lib.Orange;
-                ResourceManager.Get<Button>(CanvasLabel.L_SimChi).image.color = Lib.LightGray;
-                ResourceManager.Get<Button>(CanvasLabel.L_English).image.color = Lib.LightGray;
-
-                LanguageManager.SwitchLanguage(CurrentLanguage.ChineseTraditional);
-            }
-        );
-
-        #endregion
-
-        #region L_SimChi
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.L_SimChi,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.Get<Button>(CanvasLabel.L_TraChi).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.L_SimChi).interactable = false;
-                ResourceManager.Get<Button>(CanvasLabel.L_English).interactable = true;
-
-                ResourceManager.Get<Button>(CanvasLabel.L_TraChi).image.color = Lib.LightGray;
-                ResourceManager.Get<Button>(CanvasLabel.L_SimChi).image.color = Lib.Orange;
-                ResourceManager.Get<Button>(CanvasLabel.L_English).image.color = Lib.LightGray;
-
-                LanguageManager.SwitchLanguage(CurrentLanguage.ChineseSimplified);
-            }
-        );
-
-        #endregion
-
-        #region L_English
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.L_English,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.Get<Button>(CanvasLabel.L_TraChi).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.L_SimChi).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.L_English).interactable = false;
-
-                ResourceManager.Get<Button>(CanvasLabel.L_TraChi).image.color = Lib.LightGray;
-                ResourceManager.Get<Button>(CanvasLabel.L_SimChi).image.color = Lib.LightGray;
-                ResourceManager.Get<Button>(CanvasLabel.L_English).image.color = Lib.Orange;
-
-                LanguageManager.SwitchLanguage(CurrentLanguage.English);
-            }
-        );
-
-        #endregion
-
-        if (Initializer.Instance.AuditEdition)
-        {
-            ResourceManager.SetActive(CanvasLabel.L_TraChi, false);
-            ResourceManager.SetActive(CanvasLabel.L_English, false);
-        }
-
-
-        #region La_Info
-
-        ResourceManager.Get(CanvasLabel.La_Info).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region La_Cancel
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.La_Cancel,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.Close);
-
-                ResourceManager.Get(CanvasLabel.La_Info).TweenBacCG();
-            }
-        );
-
-        #endregion
-
-        #region La_Confirm
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.La_Confirm,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                string id = ResourceManager.Get<InputField>(CanvasLabel.La_InputField).text;
-
-                if (id == HttpManager.ID)
-                {
-                    Bubble.Show(null, Language.GetStr(LanguageLabel.Common__IdenticalID));
-                }
-                else
-                {
-                    Manager.SwitchConfig(id);
-                }
-            }
-        );
-
-        #endregion
-
-
-        #region Lb_Info
-
-        ResourceManager.Get(CanvasLabel.Lb_Info).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region Lb_Cancel
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Lb_Cancel,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.Close);
-
-                ResourceManager.Get(CanvasLabel.Lb_Info).TweenBacCG();
-            }
-        );
-
-        #endregion
-
-        #region Lb_Confirm
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Lb_Confirm,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                HttpManager.ReportIssue();
-            }
-        );
-
-        #endregion
-
-        #endregion
-
-        #region M
-
-        #region M_Close
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.M_Tit), new MulLanStr(LanguageLabel.UI__M_Tit));
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.M_Close,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.Close);
-
-                ResourceManager.Get(CanvasLabel.M_Achieve).TweenBacGra();
-            }
-        );
-
-        #endregion
-
-        #region M_Achieve
-
-        tween = ResourceManager.Get(CanvasLabel.M_Achieve).CreateTweenGra(new Color(0, 0, 0, 180/255f), 0.5f, true, true, Curve.EaseOutQuad);
-
-        var tween2 = tween;
-        tween.OnForwardStart += () =>
-        {
-            tween2.Duration = 0.5f;
-        };
-
-        tween.OnBackwardStart += () =>
-        {
-            tween2.Duration = 0.25f;
-        };
-
-        tween.OnBackwardFinish += () =>
-        {
-            ResourceManager.Get(CanvasLabel.M_Achieve0).TweenBacVec();
-        };
-
-        tween = ResourceManager.Get(CanvasLabel.M_Achieve0).CreateTweenVec2D(ResourceManager.Get(CanvasLabel.M_PosTra).position, 0.5f, false, false, true, Curve.EaseOutQuad);
-
-        tween.OnForwardStart += () =>
-        {
-            ResourceManager.Get(CanvasLabel.C_Main).TweenBacCG();
-
-            ResourceManager.SetActive(CanvasLabel.M_Achieve, true);
-        };
-
-        tween.OnForwardFinish += () =>
-        {
-            ResourceManager.Get(CanvasLabel.M_Achieve).TweenForGra();
-        };
-
-        tween.OnBackwardFinish += () =>
-        {
-            ResourceManager.Get(CanvasLabel.C_Main).TweenForCG();
-
-            ResourceManager.SetActive(CanvasLabel.M_Achieve, false);
-            ResourceManager.SetActive(CanvasLabel.M_Achieve0, false);
-        };
-
-        #endregion
-
-        #endregion
-
-        #region O
-
-        ResourceManager.Get(CanvasLabel.O_Toast).AddScript<Toast>();
-
-        #endregion
-
-        #region N
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.N_Lab), new MulLanStr(LanguageLabel.UI__N_Lab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.N_ConfirmLab), new MulLanStr(LanguageLabel.Common__Confirm));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.N_FormerPlayerButtonText), new MulLanStr(LanguageLabel.UI__N_FormerPlayerButtonText));
-
-        ResourceManager.Get(CanvasLabel.N_Mask).CreateTweenGra(0, 180/255f, 0.25f, false, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.N_LabBK).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.N_Arrow).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.N_Tutorial).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.N_Confirm).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.N_FormerPlayerButton).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region P
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.P_HairLab), new MulLanStr(LanguageLabel.UI__P_HairLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.P_TopLab), new MulLanStr(LanguageLabel.UI__P_TopLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.P_DressLab), new MulLanStr(LanguageLabel.UI__P_DressLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.P_DecaratorLab), new MulLanStr(LanguageLabel.UI__P_DecaratorLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.P_WingLab), new MulLanStr(LanguageLabel.UI__P_WingLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.P_ShoeLab), new MulLanStr(LanguageLabel.UI__P_ShoeLab));
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Pa_Tit), new MulLanStr(LanguageLabel.UI__Pa_Tit));
-
-
-        #region P_Group
-
-        ResourceManager.Get(CanvasLabel.P_Group).CreateTweenCG(1, 0, 0.25f, true, false, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region P_Open
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.P_Open,
-            () =>
-            {
-                ResourceManager.Get(CanvasLabel.P_Group).TweenBacCG();
-                ResourceManager.Get(CanvasLabel.P_SidePanel).TweenBacVec();
-
-                ResourceManager.SetActive(CanvasLabel.P_Open, false);
-                ResourceManager.SetActive(CanvasLabel.P_Close, true);
-            }
-        );
-
-        #endregion
-
-        #region P_Close
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.P_Close,
-            () =>
-            {
-                ResourceManager.Get(CanvasLabel.P_Group).TweenForCG();
-                ResourceManager.Get(CanvasLabel.P_SidePanel).TweenForVec();
-
-                ResourceManager.SetActive(CanvasLabel.P_Open, true);
-                ResourceManager.SetActive(CanvasLabel.P_Close, false);
-            }
-        );
-
-        #endregion
-
-        #region P_SidePanel
-
-        tweenRoot = ResourceManager.Get(CanvasLabel.P_SidePanel).CreateTweenVec2D(ResourceManager.Get(CanvasLabel.P_Pos).position, 0.5f, false, true, true, Curve.EaseOutQuad);
-
-        tweenRoot.OnForwardFinish += () =>
-        {
-            ResourceManager.Get(CanvasLabel.P_Share).TweenForCG();
-        };
-
-        tweenRoot.OnBackwardStart += () =>
-        {
-            ResourceManager.Get(CanvasLabel.P_Share).TweenBacCG();
-        };
-
-        #endregion
-
-        #region P_DressRoom
-
-        ResourceManager.Get(CanvasLabel.P_DressRoom).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region P_Save
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.P_Save,
-            () =>
-            {
-                PlayerManager.Player.SaveDressDatas(true);
-            }
-        );
-
-        #endregion
-
-        #region P_Reset
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.P_Reset,
-            () =>
-            {
-                PlayerManager.Player.ResetDressDatas();
-            }
-        );
-
-        #endregion
-
-        #region P_TabBtn
-
-        ResourceManager.Get(CanvasLabel.P_Hair).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.P_Top).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.P_Dress).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.P_Decarator).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.P_Wing).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.P_Shoe).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.P_Hair,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.Get(CanvasLabel.P_Hair).TweenForScale();
-                ResourceManager.Get(CanvasLabel.P_Top).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Dress).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Decarator).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Wing).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Shoe).TweenBacScale();
-
-                ResourceManager.Get(CanvasLabel.P_Hair).SetSiblingIndex(5);
-                ResourceManager.Get(CanvasLabel.P_Top).SetSiblingIndex(0);
-                ResourceManager.Get(CanvasLabel.P_Dress).SetSiblingIndex(1);
-                ResourceManager.Get(CanvasLabel.P_Decarator).SetSiblingIndex(3);
-                ResourceManager.Get(CanvasLabel.P_Wing).SetSiblingIndex(4);
-                ResourceManager.Get(CanvasLabel.P_Shoe).SetSiblingIndex(2);
-
-                ResourceManager.Get<Button>(CanvasLabel.P_Hair).interactable = false;
-                ResourceManager.Get<Button>(CanvasLabel.P_Top).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Dress).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Decarator).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Wing).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Shoe).interactable = true;
-
-                ResourceManager.SetActive(CanvasLabel.Pa_HairTab, true);
-                ResourceManager.SetActive(CanvasLabel.Pb_TopTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pc_DressTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pd_DecaratorTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pe_WingTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pf_ShoeTab, false);
-
-                ResourceManager.SetActive(CanvasLabel.P_HairIcon, true);
-                ResourceManager.SetActive(CanvasLabel.P_TopIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_DressIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_DecaratorIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_WingIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_ShoeIcon, false);
-            }
-        );
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.P_Top,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.Get(CanvasLabel.P_Hair).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Top).TweenForScale();
-                ResourceManager.Get(CanvasLabel.P_Dress).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Decarator).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Wing).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Shoe).TweenBacScale();
-
-                ResourceManager.Get(CanvasLabel.P_Hair).SetSiblingIndex(0);
-                ResourceManager.Get(CanvasLabel.P_Top).SetSiblingIndex(5);
-                ResourceManager.Get(CanvasLabel.P_Dress).SetSiblingIndex(1);
-                ResourceManager.Get(CanvasLabel.P_Decarator).SetSiblingIndex(3);
-                ResourceManager.Get(CanvasLabel.P_Wing).SetSiblingIndex(4);
-                ResourceManager.Get(CanvasLabel.P_Shoe).SetSiblingIndex(2);
-
-                ResourceManager.Get<Button>(CanvasLabel.P_Hair).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Top).interactable = false;
-                ResourceManager.Get<Button>(CanvasLabel.P_Dress).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Decarator).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Wing).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Shoe).interactable = true;
-
-                ResourceManager.SetActive(CanvasLabel.Pa_HairTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pb_TopTab, true);
-                ResourceManager.SetActive(CanvasLabel.Pc_DressTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pd_DecaratorTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pe_WingTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pf_ShoeTab, false);
-
-                ResourceManager.SetActive(CanvasLabel.P_HairIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_TopIcon, true);
-                ResourceManager.SetActive(CanvasLabel.P_DressIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_DecaratorIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_WingIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_ShoeIcon, false);
-            }
-        );
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.P_Dress,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.Get(CanvasLabel.P_Hair).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Top).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Dress).TweenForScale();
-                ResourceManager.Get(CanvasLabel.P_Decarator).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Wing).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Shoe).TweenBacScale();
-
-                ResourceManager.Get(CanvasLabel.P_Hair).SetSiblingIndex(0);
-                ResourceManager.Get(CanvasLabel.P_Top).SetSiblingIndex(1);
-                ResourceManager.Get(CanvasLabel.P_Dress).SetSiblingIndex(6);
-                ResourceManager.Get(CanvasLabel.P_Decarator).SetSiblingIndex(3);
-                ResourceManager.Get(CanvasLabel.P_Wing).SetSiblingIndex(4);
-                ResourceManager.Get(CanvasLabel.P_Shoe).SetSiblingIndex(2);
-
-                ResourceManager.Get<Button>(CanvasLabel.P_Hair).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Top).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Dress).interactable = false;
-                ResourceManager.Get<Button>(CanvasLabel.P_Decarator).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Wing).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Shoe).interactable = true;
-
-                ResourceManager.SetActive(CanvasLabel.Pa_HairTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pb_TopTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pc_DressTab, true);
-                ResourceManager.SetActive(CanvasLabel.Pd_DecaratorTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pe_WingTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pf_ShoeTab, false);
-
-                ResourceManager.SetActive(CanvasLabel.P_HairIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_TopIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_DressIcon, true);
-                ResourceManager.SetActive(CanvasLabel.P_DecaratorIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_WingIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_ShoeIcon, false);
-            }
-        );
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.P_Decarator,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.Get(CanvasLabel.P_Hair).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Top).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Dress).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Decarator).TweenForScale();
-                ResourceManager.Get(CanvasLabel.P_Wing).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Shoe).TweenBacScale();
-
-                ResourceManager.Get(CanvasLabel.P_Hair).SetSiblingIndex(0);
-                ResourceManager.Get(CanvasLabel.P_Top).SetSiblingIndex(1);
-                ResourceManager.Get(CanvasLabel.P_Dress).SetSiblingIndex(2);
-                ResourceManager.Get(CanvasLabel.P_Decarator).SetSiblingIndex(5);
-                ResourceManager.Get(CanvasLabel.P_Wing).SetSiblingIndex(4);
-                ResourceManager.Get(CanvasLabel.P_Shoe).SetSiblingIndex(3);
-
-                ResourceManager.Get<Button>(CanvasLabel.P_Hair).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Top).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Dress).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Decarator).interactable = false;
-                ResourceManager.Get<Button>(CanvasLabel.P_Wing).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Shoe).interactable = true;
-
-                ResourceManager.SetActive(CanvasLabel.Pa_HairTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pb_TopTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pc_DressTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pd_DecaratorTab, true);
-                ResourceManager.SetActive(CanvasLabel.Pe_WingTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pf_ShoeTab, false);
-
-                ResourceManager.SetActive(CanvasLabel.P_HairIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_TopIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_DressIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_DecaratorIcon, true);
-                ResourceManager.SetActive(CanvasLabel.P_WingIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_ShoeIcon, false);
-            }
-        );
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.P_Wing,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.Get(CanvasLabel.P_Hair).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Top).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Dress).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Decarator).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Wing).TweenForScale();
-                ResourceManager.Get(CanvasLabel.P_Shoe).TweenBacScale();
-
-                ResourceManager.Get(CanvasLabel.P_Hair).SetSiblingIndex(0);
-                ResourceManager.Get(CanvasLabel.P_Top).SetSiblingIndex(1);
-                ResourceManager.Get(CanvasLabel.P_Dress).SetSiblingIndex(2);
-                ResourceManager.Get(CanvasLabel.P_Decarator).SetSiblingIndex(4);
-                ResourceManager.Get(CanvasLabel.P_Wing).SetSiblingIndex(5);
-                ResourceManager.Get(CanvasLabel.P_Shoe).SetSiblingIndex(3);
-
-                ResourceManager.Get<Button>(CanvasLabel.P_Hair).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Top).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Dress).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Decarator).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Wing).interactable = false;
-                ResourceManager.Get<Button>(CanvasLabel.P_Shoe).interactable = true;
-
-                ResourceManager.SetActive(CanvasLabel.Pa_HairTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pb_TopTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pc_DressTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pd_DecaratorTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pe_WingTab, true);
-                ResourceManager.SetActive(CanvasLabel.Pf_ShoeTab, false);
-
-                ResourceManager.SetActive(CanvasLabel.P_HairIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_TopIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_DressIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_DecaratorIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_WingIcon, true);
-                ResourceManager.SetActive(CanvasLabel.P_ShoeIcon, false);
-            }
-        );
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.P_Shoe,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.Get(CanvasLabel.P_Hair).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Top).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Dress).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Decarator).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Wing).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Shoe).TweenForScale();
-
-                ResourceManager.Get(CanvasLabel.P_Hair).SetSiblingIndex(0);
-                ResourceManager.Get(CanvasLabel.P_Top).SetSiblingIndex(1);
-                ResourceManager.Get(CanvasLabel.P_Dress).SetSiblingIndex(2);
-                ResourceManager.Get(CanvasLabel.P_Decarator).SetSiblingIndex(3);
-                ResourceManager.Get(CanvasLabel.P_Wing).SetSiblingIndex(4);
-                ResourceManager.Get(CanvasLabel.P_Shoe).SetSiblingIndex(5);
-
-                ResourceManager.Get<Button>(CanvasLabel.P_Hair).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Top).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Dress).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Decarator).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Wing).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Shoe).interactable = false;
-
-                ResourceManager.SetActive(CanvasLabel.Pa_HairTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pb_TopTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pc_DressTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pd_DecaratorTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pe_WingTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pf_ShoeTab, true);
-
-                ResourceManager.SetActive(CanvasLabel.P_HairIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_TopIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_DressIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_DecaratorIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_WingIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_ShoeIcon, true);
-            }
-        );
-
-        #endregion
-
-        #region P_Return
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.P_Return,
-            () =>
-            {
-                PlayerManager.Player.LeaveDressroom();
-            }
-        );
-
-        #endregion
-
-        #region P_Share
-
-        ResourceManager.Get(CanvasLabel.P_Share).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.P_Share,
-            () =>
-            {
-                ResourceManager.SetActive(CanvasLabel.P_Open, false);
-                ResourceManager.SetActive(CanvasLabel.P_Share, false);
-
-                EndOfFrameCall.Call
-                (
-                    ShareScreenShot
-                );
-            }
-        );
-
-        #endregion
-
-        #region P_CancelShare
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.P_CancelShare,
-            () =>
-            {
-                ResourceManager.SetActive(CanvasLabel.P_Open, true);
-                ResourceManager.SetActive(CanvasLabel.P_CancelShare, false);
-            }
-        );
-
-        #endregion
-
-
-        #region Pa_Info
-
-        ResourceManager.Get(CanvasLabel.Pa_Info).CreateTweenCG(0f, 1f, 0.1f, false, true, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region Pa_Close
-
-        ResourceManager.AddButtonEvent
-            (
-                CanvasLabel.Pa_Close,
-                () =>
-                {
-                    AudioManager.PlayClip(AudioLabel.Close);
-
-                    ResourceManager.Get(CanvasLabel.Pa_Info).TweenBacCG();
-                }
-            );
-
-        #endregion
-
-        #endregion
-
-        #region Q
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Q_Tit), new MulLanStr(LanguageLabel.UI__Q_Tit));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Q_Placeholder), new MulLanStr(LanguageLabel.UI__Q_Placeholder));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Q_CommentLab), new MulLanStr(LanguageLabel.UI__Q_CommentLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Q_CloseLab), new MulLanStr(LanguageLabel.UI__Q_CloseLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Q_NicknameTitle), new MulLanStr(LanguageLabel.UI__Q_NicknameTitle));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Q_ContentTitle), new MulLanStr(LanguageLabel.UI__Q_ContentTitle));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Q_FriendFilterTitle), new MulLanStr(LanguageLabel.UI__Q_FriendFilterTitle));
-
-        ResourceManager.Get(CanvasLabel.Q_Tip).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.Q_CommentBK).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        ResourceManager.AddButtonEvent
-            (
-                CanvasLabel.Q_Close,
-                () =>
-                {
-                    SocialManager.CloseCommentPanel();
-                }
-            );
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Q_CommentBtn,
-            () =>
-            {
-                SocialManager.Comment();
-            }
-        );
-
-        #endregion
-
-        #region R
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.R_NotifyTit), new MulLanStr(LanguageLabel.UI__R_Tit));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.R_CloseLab), new MulLanStr(LanguageLabel.Common__Confirm));
-
-        tween = ResourceManager.Get(CanvasLabel.R_Notify0).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-        tween = ResourceManager.Get(CanvasLabel.R_Notify).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        tween.OnForwardStart +=
-            () =>
-            {
-                ResourceManager.Get(CanvasLabel.R_NotifyBK).TweenForScale();
-            };
-
-        tween.OnBackwardStart +=
-            () =>
-            {
-                ResourceManager.Get(CanvasLabel.R_NotifyBK).TweenBacScale();
-            };
-
-        tween.OnBackwardFinish +=
-            () =>
-            {
-                SignManager.ShowPanels();
-            };
-
-        ResourceManager.Get(CanvasLabel.R_NotifyBK).CreateTweenScale(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.R_Close,
-            () =>
-            {
-                tween = ResourceManager.Get(CanvasLabel.R_Notify).TweenBacCG();
-            }
-        );
-
-        #endregion
-
-        #region S
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.S_Tit), new MulLanStr(LanguageLabel.UI__S_Tit));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.S_CloseLab), new MulLanStr(LanguageLabel.Common__Confirm));
-
-        ResourceManager.Get(CanvasLabel.S_RankPanel).CreateTweenScale(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        tween = ResourceManager.Get(CanvasLabel.S_RankBK).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        tween.OnForwardStart +=
-            () =>
-            {
-                ResourceManager.Get(CanvasLabel.S_RankPanel).TweenForScale();
-            };
-
-        tween.OnBackwardStart +=
-            () =>
-            {
-                ResourceManager.Get(CanvasLabel.S_RankPanel).TweenBacScale();
-            };
-
-        ResourceManager.AddButtonEvent(CanvasLabel.S_Close, () => { SocialManager.CloseRankPanel(); });
-
-        #endregion
-
-        #region T
-
-        //ManaLan.Add(ManaReso.Get<Text>("T_RandomLab"), new LanStr("UI", PrefabLabel.T_Random));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.T_ConfirmLab), new MulLanStr(LanguageLabel.Common__Confirm));
-
-        ResourceManager.SetSprite(CanvasLabel.T_InputField, ResourceManager.LoadSprite(ResourceLabel.Expression_InputField, Folder.Scene));
-        
-        ResourceManager.Get(CanvasLabel.T_NickName).CreateTweenCG(0f, 1f, 0.25f, false, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.T_NickNameBK).CreateTweenCG(0f, 1f, 0.25f, false, true, Curve.EaseOutQuad);
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.T_Confirm,
-            () =>
-            {
-                NickNameManager.ResetNickName();
-            }
-        );
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.T_Close,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.Close);
-                NickNameManager.CloseNickNameSettingPanel();
-            }
-        );
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.T_Random,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.Close);
-                NickNameManager.SetRandomName();
-            }
-        );
-
-        #endregion
-
-        #region U
-
-        ResourceManager.Get(CanvasLabel.U_LoadingPanel).CreateTweenCG(1, 0, 1f, true, false, Curve.EaseOutQuad);
-
-        ResourceManager.Get(CanvasLabel.U_Group).CreateTweenCG(0, 1f, 0.5f, false, true, Curve.EaseOutQuad);
-
-        tweenRoot = ResourceManager.Get(CanvasLabel.U_Icon).CreateTweenEuler(new Vector3(0, 0, -360), 1.25f, false, true, true, Curve.Linear);
-        tweenRoot.Repeat = true;
-        tweenRoot.StartForward();
-
-        #endregion
-
-        #region V
-
-        ResourceManager.Get(CanvasLabel.V_BlackMask).CreateTweenCG(1, 0, 0.25f, true, false, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region X
-
-        ResourceManager.Get<Image>(CanvasLabel.X_CreateChest).sprite = ResourceManager.LoadSprite("宝箱", Folder.Scene);
-        ResourceManager.Get<ImagePlus>(CanvasLabel.X_CurrentInfoImagePlus).sprite = ResourceManager.LoadSprite("Expression", Folder.Scene);
-
-        ResourceManager.SetSprite(CanvasLabel.X_SendPublicMessage, ResourceManager.LoadSprite(ResourceLabel.Expression_SendPublicMessage, Folder.Scene));
-        ResourceManager.SetSprite(CanvasLabel.X_CryFace, ResourceManager.LoadSprite(ResourceLabel.Expression_CryFace, Folder.Scene));
-        ResourceManager.SetSprite(CanvasLabel.X_ChagrinFace, ResourceManager.LoadSprite(ResourceLabel.Expression_ChagrinFace, Folder.Scene));
-        ResourceManager.SetSprite(CanvasLabel.X_HappyFace, ResourceManager.LoadSprite(ResourceLabel.Expression_HappyFace, Folder.Scene));
-        ResourceManager.SetSprite(CanvasLabel.X_SurpriseFace, ResourceManager.LoadSprite(ResourceLabel.Expression_SurpriseFace, Folder.Scene));
-        ResourceManager.SetSprite(CanvasLabel.X_InputField, ResourceManager.LoadSprite(ResourceLabel.Expression_InputField, Folder.Scene));
-        ResourceManager.SetSprite(CanvasLabel.X_HopeFace, ResourceManager.LoadSprite(ResourceLabel.Expression_HopeFace, Folder.Scene));
-        ResourceManager.SetSprite(CanvasLabel.X_SweatFace, ResourceManager.LoadSprite(ResourceLabel.Expression_SweatFace, Folder.Scene));
-        ResourceManager.SetSprite(CanvasLabel.X_OgleFace, ResourceManager.LoadSprite(ResourceLabel.Expression_OgleFace, Folder.Scene));
-        ResourceManager.SetSprite(CanvasLabel.X_Expression, ResourceManager.LoadSprite(ResourceLabel.Expression_Expression, Folder.Scene));
-        ResourceManager.SetSprite(CanvasLabel.X_BlueFace, ResourceManager.LoadSprite(ResourceLabel.Expression_BlueFace, Folder.Scene));
-
-        #region X_CreateChest
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.X_CreateChest,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ChestManager.OpenCreateChestPanel();
-            }
-        );
-
-        #endregion
-
-        #region X_Quit
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.X_Quit,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                SFSManager.GardenSmartFox.PlazaRoomController.LeavePlazaRoom();
-            }
-        );
-
-        #endregion
-
-        #region X_SendPublicMessage
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.X_SendPublicMessage,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                if (SFSManager.GardenSmartFox.PlazaRoomController.SendPublicMessage(ResourceManager.Get<InputField>(CanvasLabel.X_InputField).text))
-                {
-                    ResourceManager.Get<InputField>(CanvasLabel.X_InputField).text = "";
-                }
-            }
-        );
-
-        #endregion
-
-        #region X_Expression
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.X_Expression,
-            () =>
-            {
-                OpenExpressionGrid();
-            }
-        );
-
-        #endregion
-
-        #region X_Mask
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.X_Mask,
-            () =>
-            {
-                CloseExpressionGrid();
-            }
-        );
-
-        #endregion
-
-        #region Expression
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.X_BlueFace,
-            () =>
-            {
-                SFSManager.GardenSmartFox.PlazaRoomController.SendExpression(ExpressionID.郁闷);
-                CloseExpressionGrid();
-            }
-        );
-
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.X_SweatFace,
-            () =>
-            {
-                SFSManager.GardenSmartFox.PlazaRoomController.SendExpression(ExpressionID.汗颜);
-                CloseExpressionGrid();
-            }
-        );
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.X_SurpriseFace,
-            () =>
-            {
-                SFSManager.GardenSmartFox.PlazaRoomController.SendExpression(ExpressionID.惊讶);
-                CloseExpressionGrid();
-            }
-        );
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.X_HappyFace,
-            () =>
-            {
-                SFSManager.GardenSmartFox.PlazaRoomController.SendExpression(ExpressionID.开心);
-                CloseExpressionGrid();
-            }
-        );
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.X_CryFace,
-            () =>
-            {
-                SFSManager.GardenSmartFox.PlazaRoomController.SendExpression(ExpressionID.哭);
-                CloseExpressionGrid();
-            }
-        );
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.X_HopeFace,
-            () =>
-            {
-                SFSManager.GardenSmartFox.PlazaRoomController.SendExpression(ExpressionID.期待);
-                CloseExpressionGrid();
-            }
-        );
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.X_OgleFace,
-            () =>
-            {
-                SFSManager.GardenSmartFox.PlazaRoomController.SendExpression(ExpressionID.色咪咪);
-                CloseExpressionGrid();
-            }
-        );
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.X_ChagrinFace,
-            () =>
-            {
-                SFSManager.GardenSmartFox.PlazaRoomController.SendExpression(ExpressionID.委屈);
-                CloseExpressionGrid();
-            }
-        );
-
-        #endregion
-
-        #region X_OpenInfo
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.X_OpenInfo, () =>
-            {
-                ResourceManager.SetActive(CanvasLabel.X_CurrentInfo, false);
-                ResourceManager.SetActive(CanvasLabel.X_InfoBK, true);
-
-                Auxiliary.Instance.DelayCall
-                (
-                    () =>
-                    {
-                        LayoutRebuilder.MarkLayoutForRebuild(ResourceManager.Get<RectTransform>(CanvasLabel.X_Info));
-                    },
-                    1
-                );
-            }
-        );
-
-        #endregion
-
-        #region X_CloseInfo
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.X_CloseInfo, () =>
-            {
-                ResourceManager.SetActive(CanvasLabel.X_CurrentInfo, true);
-                ResourceManager.SetActive(CanvasLabel.X_InfoBK, false);
-            }
-        );
-
-        #endregion
-
-        #endregion
-
-        #region Y
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Y_Tit), new MulLanStr(LanguageLabel.UI__Yb_Tit));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Y_BtnLab), new MulLanStr(LanguageLabel.Common__Confirm));
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Yb_Tit), new MulLanStr(LanguageLabel.UI__Yb_Tit));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Yb_Desc), new MulLanStr(LanguageLabel.UI__Yb_LuckyDesc));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Yb_BtnLab), new MulLanStr(LanguageLabel.Common__Confirm));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Yb_SliderTit), new MulLanStr(LanguageLabel.UI__Yb_SliderTit));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Yb_ToggleLab0), new MulLanStr(LanguageLabel.UI__Yb_Lucky));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Yb_ToggleLab1), new MulLanStr(LanguageLabel.UI__Yb_GuessColor));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Yb_ToggleLab2), new MulLanStr(LanguageLabel.UI__Yb_GuessNumber));
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Ya_BtnLab), new MulLanStr(LanguageLabel.Common__Confirm));
-
-
-        ResourceManager.SetSprite(CanvasLabel.Y_InputField, ResourceManager.LoadSprite(ResourceLabel.Expression_InputField, Folder.Scene));
-        ResourceManager.SetSprite(CanvasLabel.Yb_InputField, ResourceManager.LoadSprite(ResourceLabel.Expression_InputField, Folder.Scene));
-
-
-        ResourceManager.Get(CanvasLabel.Y_Tip).CreateTweenCG(0, 1, 0.5f, false, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.Y_Chest).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        ResourceManager.Get<Image>(CanvasLabel.Ya_Icon).sprite = ResourceManager.LoadSprite("钻石", Folder.Atlas);
-
-        ResourceManager.Get<Slider>(CanvasLabel.Yb_Slider).onValueChanged.AddListener(ChestManager.OnSliderValueChange);
-        ResourceManager.Get<InputField>(CanvasLabel.Yb_InputField).onValueChanged.AddListener(ChestManager.OnInputValueChange);
-
-        #region Y_Close
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.Y_Close,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.Close);
-
-                ChestManager.CloseCreateChestPanel();
-            }
-        );
-
-        #endregion
-
-        #region Yb_Toggle
-
-        ResourceManager.Get<Toggle>(CanvasLabel.Yb_Toggle0).onValueChanged.AddListener(ChestManager.OnLuckyToggle);
-        ResourceManager.Get<Toggle>(CanvasLabel.Yb_Toggle1).onValueChanged.AddListener(ChestManager.OnColorToggle);
-        ResourceManager.Get<Toggle>(CanvasLabel.Yb_Toggle2).onValueChanged.AddListener(ChestManager.OnNumberToggle);
-
-        #endregion
-
-        #region Yb_CreateChest
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.Yb_Btn,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ChestManager.CreateChest();
-            }
-        );
-
-        #endregion
-
-        #region Y_Btn
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.Y_Btn,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.Close);
-
-                PlazaRoomChest.SelectedChest.GetAward(ResourceManager.Get<InputField>(CanvasLabel.Y_InputField).text);
-            }
-        );
-
-        #endregion
-
-        #region Ya_Btn
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.Ya_Btn,
-            () =>
-            {
-                ChestManager.CloseCreateChestPanel();
-            }
-        );
-
-        #endregion
-
-        #endregion
-
-        #region Z
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Z_CreateLab), new MulLanStr(LanguageLabel.UI__Z_CreateLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Z_CloseLab), new MulLanStr(LanguageLabel.Common__Close));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Z_InfoLab0), new MulLanStr(LanguageLabel.UI__Z_InfoLab0));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Z_InfoLab1), new MulLanStr(LanguageLabel.UI__Z_InfoLab1));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Z_InfoLab2), new MulLanStr(LanguageLabel.UI__Z_InfoLab2));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Z_InfoLab3), new MulLanStr(LanguageLabel.UI__Z_InfoLab3));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Z_InfoLab4), new MulLanStr(LanguageLabel.UI__Z_InfoLab4));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Z_InfoLab5), new MulLanStr(LanguageLabel.UI__Z_InfoLab5));
-
-
-        ResourceManager.Get(CanvasLabel.Z_BK).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.Z_Tip).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        #region Z_Create
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.Z_Create,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                PlazaRoomManager.OpenCreateRoomPanel();
-            }
-        );
-
-        #endregion
-
-        #region Z_Close
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.Z_Close,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.Close);
-
-                PlazaRoomManager.CloseJoinRoomPanel();
-            }
-        );
-
-        #endregion
-
-        #region Z_InfoImg50
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.Z_InfoImg50,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                if (PlazaRoomManager.FilterFlag)
-                    PlazaRoomManager.DisableCreateByMeFilter();
-                else
-                    PlazaRoomManager.EnableCreateByMeFilter();
-            }
-        );
-
-        #endregion
-
-        #endregion
-
-        #region AA
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.AA_Lab), new MulLanStr(LanguageLabel.UI__AA_Lab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.AA_BtnLab), new MulLanStr(LanguageLabel.UI__AA_BtnLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.AAa_Tit), new MulLanStr(LanguageLabel.UI__AAa_Tit));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.AAb_Tit), new MulLanStr(LanguageLabel.UI__AAb_Tit));
-
-        ResourceManager.SetSprite(CanvasLabel.AA_InputField, ResourceManager.LoadSprite(ResourceLabel.Expression_InputField, Folder.Scene));
-
-        ResourceManager.Get(CanvasLabel.AA_Tip).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.AA_CreatePlazaRoom).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        #region AA_Close
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.AA_Close,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.Close);
-
-                PlazaRoomManager.CloseCreateRoomPanel();
-            }
-        );
-
-        #endregion
-
-        #region AA_Create
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.AA_Btn,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                PlazaRoomManager.CreateRoom();
-
-                ResourceManager.Get<InputField>(CanvasLabel.AA_InputField).text = "";
-            }
-        );
-
-        #endregion
-
-        #endregion
-
-        #region AI
-
-        AlertPanel.Init();
-
-        #endregion
-
-        ResourceManager.Get<Text>(CanvasLabel.K_Tit).resizeTextForBestFit = true;
-        ResourceManager.Get<Text>(CanvasLabel.K_Tit).resizeTextMaxSize = 21;
-
-        if (!TutorialManager.NewplayerTutorial)
-        {
-            SetEnterMinigameGameLabel();
-        }
-
-        ResourceManager.Get(CanvasLabel.C_Group).GetTweenCG().InOrigin = true;
-        ResourceManager.Get(CanvasLabel.F_Manage).GetTweenGra().InOrigin = true;
-        ResourceManager.SetActive(CanvasLabel.F_Manage, false);
-        ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec().InOrigin = true;
-    }
-
-
-    public override void TutorialToRegular()
-    {
-        SetEnterMinigameGameLabel();
-    }
-
-    public static void SetEnterMinigameGameLabel()
-    {
-        HudTarget hudTarget = ResourceManager.Get(CanvasLabel.C_MiniGame).AddComponent<HudTarget>();
-
-        hudTarget.PosTra = PlayerManager.Player.ChildDic[PlayerLabel.EnterGameTra];
-
-        hudTarget = ResourceManager.Get(CanvasLabel.C_Tip).AddComponent<HudTarget>();
-
-        hudTarget.PosTra = PlayerManager.Player.ChildDic[PlayerLabel.EnterGameTra];
-    }
-
-
-    public void LoginCallback(JsonData jsonData)
-    {
-        if (HttpManager.IsConnect)
-        {
-            ResourceManager.Get(CanvasLabel.Fg_Reconnect).TweenBacCG();
-
-            ResourceManager.Get<Button>(CanvasLabel.Fg_Btn).interactable = true;
-
-            ResourceManager.SetText(CanvasLabel.Fg_Lab, Language.GetStr(LanguageLabel.UI__Fg_Lab2));
-        }
-        else
-        {
-            ResourceManager.Get<Button>(CanvasLabel.Fg_Btn).interactable = true;
-
-            ResourceManager.SetText(CanvasLabel.Fg_Lab, Language.GetStr(LanguageLabel.UI__Fg_Lab3));
-        }
-    }
-
-
-    public static void ShowCredits()
-    {
-        ResourceManager.Get(CanvasLabel.Lc_CreditsMask).TweenForCG();
-        ResourceManager.Get(CanvasLabel.Lc_CreditsContent).TweenForCG();
-        ResourceManager.Get(CanvasLabel.Lc_CreditsContent).TweenReForVec();
-
-        StopPlayCreditsRoutine = Auxiliary.Instance.DelayCall
-        (
-            () =>
-            {
-                ResourceManager.Get(CanvasLabel.Lc_CreditsMask).TweenBacCG();
-                ResourceManager.Get(CanvasLabel.Lc_CreditsContent).TweenBacCG();
-            },
-            10f
-        );
-    }
-
-
-    public static void UpdateManagePanelHint() //侧边栏红色描边
-    {
-        if (TutorialManager.NewplayerTutorial)
-        {
-            return;
-        }
-
-
-        TweenOutline tween = ResourceManager.Get(CanvasLabel.C_Manage).GetTweenOutline();
-
-        for (int i = 0; i < Manager.SkillList.Count; i++)
-        {
-            if (Manager.SkillList[i].ItemStatus == SkillStatus.UnLock)
-            {
-                if (tween.InPause)
-                {
-                    tween.Resume();
-
-                    tween.Target.enabled = true;
-                }
-                else
-                {
-                    tween.StartForward();
-                }
-
-                return;
-            }
-        }
-
-
-        tween.Target.enabled = false;
-
-        tween.Pause();
-    }
-
-
-    public static void OpenManagePanel()
-    {
-        ResourceManager.Get(CanvasLabel.F_Manage0).TweenForVec();
-
-        AudioManager.PlayClip(AudioLabel.ClickButton);
-
-        if (TutorialManager.NewplayerTutorial)
-        {
-            return;
-        }
-
-        SkillRoot skillRoot = null;
-        ScrollRect scrollRect = null;
-        foreach (var skill in Manager.SkillList)
-        {
-            if (skill.ItemStatus == SkillStatus.UnLock)
-            {
-                skillRoot = skill;
-                break;
-            }
-        }
-
-        if (skillRoot != null)
-        {
-            MoveRoot moveRoot;
-            ResourceManager.Get<CanvasGroup>(CanvasLabel.F_Manage0).interactable = false;
-            TweenRoot tweenRoot = ResourceManager.Get(CanvasLabel.F_Manage).GetTweenGra();
-            tweenRoot.AddEventOnetime
-            (
-                EventType.ForwardFinish,
-                () =>
-                {
-                    if (skillRoot.SkillType == SkillType.Skill || skillRoot.SkillType == SkillType.BigSkill)
-                    {
-                        ResourceManager.Get<Button>(CanvasLabel.F_Garden).onClick.Invoke();
-                        DelayCall.Call
-                        (
-                            1,
-                            () =>
-                            {
-                                int index = skillRoot.SkillItem.GetSiblingIndex();
-                                scrollRect = ResourceManager.Get<ScrollRect>(CanvasLabel.Fa_Scrr);
-                                if (index < scrollRect.content.childCount - MaxSkillDisplayAmt)
-                                {
-                                    moveRoot = scrollRect.Locate(index, 0.25f, Curve.EaseOutQuad, LocatePos.Up);
-                                    moveRoot.AddEventOnetime(EventType.ForwardFinish, () => ResourceManager.Get<CanvasGroup>(CanvasLabel.F_Manage0).interactable = true);
-                                }
-                                else
-                                {
-                                    moveRoot = scrollRect.Locate(scrollRect.content.childCount - 1, 0.25f, Curve.EaseOutQuad, LocatePos.Down);
-                                    moveRoot.AddEventOnetime(EventType.ForwardFinish, () => ResourceManager.Get<CanvasGroup>(CanvasLabel.F_Manage0).interactable = true);
-                                }
-                            }
-                        );
-                    }
-                    else if (skillRoot.SkillType == SkillType.Ability)
-                    {
-                        ResourceManager.Get<Button>(CanvasLabel.F_Elf).onClick.Invoke();
-                        DelayCall.Call
-                        (
-                            1,
-                            () =>
-                            {
-                                int index = skillRoot.SkillItem.GetSiblingIndex();
-                                scrollRect = ResourceManager.Get<ScrollRect>(CanvasLabel.Fd_Scrr);
-                                if (index < scrollRect.content.childCount - MaxAbilityDisplayAmt)
-                                {
-                                    moveRoot = scrollRect.Locate(index, 0.25f, Curve.EaseOutQuad, LocatePos.Up);
-                                    moveRoot.AddEventOnetime(EventType.ForwardFinish, () => ResourceManager.Get<CanvasGroup>(CanvasLabel.F_Manage0).interactable = true);
-                                }
-                                else
-                                {
-                                    moveRoot = scrollRect.Locate(scrollRect.content.childCount - 1, 0.25f, Curve.EaseOutQuad, LocatePos.Down);
-                                    moveRoot.AddEventOnetime(EventType.ForwardFinish, () => ResourceManager.Get<CanvasGroup>(CanvasLabel.F_Manage0).interactable = true);
-                                }
-                            }
-                        );
-                    }
-                    else
-                    {
-                        ResourceManager.Get<CanvasGroup>(CanvasLabel.F_Manage0).interactable = true;
-                        throw new Exception();
-                    }
-                }
-            );
-        }
-    }
-
-
-    public static void NavigateToBuyCoin()
-    {
-        ResourceManager.Get<Button>(CanvasLabel.F_Magic).onClick.Invoke();
-
-        Auxiliary.Instance.DelayCall
-            (
-                () =>
-                {
-                    int index = ResourceManager.Get(CanvasLabel.Fb_Grid).childCount - 1;
-
-                    ResourceManager.Get<ScrollRect>(CanvasLabel.Fb_Scrr).Locate(index, 0.25f, Curve.EaseOutQuad, LocatePos.Down);
-                },
-                1
-            );
-    }
-
-    public static void NavigateToBuyDiamond()
-    {
-        ResourceManager.Get<Button>(CanvasLabel.F_Store).onClick.Invoke();
-
-        Auxiliary.Instance.DelayCall
-        (
-            () =>
-            {
-                int index = ResourceManager.Get(CanvasLabel.Fc_Grid).childCount - 1;
-
-                ResourceManager.Get<ScrollRect>(CanvasLabel.Fc_Scrr).Locate(index, 0.25f, Curve.EaseOutQuad, LocatePos.Down);
-            },
-            1
-        );
-    }
-
-
-    private static void OpenExpressionGrid()
-    {
-        ResourceManager.SetActive(CanvasLabel.X_GridBK, true);
-        ResourceManager.SetActive(CanvasLabel.X_Mask, true);
-        ResourceManager.SetActive(CanvasLabel.X_InfoParent, false);
-    }
-
-    private static void CloseExpressionGrid()
-    {
-        ResourceManager.SetActive(CanvasLabel.X_GridBK, false);
-        ResourceManager.SetActive(CanvasLabel.X_Mask, false);
-        ResourceManager.SetActive(CanvasLabel.X_InfoParent, true);
-    }
-
-
-    public static void BlockOfflinePanel()
-    {
-        ResourceManager.Get(CanvasLabel.B_SignIn0).TweenBacCG();
-        ResourceManager.Get(CanvasLabel.T_NickName).TweenBacCG();
-        ResourceManager.Get(CanvasLabel.R_Notify0).TweenBacCG();
-    }
-
-    public static void UnblockOfflinePanel()
-    {
-        ResourceManager.Get(CanvasLabel.B_SignIn0).TweenForCG();
-        ResourceManager.Get(CanvasLabel.T_NickName).TweenForCG();
-        ResourceManager.Get(CanvasLabel.R_Notify0).TweenForCG();
-    }
-
-
-    private static void ShareScreenShot()
-    {
-        float scaleFactor = ResourceManager.Get<Canvas>(CanvasLabel.Canvas).scaleFactor;
-        RectTransform rectTransform = ResourceManager.Get<RectTransform>(CanvasLabel.P_ScreenShotRect);
-        int width = (int) (rectTransform.rect.width*scaleFactor);
-        int height = (int) (rectTransform.rect.height*scaleFactor);
-        Vector2 screenPosition = RectTransformUtility.WorldToScreenPoint(null, rectTransform.position);
-
-        Texture2D texture2D = new Texture2D(width, height, TextureFormat.RGBA32, false);
-        texture2D.ReadPixels(new Rect(screenPosition.x, screenPosition.y, width, height), 0, 0);
-        texture2D.Apply();
-
-        string screenShotPath = string.Format("{0}/MyLovelyGarden.png", Application.persistentDataPath);
-        File.WriteAllBytes(screenShotPath, texture2D.EncodeToPNG());
-
-        IAPManager.Share(screenShotPath, Language.GetStr(LanguageLabel.Common__ScreenShotShareContent));
-
-        DelayCall.Call
-        (
-            1,
-            () =>
-            {
-                ResourceManager.SetActive(CanvasLabel.P_Open, true);
-                ResourceManager.SetActive(CanvasLabel.P_Share, true);
-            }
-        );
-    }
-
-
-    private static void OnLanguageChange(CurrentLanguage fromLanguage, CurrentLanguage toLanguage)
-    {
-        if (toLanguage == CurrentLanguage.ChineseSimplified)
-        {
-            ResourceManager.SetActive(CanvasLabel.C_WelcomeIcon, false);
-            ResourceManager.SetActive(CanvasLabel.C_HeartIcon, true);
-        }
-        else
-        {
-            ResourceManager.SetActive(CanvasLabel.C_WelcomeIcon, true);
-            ResourceManager.SetActive(CanvasLabel.C_HeartIcon, false);
-        }
-    }
+using LitJson;
+
+using UnityEngine;
+using UnityEngine.UI;
+using UnityEngine.Events;
+using UnityEngine.EventSystems;
+
+using System;
+using System.Xml;
+using System.Collections;
+using System.Collections.Generic;
+using System.IO;
+using System.Text;
+using repeatCallUtility;
+using Sfs2X.Entities.Data;
+using Random = UnityEngine.Random;
+
+public class UIManager : Regist
+{
+    #region Config
+
+    public static bool Initd;
+
+    private static int MaxSkillIconForIncomeDetailPanel = 4;
+    private static int MaxSkillDisplayAmt = 2;
+    private static int MaxAbilityDisplayAmt = 3;
+    private static int MinigameDisplayCoinAwardRatio = 10;
+    private static int MinigameDisplayDiamondAward = 10;
+
+    public static Transform Canvas;
+    public static Transform Camera;
+    public static Transform EventSystem;
+    public static Coroutine StopPlayCreditsRoutine;
+
+    public static UIManager Instance;
+
+    #endregion
+
+
+    public static void Init(bool debugMode)
+    {
+        if (Initd)
+        {
+            return;
+        }
+
+        if (Bundle.UI == null && !debugMode)
+        {
+            return;
+        }
+
+        Transform tra = new GameObject(ResourceLabel.UI).transform;
+
+        tra.parent = Instance.transform;
+
+        Canvas = ResourceManager.Get(ResourceLabel.Canvas, Folder.UI, true, tra, false, ObjType.Canvas);
+        Camera = ResourceManager.Get(ResourceLabel.MainCamera, Folder.UI, true, tra, false, ObjType.MainCamera);
+        EventSystem = ResourceManager.Get(ResourceLabel.EventSystem, Folder.UI, false, tra, false, ObjType.EventSystem);
+
+        ResourceManager.SetActive(CanvasLabel.C_Main, true);
+        ResourceManager.SetActive(CanvasLabel.U_LoadingPanel, true);
+
+        #region WarningText
+
+        if (Initializer.Instance.DebugMode == false)
+        {
+            XmlDocument document = new XmlDocument();
+            TextAsset textAsset = Bundle.Defaul.LoadAsset<TextAsset>(ResourceLabel.DefaultEnglish);
+            document.LoadXml(textAsset.text);
+            Language.AddLanguageDocument(CurrentLanguage.English, document);
+
+            document = new XmlDocument();
+            textAsset = Bundle.Defaul.LoadAsset<TextAsset>(ResourceLabel.DefaultChineseSimplified);
+            document.LoadXml(textAsset.text);
+            Language.AddLanguageDocument(CurrentLanguage.ChineseSimplified, document);
+
+            document = new XmlDocument();
+            textAsset = Bundle.Defaul.LoadAsset<TextAsset>(ResourceLabel.DefaultChineseTraditional);
+            document.LoadXml(textAsset.text);
+            Language.AddLanguageDocument(CurrentLanguage.ChineseTraditional, document);
+
+            Initializer.SetWarningText();
+        }
+
+        #endregion
+
+        #region 
+
+        ResourceManager.Get(CanvasLabel.K_Bubble).AddScript<Bubble>();
+
+        #endregion
+
+        Initd = true;
+    }
+
+
+    public override bool InitAtOnce()
+    {
+        if (base.InitAtOnce())
+        {
+            return true;
+        }
+
+        Instance = this;
+
+        return false;
+    }
+
+
+    public override void FirstInit()
+    {
+        Instance = this;
+
+        ResourceManager.Get(CanvasLabel.Canvas).CreateTweenCG(1, 0, 0.25f, true, true, Curve.EaseOutQuad);
+
+        #region B
+
+        ResourceManager.SetSprite(CanvasLabel.Ba_Icon, Lib.BigGoldSprite);
+        ResourceManager.SetSprite(CanvasLabel.Bb_IconB, Lib.BigGoldSprite);
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Ba_Lab), new MulLanStr(LanguageLabel.UI__Ba_Lab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Ba_ConfirmLab), new MulLanStr(LanguageLabel.UI__Ba_ConfirmLab));
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Bb_Title), new MulLanStr(LanguageLabel.UI__Bb_Title));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Bb_GetLab), new MulLanStr(LanguageLabel.UI__Bb_GetLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Bb_ConfirmLab), new MulLanStr(LanguageLabel.UI__Bb_ConfirmLab));
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Bc_Lab), new MulLanStr(LanguageLabel.UI__Bc_Lab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Bc_ConfirmLab), new MulLanStr(LanguageLabel.UI__Bc_ConfirmLab));
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Bd_GetLab), new MulLanStr(LanguageLabel.UI__Bd_GetLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Bd_Title), new MulLanStr(LanguageLabel.UI__Bd_Title));
+
+        #region B_SignIn
+
+        TweenRoot tween = ResourceManager.Get(CanvasLabel.B_SignIn).CreateTweenCG(0f, 1f, 0.5f, false, true, Curve.EaseOutQuad);
+
+        tween.OnForwardStart += () =>
+        {
+            ResourceManager.Get(CanvasLabel.C_Group0).TweenBacCG();
+        };
+
+        tween.OnBackwardFinish += () =>
+        {
+            ResourceManager.Get(CanvasLabel.C_Group0).TweenForCG();
+            ResourceManager.Get(CanvasLabel.C_Group).GetTweenCG().InOrigin = true;
+        };
+
+        #endregion
+
+        #region B_SignIn0
+
+        ResourceManager.Get(CanvasLabel.B_SignIn0).CreateTweenCG(0f, 1f, 0.5f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+
+        #region Ba_Notice
+
+        ResourceManager.Get(CanvasLabel.Ba_Notice).CreateTweenCG(0f, 1f, 0.5f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.Ba_Notice0).CreateTweenCG(0f, 1f, 0.5f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region Ba_Confirm
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Ba_Confirm,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.GetCurrent);
+
+                ResourceManager.Get(CanvasLabel.Ba_Notice).TweenBacCG();
+
+                Manager.OfflineFlag = false;
+
+                if (!SignManager.ShowPanels())
+                {
+                    ResourceManager.Get(CanvasLabel.B_SignIn).TweenBacCG();
+                }
+            }
+        );
+
+        #endregion
+
+
+        #region Bb_Get
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Bb_Get,
+            () =>
+            {
+                SignManager.GetSignAward();
+            }
+        );
+
+        #endregion
+
+        #region Bb_SignIn
+
+        tween = ResourceManager.Get(CanvasLabel.Bb_SignIn).CreateTweenCG(0f, 1f, 0.5f, false, true, Curve.EaseOutQuad);
+
+        tween.OnForwardStart += () =>
+        {
+            ResourceManager.SetActive(CanvasLabel.Bb_Get, true);
+            ResourceManager.SetActive(CanvasLabel.Bb_IconB, false);
+            ResourceManager.SetActive(CanvasLabel.Bb_IconA, false);
+            ResourceManager.SetActive(CanvasLabel.Bb_Rotate, false);
+            ResourceManager.SetActive(CanvasLabel.Bb_Confirm, false);
+        };
+
+        #endregion
+
+        #region Bb_Confirm
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Bb_Confirm,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.Get(CanvasLabel.B_SignIn).TweenBacCG();
+                ResourceManager.Get(CanvasLabel.Bb_SignIn).TweenBacCG();
+
+                SignManager.ShowPanels();
+            }
+        );
+
+        #endregion
+
+
+        #region Bc_Lottery
+
+        ResourceManager.Get(CanvasLabel.Bc_Lab).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.Bc_Lottery).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.Bc_Confirm).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        ResourceManager.Get(CanvasLabel.Bc_LotteryItem1).CreateTweenEuler(new Vector3(0, 180, 0), 0.25f, false, true, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.Bc_LotteryItem2).CreateTweenEuler(new Vector3(0, 180, 0), 0.25f, false, true, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.Bc_LotteryItem3).CreateTweenEuler(new Vector3(0, 180, 0), 0.25f, false, true, true, Curve.EaseOutQuad);
+
+        tween = ResourceManager.Get(CanvasLabel.Bc_LotteryBK12).CreateTweenGra(new Color(242/255f, 255/255f, 142/255f, 180/255f), 1, true, true, Curve.EaseOutQuad);
+
+        tween.PingPong = true;
+        tween.StartForward();
+
+        tween = ResourceManager.Get(CanvasLabel.Bc_LotteryBK22).CreateTweenGra(new Color(242/255f, 255/255f, 142/255f, 180/255f), 1, true, true, Curve.EaseOutQuad);
+
+        tween.PingPong = true;
+        tween.StartForward();
+
+        tween = ResourceManager.Get(CanvasLabel.Bc_LotteryBK32).CreateTweenGra(new Color(242/255f, 255/255f, 142/255f, 180/255f), 1, true, true, Curve.EaseOutQuad);
+
+        tween.PingPong = true;
+        tween.StartForward();
+
+        ResourceManager.SetButtonEvent(CanvasLabel.Bc_Confirm, Lottery.EndAnimation);
+
+        #endregion
+
+
+        #region Bd_Get
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Bd_Get,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                int childCount = ResourceManager.Get(CanvasLabel.Bd_Grid).childCount;
+                for (int i = 0; i < childCount; i++)
+                {
+                    ResourceManager.Save(ResourceManager.Get(CanvasLabel.Bd_Grid).GetChild(0));
+                }
+
+                if (HttpManager.MailRewardList.Count == 0 && HttpManager.BroadcastMailRewardList.Count == 0)
+                {
+                    ResourceManager.Get(CanvasLabel.Bd_Mail0).TweenBacCG();
+                }
+
+                if (!SignManager.ShowPanels())
+                {
+                    ResourceManager.Get(CanvasLabel.B_SignIn).TweenBacCG();
+                }
+            }
+        );
+
+        #endregion
+
+        #region Bd_Mail0
+
+        TweenRoot tweenRoot9 = ResourceManager.Get(CanvasLabel.Bd_Mail0).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        tweenRoot9.OnBackwardFinish = () =>
+        {
+            for (int i = 0; i < ResourceManager.Get(CanvasLabel.Bd_Grid).childCount; i++)
+            {
+                ResourceManager.Save(ResourceManager.Get(CanvasLabel.Bd_Grid).GetChild(i--));
+            }
+        };
+
+        #endregion
+
+        #endregion
+
+        #region C
+
+        ResourceManager.SetSprite(CanvasLabel.C_Coin, ResourceManager.LoadSprite(ResourceLabel.Gold, Folder.Atlas));
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.C_MiniGameLab), new MulLanStr(LanguageLabel.UI__C_MiniGameLab));
+
+        #region C_Main
+
+        ResourceManager.Get(CanvasLabel.C_Main).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region C_Main2
+
+        ResourceManager.Get(CanvasLabel.C_Main2).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region C_Group
+
+        ResourceManager.Get(CanvasLabel.C_Group).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        ResourceManager.Get(CanvasLabel.C_Group0).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region C_Setting
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.C_Setting,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.Get(CanvasLabel.L_Setting).TweenForCG();
+            }
+        );
+
+        #endregion
+
+        #region C_Achieve
+
+        tween = AnimManager.CreateTweenOutline(ResourceManager.Get(CanvasLabel.C_Achieve), 0, 201/255f, 1f, true, true, Curve.EaseOutQuad);
+
+        tween.PingPong = true;
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.C_Achieve,
+            () =>
+            {
+                AchieveManager.OpenAchievePanel();
+            }
+        );
+
+        #endregion
+
+        #region C_Manage
+
+        tween = AnimManager.CreateTweenOutline(ResourceManager.Get(CanvasLabel.C_Manage), 0, 201/255f, 1f, true, true, Curve.EaseOutQuad);
+
+        tween.PingPong = true;
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.C_Manage,
+            () =>
+            {
+                OpenManagePanel();
+            }
+        );
+
+        #endregion
+
+        #region C_MiniGame
+
+        Vector3 big = ResourceManager.Get<RectTransform>(CanvasLabel.C_MiniGame).sizeDelta;
+        Vector3 small = big*0.5f;
+
+        TweenRoot tweenRoot = ResourceManager.Get(CanvasLabel.C_MiniGame).CreateTweenRect(big, small, 1f, true, true, Curve.EaseOutQuad, true);
+
+        tweenRoot.OnForwardStart = () =>
+        {
+            TweenOutline tweenOutline = ResourceManager.Get(CanvasLabel.C_MiniGame).GetTweenOutline();
+
+            tweenOutline.PingPong = false;
+            tweenOutline.StartBackward();
+        };
+
+        tweenRoot.OnForwardFinish = () =>
+        {
+            TweenOutline tweenOutline = ResourceManager.Get(CanvasLabel.C_MiniGame).GetTweenOutline();
+
+            tweenOutline.Target.enabled = false;
+
+            //ResourceManager.Get<Button>(ObjectLabel.C_MiniGame).interactable = false;
+        };
+
+        tweenRoot.OnBackwardFinish = () =>
+        {
+            TweenOutline tweenOutline = ResourceManager.Get(CanvasLabel.C_MiniGame).GetTweenOutline();
+
+            tweenOutline.Resume();
+            tweenOutline.StartForward();
+
+            tweenOutline.PingPong = true;
+            tweenOutline.Target.enabled = true;
+
+            LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.C_MiniGameLab), new MulLanStr(LanguageLabel.UI__C_MiniGameLab));
+
+            //ResourceManager.Get<Button>(ObjectLabel.C_MiniGame).interactable = true;
+        };
+
+
+        tweenRoot = ResourceManager.Get(CanvasLabel.C_MiniGame).CreateTweenOutline(0, 180/255f, 1f, true, true, Curve.EaseOutQuad);
+
+        tweenRoot.PingPong = true;
+
+        tweenRoot.StartBackward();
+
+
+        ResourceManager.Get(CanvasLabel.C_MiniGame).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.C_MiniGame,
+            () =>
+            {
+                if (Manager.MinigameCDTimer <= 0)
+                {
+                    EnterMinigamePanelManager.TryOpenPanel();
+                }
+                else
+                {
+                    CDMinigamePanelManager.OpenPanel();
+                    AudioManager.PlayClip(AudioLabel.Bubble);
+                }
+            }
+        );
+
+        #endregion
+
+        #region C_IncomeLab
+
+        ResourceManager.Get(CanvasLabel.C_IncomeLab).CreateTweenGra(1, 0, 2, true, false, Curve.EaseOutQuad);
+
+        ResourceManager.Get(CanvasLabel.C_IncomeLab).CreateTweenVec2D(ResourceManager.Get(CanvasLabel.C_Pos).position, 2, false, true, false, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region C_DressRoom
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.C_DressRoom,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                if (Manager.GardenLevel < 13)
+                {
+                    Toast.Show(1.5f, Language.GetStr(LanguageLabel.UI__C_DressRoom));
+                }
+                else
+                {
+                    ResourceManager.Get(CanvasLabel.I_BlackMask).GetTweenCG().Duration = 0.5f;
+
+                    PlayerManager.Player.EnterDressRoom();
+                }
+            }
+        );
+
+        #endregion
+
+
+        #region C_AddFriendButton
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.C_AddFriendButton,
+            () =>
+            {
+                HttpManager.ApplyBuddy
+                (
+                    VisitManager.VisiteeSerialNumber,
+                    () =>
+                    {
+                        Bubble.Show(null, Language.GetStr(LanguageLabel.UI__AG_SendApplySucceed));
+                        ResourceManager.SetActive(CanvasLabel.C_AddFriendButton, false);
+                    },
+                    () =>
+                    {
+                        Bubble.Show(null, Language.GetStr(LanguageLabel.UI__AG_ConnectError));
+                    }
+                );
+            }
+        );
+
+        #endregion
+
+        #region C_Visit
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.C_Visit,
+            () =>
+            {
+                VisitManager.Visit(ConfigSource.Random);
+            }
+        );
+
+        #endregion
+
+        #region C_Praise
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.C_Praise,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                SocialManager.Praise();
+            }
+        );
+
+        #endregion
+
+        #region C_Notify
+
+        ResourceManager.Get(CanvasLabel.C_Notify).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.C_Notify,
+            () =>
+            {
+                AnnounceManager.ShowAnnouncePanel();
+            }
+        );
+
+        #endregion
+
+        #region C_Rank
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.C_Rank,
+            () =>
+            {
+                SocialManager.OpenRankPanel();
+            }
+        );
+
+        #endregion
+
+        #region C_Comment
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.C_Comment,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                SocialManager.OpenCommentPanel();
+            }
+        );
+
+        #endregion
+
+        #region C_Return
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.C_Return,
+            () =>
+            {
+                ResourceManager.SetActive(CanvasLabel.C_Visit, false);
+                ResourceManager.SetActive(CanvasLabel.C_Return, false);
+                ResourceManager.SetActive(CanvasLabel.C_AddFriendButton, false);
+
+                tween = ResourceManager.Get(CanvasLabel.I_BlackMask).GetTweenCG();
+
+                tween.Duration = 0.5f;
+                tween.StartBackward();
+
+                tween.AddEventOnetime
+                (
+                    EventType.BackwardFinish,
+                    () =>
+                    {
+                        VisitManager.StartExitVisiteeGarden();
+                        VisitManager.OnStartExitVisiteeGarden();
+                    }
+                );
+
+                AudioManager.PlayClip(AudioLabel.Bubble);
+            }
+        );
+
+        #endregion
+
+        #region C_EnterPlazaRoom
+
+        LanguageManager.OnLanguageChange += OnLanguageChange;
+        OnLanguageChange(CurrentLanguage.Default, LanguageManager.CurrentLanguage);
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.C_EnterPlazaRoom,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                PlazaRoomManager.OpenJoinRoomPanel();
+            }
+        );
+
+        #endregion
+
+        #region C_NickNameBK
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.C_NickNameBK,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+                NickNameManager.ShowNickNameSettingPanel();
+            }
+        );
+
+        #endregion
+
+        #region C_CommentParent
+
+        ResourceManager.Get(CanvasLabel.C_CommentParent).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region C_RightPanel
+
+        ResourceManager.Get(CanvasLabel.C_RightSidePanel).CreateTweenVec2D(ResourceManager.Get(CanvasLabel.C_RightSidePanelPosition).position, 0.25f, false, true, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.C_RightSidePanelGroup).CreateTweenCG(0, 0.25f, true, true, Curve.EaseOutQuad);
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.C_OpenSidePanelButton, () =>
+            {
+                AudioManager.PlayClip(ResourceLabel.BtnClip);
+                ResourceManager.Get(CanvasLabel.C_RightSidePanel).TweenBacVec();
+                ResourceManager.Get(CanvasLabel.C_RightSidePanelGroup).TweenBacCG();
+                ResourceManager.SetActive(CanvasLabel.C_CloseSidePanelButton, true);
+                ResourceManager.SetActive(CanvasLabel.C_OpenSidePanelButton, false);
+            }
+        );
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.C_CloseSidePanelButton, () =>
+            {
+                AudioManager.PlayClip(ResourceLabel.BtnClip);
+                ResourceManager.Get(CanvasLabel.C_RightSidePanel).TweenForVec();
+                ResourceManager.Get(CanvasLabel.C_RightSidePanelGroup).TweenForCG();
+                ResourceManager.SetActive(CanvasLabel.C_CloseSidePanelButton, false);
+                ResourceManager.SetActive(CanvasLabel.C_OpenSidePanelButton, true);
+            }
+        );
+
+        #endregion
+
+        #endregion
+
+        #region D
+
+        ResourceManager.SetText(CanvasLabel.D_ScoreLab);
+        ResourceManager.SetText(CanvasLabel.D_BeginLab, Language.GetStr(LanguageLabel.UI__D_BeginLab0));
+        ResourceManager.SetText(CanvasLabel.D_StatusLab, Language.GetStr(LanguageLabel.UI__D_StatusLab0));
+
+        ResourceManager.SetSprite(CanvasLabel.D_Rip2, ResourceManager.LoadSprite(ResourceLabel.Rip, Folder.Scene));
+        ResourceManager.SetSprite(CanvasLabel.D_Water2, ResourceManager.LoadSprite(ResourceLabel.Water, Folder.Scene));
+        ResourceManager.SetSprite(CanvasLabel.D_Fertilize2, ResourceManager.LoadSprite(ResourceLabel.Fertilize, Folder.Scene));
+
+        ResourceManager.SetSprite(CanvasLabel.Da_Coin, ResourceManager.LoadSprite(ResourceLabel.Gold, Folder.Atlas));
+        ResourceManager.SetSprite(CanvasLabel.Da_Star1, ResourceManager.LoadSprite(ResourceLabel.MinigameRateStar, Folder.Scene));
+        ResourceManager.SetSprite(CanvasLabel.Da_Star2, ResourceManager.LoadSprite(ResourceLabel.MinigameRateStar, Folder.Scene));
+        ResourceManager.SetSprite(CanvasLabel.Da_Star3, ResourceManager.LoadSprite(ResourceLabel.MinigameRateStar, Folder.Scene));
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.D_DescA), new MulLanStr(LanguageLabel.UI__D_DescA));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.D_DescB), new MulLanStr(LanguageLabel.UI__D_DescB));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.D_DescC), new MulLanStr(LanguageLabel.UI__D_DescC));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.D_FindMissingGameDesc), new MulLanStr(LanguageLabel.UI__D_FindMissingGameDesc));
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Da_Lab), new MulLanStr(LanguageLabel.UI__Da_Lab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Da_QuitLab), new MulLanStr(LanguageLabel.UI__Da_QuitLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Da_ScoreTit), new MulLanStr(LanguageLabel.UI__Da_ScoreTit));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Da_CancelLab), new MulLanStr(LanguageLabel.UI__Da_CancelLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Da_GetAwardLab), new MulLanStr(LanguageLabel.UI__Da_GetAwardLab));
+
+        #region D_Rip
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.D_Rip2,
+            () =>
+            {
+                MiniGameManager.OnPunchGameClick(OpType.Rip);
+            }
+        );
+
+        tween = ResourceManager.Get(CanvasLabel.D_Rip2).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.2f, 1.2f, 1.2f), 0.1f, true, true, Curve.EaseOutQuad);
+
+        tween.OnForwardFinish += () =>
+        {
+            ResourceManager.Get(CanvasLabel.D_Rip2).TweenBacScale();
+        };
+
+        #endregion
+
+        #region D_Quit
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.D_Quit,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.Close);
+
+                MiniGameManager.Pause = true;
+
+                ResourceManager.Get(CanvasLabel.Da_Info).TweenForCG();
+
+                ResourceManager.Get(CanvasLabel.Da_CoinGroup).GetTweenScale().InDestination = true;
+                ResourceManager.Get(CanvasLabel.Da_DiamondGroup).GetTweenScale().InDestination = true;
+
+                ResourceManager.SetText(CanvasLabel.Da_Tit, Language.GetStr(LanguageLabel.UI__Da_Tit0));
+                ResourceManager.SetText(CanvasLabel.Da_CoinLab, string.Format("{0}+", MinigameDisplayCoinAwardRatio*Manager.GardenLevel));
+                ResourceManager.SetText(CanvasLabel.Da_DiamondLab, string.Format("{0}+", MinigameDisplayDiamondAward));
+
+                ResourceManager.SetActive(CanvasLabel.Da_Lab, true);
+                ResourceManager.SetActive(CanvasLabel.Da_Quit, true);
+                ResourceManager.SetActive(CanvasLabel.Da_Cancel, true);
+                ResourceManager.SetActive(CanvasLabel.Da_CoinLab, true);
+                ResourceManager.SetActive(CanvasLabel.Da_DiamondLab, true);
+
+                ResourceManager.SetActive(CanvasLabel.Da_HGroup1, false);
+                ResourceManager.SetActive(CanvasLabel.Da_ScoreTit, false);
+                ResourceManager.SetActive(CanvasLabel.Da_GetAward, false);
+                ResourceManager.SetActive(CanvasLabel.Da_FlowerGroup, false);
+                ResourceManager.SetActive(CanvasLabel.Da_DiamondGroup, true);
+
+                ResourceManager.Get<Text>(CanvasLabel.Da_CoinLab).Resize(true, false);
+                ResourceManager.Get<Text>(CanvasLabel.Da_DiamondLab).Resize(true, false);
+
+                ResourceManager.Get<ContentSizeFitter>(CanvasLabel.Da_CoinGroup).enabled = true;
+                ResourceManager.Get<ContentSizeFitter>(CanvasLabel.Da_DiamondGroup).enabled = true;
+
+                if (!MinigameAward.HaveNewFlowerFlag)
+                {
+                    ResourceManager.Get(CanvasLabel.Da_FlowerGroup).GetTweenScale().InDestination = true;
+
+                    FlowerInfo flowerInfo = GardenManager.GetFlowerInfo(MinigameAward.UnlockFlowerID);
+
+                    ResourceManager.SetActive(CanvasLabel.Da_Flower, true);
+
+                    ResourceManager.Get<Image>(CanvasLabel.Da_FlowerIcon).sprite = flowerInfo.Icon;
+                    ResourceManager.Get<Image>(CanvasLabel.Da_FlowerIcon).Resize(true, 0.25f, 0.25f);
+
+                    ResourceManager.SetText(CanvasLabel.Da_FlowerLab, Language.GetStr(LanguageLabel.CombineLanguageLabel(LanguageLabel.FlowerName, flowerInfo.FullID)));
+
+                    Auxiliary.Instance.DelayCall
+                    (
+                        () =>
+                        {
+                            ResourceManager.Get<Text>(CanvasLabel.Da_FlowerLab).SetLayoutDirty();
+                        },
+                        2
+                    );
+                }
+            }
+        );
+
+        #endregion
+
+        #region D_Begin
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.D_Begin,
+            () =>
+            {
+                MiniGameManager.GamePrepare();
+
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+            }
+        );
+
+        #endregion
+
+        #region D_Water
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.D_Water2,
+            () =>
+            {
+                MiniGameManager.OnPunchGameClick(OpType.Water);
+            }
+        );
+
+        tween = ResourceManager.Get(CanvasLabel.D_Water2).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.2f, 1.2f, 1.2f), 0.1f, true, true, Curve.EaseOutQuad);
+
+        tween.OnForwardFinish += () =>
+        {
+            ResourceManager.Get(CanvasLabel.D_Water2).TweenBacScale();
+        };
+
+        #endregion
+
+        #region D_Fertilize
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.D_Fertilize2,
+
+            () =>
+            {
+                MiniGameManager.OnPunchGameClick(OpType.Fertilize);
+            }
+        );
+
+        tween = ResourceManager.Get(CanvasLabel.D_Fertilize2).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.2f, 1.2f, 1.2f), 0.1f, true, true, Curve.EaseOutQuad);
+
+        tween.OnForwardFinish += () =>
+        {
+            ResourceManager.Get(CanvasLabel.D_Fertilize2).TweenBacScale();
+        };
+
+        #endregion
+
+        #region D_TimerIcon
+
+        ResourceManager.Get<Image>(CanvasLabel.D_TimerIcon).material = ResourceManager.Load<Material>(ResourceLabel.TimerMat, Folder.UI);
+
+        #endregion
+
+        #region D_MiniGame
+
+        tween = ResourceManager.Get(CanvasLabel.D_MiniGame).CreateTweenCG(0, 1, 0.5f, false, true, Curve.EaseOutQuad);
+
+        tween.OnForwardStart += () =>
+        {
+            ResourceManager.Get(CanvasLabel.C_Main).TweenBacCG();
+
+            AudioManager.GardenThemeAudio.TweenBacAudio();
+
+            ResourceManager.SetText(CanvasLabel.D_ScoreLab);
+            ResourceManager.SetText(CanvasLabel.D_BeginLab, Language.GetStr(LanguageLabel.UI__D_BeginLab0));
+            ResourceManager.SetText(CanvasLabel.D_StatusLab, Language.GetStr(LanguageLabel.UI__D_StatusLab0));
+
+            GardenManager.InMinigameFlag = false;
+        };
+
+        tween.OnForwardFinish += () =>
+        {
+            AudioManager.MinigameAudio.TweenForAudio();
+
+            ResourceManager.SetActive(GardenLabel.GardenPivot, false);
+
+            GardenManager.RetrieveAllElf();
+            IAPManager.RetrieveADChest();
+        };
+
+        tween.OnBackwardStart += () =>
+        {
+            AudioManager.MinigameAudio.TweenBacAudio();
+
+            ResourceManager.SetActive(GardenLabel.GardenPivot, true);
+        };
+
+        tween.OnBackwardFinish += () =>
+        {
+            ResourceManager.Get(CanvasLabel.C_Main).TweenForCG();
+            ResourceManager.Get(CanvasLabel.C_Group).GetTweenCG().InOrigin = true;
+
+            AudioManager.GardenThemeAudio.TweenForAudio();
+
+            GardenManager.InMinigameFlag = true;
+
+            #region PunchGame
+
+            if (MiniGameManager.miniGameType == MiniGameType.Punch)
+            {
+                for (int i = 0; i < MiniGameManager.PunchGameOperateList.Count; i++)
+                {
+                    MiniGameManager.PunchGameOperateList[i].RetrieveFlower();
+
+                    MiniGameManager.PunchGameOperateList.RemoveAt(i--);
+                }
+
+                for (int i = 0; i < MiniGameManager.MinigameIdleFlowerList.Count; i++)
+                {
+                    MiniGameManager.MinigameIdleFlowerList[i].RetrieveFlower();
+
+                    MiniGameManager.MinigameIdleFlowerList.RemoveAt(i--);
+                }
+            }
+
+            #endregion
+
+            #region MemoryGame
+
+            if (MiniGameManager.miniGameType == MiniGameType.Memory)
+            {
+                for (int i = 0; i < MiniGameManager.MemoryGameFadeList.Count; i++)
+                {
+                    MiniGameManager.MemoryGameFadeList[i].FlowerIcon.GetTweenSr().InOrigin = true;
+
+                    MiniGameManager.MemoryGameFadeList[i].RetrieveFlower();
+
+                    MiniGameManager.MemoryGameFadeList.RemoveAt(i--);
+                }
+
+                for (int i = 0; i < MiniGameManager.MinigameIdleFlowerList.Count; i++)
+                {
+                    MiniGameManager.MinigameIdleFlowerList[i].RetrieveFlower();
+
+                    MiniGameManager.MinigameIdleFlowerList.RemoveAt(i--);
+                }
+            }
+
+            #endregion
+
+            #region FindSoloGame 
+
+            if (MiniGameManager.miniGameType == MiniGameType.FindSolo)
+            {
+                MiniGameManager.MinigameIdleFlowerList.ForEach
+                (
+                    flower =>
+                    {
+                        flower.FlowerIcon.GetTweenSr().InOrigin = true;
+
+                        flower.RetrieveFlower();
+                    },
+                    true
+                );
+            }
+
+            #endregion
+
+            #region FindMissingGame 
+
+            if (MiniGameManager.miniGameType == MiniGameType.FindMissing)
+            {
+                MiniGameManager.MinigameIdleFlowerList.ForEach
+                (
+                    flower =>
+                    {
+                        flower.FlowerIcon.GetTweenSr().InOrigin = true;
+
+                        flower.RetrieveFlower();
+                    },
+                    true
+                );
+            }
+
+            #endregion
+        };
+
+        #endregion
+
+        #region D_PrepareLab
+
+        Text text = ResourceManager.Get<Text>(CanvasLabel.D_PrepareLab);
+
+        ResourceManager.Get(CanvasLabel.D_PrepareLab).CreateStreamScale
+        (
+            new List<float>() {0.5f, 0, 0.5f, 0, 0.5f, 0, 0.5f},
+            new List<float>() {0.25f, 0.25f, 0.25f, 0.25f, 0.25f, 0.25f, 0.25f, 0.125f},
+            new List<VecPair>() {new VecPair(2, 2, 2, 1, 1, 1), new VecPair(1, 1, 1, 0, 0, 0), new VecPair(2, 2, 2, 1, 1, 1), new VecPair(1, 1, 1, 0, 0, 0), new VecPair(2, 2, 2, 1, 1, 1), new VecPair(1, 1, 1, 0, 0, 0), new VecPair(0, 0, 0, 1, 1, 1), new VecPair(1, 1, 1, 1.5f, 0, 1)},
+            false,
+            false,
+            Curve.EaseOutQuad,
+            false,
+            new List<UnityAction>()
+            {
+                () =>
+                {
+                    text.text = "3";
+                    AudioManager.PlayClip(AudioLabel.Bubble);
+                },
+                () => { },
+                () =>
+                {
+                    text.text = "2";
+                    ;
+                    AudioManager.PlayClip(AudioLabel.Bubble);
+                },
+                () => { },
+                () =>
+                {
+                    text.text = "1";
+                    ;
+                    AudioManager.PlayClip(AudioLabel.Bubble);
+                },
+                () => { },
+                () =>
+                {
+                    text.text = Language.GetStr(LanguageLabel.UI__D_PrepareLab);
+                    AudioManager.PlayClip(AudioLabel.GetCurrent);
+                },
+                () => { },
+            }
+        );
+
+        #endregion
+
+
+        #region Da_Star
+
+        ResourceManager.Get(CanvasLabel.Da_Star1).CreateTweenScale(new Vector3(), new Vector3(1, 1, 1), 0.25f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.Da_Star2).CreateTweenScale(new Vector3(), new Vector3(1, 1, 1), 0.25f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.Da_Star3).CreateTweenScale(new Vector3(), new Vector3(1, 1, 1), 0.25f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region Da_Info
+
+        ResourceManager.Get(CanvasLabel.Da_Info).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region Da_Quit
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Da_Quit,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.Close);
+
+                ResourceManager.Get(CanvasLabel.Da_Info).TweenBacCG();
+                ResourceManager.Get(GardenLabel.Minigame).TweenBacVec();
+                ResourceManager.Get(CanvasLabel.D_MiniGame).TweenBacCG();
+
+                MiniGameManager.GameEnd();
+            }
+        );
+
+        #endregion
+
+        #region Da_Score
+
+        ResourceManager.Get(CanvasLabel.Da_ScoreTit).CreateTweenFont(1, 25, 0.25f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region Da_Cancel
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Da_Cancel,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.Get(CanvasLabel.Da_Info).TweenBacCG();
+
+                MiniGameManager.Pause = false;
+            }
+        );
+
+        #endregion
+
+        #region Da_GetAward
+
+        ResourceManager.Get(CanvasLabel.Da_GetAward).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Da_GetAward,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.GetCurrent);
+
+                ResourceManager.Get(CanvasLabel.Da_Info).TweenBacCG();
+                ResourceManager.Get(GardenLabel.Minigame).TweenBacVec();
+                ResourceManager.Get(CanvasLabel.D_MiniGame).TweenBacCG();
+
+                InfoBoxManager.GardenInfoBox.Display(MinigameAward.DisplayContent, 10f, Color.white, Lib.Atlas);
+            }
+        );
+
+        #endregion
+
+        #region Da_CoinGroup
+
+        ResourceManager.Get(CanvasLabel.Da_CoinGroup).CreateTweenScale(new Vector3(), new Vector3(1, 1, 1), 0.25f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region Da_FlowerGroup
+
+        ResourceManager.Get(CanvasLabel.Da_FlowerGroup).CreateTweenScale(new Vector3(), new Vector3(1, 1, 1), 0.25f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region Da_DiamondGroup
+
+        ResourceManager.Get(CanvasLabel.Da_DiamondGroup).CreateTweenScale(new Vector3(), new Vector3(1, 1, 1), 0.25f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+
+        #region D_Mask
+
+        ResourceManager.Get(CanvasLabel.D_Mask).CreateTweenGra(0, 180/255f, 0.25f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region D_FlowerBtn
+
+        #region MemoryGame
+
+        tweenRoot = ResourceManager.Get(CanvasLabel.D_FlowerIcon1).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
+
+        var root0 = tweenRoot;
+        tweenRoot.OnForwardFinish = () =>
+        {
+            root0.StartBackward();
+        };
+
+        tweenRoot = ResourceManager.Get(CanvasLabel.D_FlowerIcon2).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
+
+        var root1 = tweenRoot;
+        tweenRoot.OnForwardFinish = () =>
+        {
+            root1.StartBackward();
+        };
+
+        tweenRoot = ResourceManager.Get(CanvasLabel.D_FlowerIcon3).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
+
+        var root2 = tweenRoot;
+        tweenRoot.OnForwardFinish = () =>
+        {
+            root2.StartBackward();
+        };
+
+        tweenRoot = ResourceManager.Get(CanvasLabel.D_FlowerIcon4).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
+
+        var root3 = tweenRoot;
+        tweenRoot.OnForwardFinish = () =>
+        {
+            root3.StartBackward();
+        };
+
+        tweenRoot = ResourceManager.Get(CanvasLabel.D_FlowerIcon5).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
+
+        var root4 = tweenRoot;
+        tweenRoot.OnForwardFinish = () =>
+        {
+            root4.StartBackward();
+        };
+
+        tweenRoot = ResourceManager.Get(CanvasLabel.D_FlowerIcon6).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
+
+        var root8 = tweenRoot;
+        tweenRoot.OnForwardFinish = () =>
+        {
+            root8.StartBackward();
+        };
+
+
+        ResourceManager.AddButtonEvent(CanvasLabel.D_FlowerBtn1, () => { MiniGameManager.OnMemoryGameClick(0, 0); });
+        ResourceManager.AddButtonEvent(CanvasLabel.D_FlowerBtn2, () => { MiniGameManager.OnMemoryGameClick(1, 1); });
+        ResourceManager.AddButtonEvent(CanvasLabel.D_FlowerBtn3, () => { MiniGameManager.OnMemoryGameClick(2, 3); });
+        ResourceManager.AddButtonEvent(CanvasLabel.D_FlowerBtn4, () => { MiniGameManager.OnMemoryGameClick(3, 4); });
+        ResourceManager.AddButtonEvent(CanvasLabel.D_FlowerBtn5, () => { MiniGameManager.OnMemoryGameClick(4, 6); });
+        ResourceManager.AddButtonEvent(CanvasLabel.D_FlowerBtn6, () => { MiniGameManager.OnMemoryGameClick(5, 7); });
+
+        #endregion
+
+        #region FindSoloGame
+
+        ResourceManager.Get(CanvasLabel.D_FlowerBtn7).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.D_FlowerBtn8).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.D_FlowerBtn9).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        tweenRoot = ResourceManager.Get(CanvasLabel.D_FlowerIcon7).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
+
+        var root5 = tweenRoot;
+        tweenRoot.OnForwardFinish = () =>
+        {
+            root5.StartBackward();
+        };
+
+        tweenRoot = ResourceManager.Get(CanvasLabel.D_FlowerIcon8).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
+
+        var root6 = tweenRoot;
+        tweenRoot.OnForwardFinish = () =>
+        {
+            root6.StartBackward();
+        };
+
+        tweenRoot = ResourceManager.Get(CanvasLabel.D_FlowerIcon9).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
+
+        var root7 = tweenRoot;
+        tweenRoot.OnForwardFinish = () =>
+        {
+            root7.StartBackward();
+        };
+
+        #endregion
+
+        #region FindMissingGame
+
+        ResourceManager.Get(CanvasLabel.D_FindMissingGameButton0).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.D_FindMissingGameButton1).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.D_FindMissingGameButton2).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        tweenRoot = ResourceManager.Get(CanvasLabel.D_FindMissingGameIcon0).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
+
+        var root9 = tweenRoot;
+        tweenRoot.OnForwardFinish = () =>
+        {
+            root9.StartBackward();
+        };
+
+        tweenRoot = ResourceManager.Get(CanvasLabel.D_FindMissingGameIcon1).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
+
+        var root10 = tweenRoot;
+        tweenRoot.OnForwardFinish = () =>
+        {
+            root10.StartBackward();
+        };
+
+        tweenRoot = ResourceManager.Get(CanvasLabel.D_FindMissingGameIcon2).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
+
+        var root11 = tweenRoot;
+        tweenRoot.OnForwardFinish = () =>
+        {
+            root11.StartBackward();
+        };
+
+        #endregion
+
+        #endregion
+
+        #endregion
+
+        #region E
+
+        #region E_Show
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.E_ShowBtn,
+            () =>
+            {
+                if (ResourceManager.Get(CanvasLabel.E_Group).gameObject.activeSelf)
+                {
+                    ResourceManager.SetActive(CanvasLabel.E_Group, false);
+                    ResourceManager.SetActive(CanvasLabel.Ea_Central, false);
+
+                    ResourceManager.SetText(CanvasLabel.E_ShowLab, "显示");
+                }
+                else
+                {
+                    ResourceManager.SetActive(CanvasLabel.E_Group, true);
+
+                    ResourceManager.SetText(CanvasLabel.E_ShowLab, "隐藏");
+                }
+            }
+        );
+
+        #endregion
+
+        #region E_CentralBtn
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.E_CentralBtn,
+            () =>
+            {
+                ResourceManager.SetActive(CanvasLabel.Ea_Central, true);
+            }
+        );
+
+        #endregion
+
+
+        #region Ea_Free
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Ea_Free,
+            () =>
+            {
+                TutorialManager.PayExempt = true;
+            }
+        );
+
+        #endregion
+
+        #region Ea_Send
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Ea_Send,
+            () =>
+            {
+                HttpManager.UploadConfig();
+            }
+        );
+
+        #endregion
+
+        #region Ea_Close
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Ea_Close,
+            () =>
+            {
+                ResourceManager.SetActive(CanvasLabel.Ea_Central, false);
+            }
+        );
+
+        #endregion
+
+        #region Ea_Reset
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Ea_Reset,
+            () =>
+            {
+                ConfigManager.ResetConfigDocument();
+            }
+        );
+
+        #endregion
+
+        #region Ea_Unlock
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Ea_Unlock,
+            () =>
+            {
+                //ManaDebug.Log(ManaAudio.MusicTheme.isPlaying + " " + ManaAudio.MusicTheme.volume + " " + ManaAudio.MusicTheme.spatialBlend + " " + ManaAudio.MusicTheme.mute + " " + ManaAudio.MusicTheme.time);
+
+                GardenManager.UnlockSlot();
+            }
+        );
+
+        #endregion
+
+        #region Ea_Lottery
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Ea_Lottery,
+            () =>
+            {
+                SignManager.SignIndex = 7;
+                SignManager.LastSignTime = new DateTime(2017, 2, 3);
+
+                ResourceManager.Get(CanvasLabel.B_SignIn).TweenForCG();
+                ResourceManager.Get(CanvasLabel.Bb_SignIn).TweenForCG();
+            }
+        );
+
+        #endregion
+
+
+        #region Ea_Cool
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Ea_Cool,
+            () =>
+            {
+                Manager.MinigameCDTimer = 0;
+            }
+        );
+
+        #endregion
+
+        #region Ea_Score
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Ea_Score,
+            () =>
+            {
+                MiniGameManager.Score = 1000;
+            }
+        );
+
+        #endregion
+
+        #region Ea_End
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Ea_End,
+            () =>
+            {
+                MiniGameManager.GameTimer = 45;
+            }
+        );
+
+        #endregion
+
+
+        #region Ea_IncreaseFR
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Ea_IncreaseFR,
+            () =>
+            {
+                Application.targetFrameRate += 1;
+            }
+        );
+
+        #endregion
+
+        #region Ea_DecreaseFR
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Ea_DecreaseFR,
+            () =>
+            {
+                Application.targetFrameRate -= 1;
+            }
+        );
+
+        #endregion
+
+        #endregion
+
+        #region F
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.F_ElfLab), new MulLanStr(LanguageLabel.UI__F_ElfLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.F_StoreLab), new MulLanStr(LanguageLabel.UI__F_StoreLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.F_MagicLab), new MulLanStr(LanguageLabel.UI__F_MagicLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.F_GardenLab), new MulLanStr(LanguageLabel.UI__F_GardenLab));
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Fg_Tit), new MulLanStr(LanguageLabel.UI__Fg_Tit));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Fg_Lab), new MulLanStr(LanguageLabel.UI__Fg_Lab0));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Fg_BtnLab), new MulLanStr(LanguageLabel.UI__Fg_BtnLab));
+
+        TextPlus textPlus = ResourceManager.Get<TextPlus>(CanvasLabel.Fe_BtnLab);
+        textPlus.MaxLineHeight = 16.71891f;
+
+        ResourceManager.Get(CanvasLabel.F_TipBK).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        #region F_Close
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.F_Close,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.Close);
+
+                ResourceManager.Get(CanvasLabel.F_Manage).TweenBacGra();
+            }
+        );
+
+        #endregion
+
+        #region F_Flower
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.F_Flower,
+            () =>
+            {
+                ResourceManager.Get(CanvasLabel.G_Flower).TweenForCG();
+            }
+        );
+
+        #endregion
+
+        #region F_TabBtn
+
+        ResourceManager.Get(CanvasLabel.F_Elf).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.F_Store).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.F_Magic).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.F_Garden).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.F_Elf,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.Get(CanvasLabel.F_Elf).TweenForScale();
+                ResourceManager.Get(CanvasLabel.F_Store).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.F_Magic).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.F_Garden).TweenBacScale();
+
+                ResourceManager.Get(CanvasLabel.F_Elf).SetAsLastSibling();
+                ResourceManager.Get(CanvasLabel.F_Store).SetSiblingIndex(0);
+                ResourceManager.Get(CanvasLabel.F_Magic).SetSiblingIndex(1);
+                ResourceManager.Get(CanvasLabel.F_Garden).SetSiblingIndex(2);
+
+                ResourceManager.Get<Button>(CanvasLabel.F_Elf).interactable = false;
+                ResourceManager.Get<Button>(CanvasLabel.F_Store).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.F_Magic).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.F_Garden).interactable = true;
+
+                ResourceManager.SetActive(CanvasLabel.Fd_Elf, true);
+                ResourceManager.SetActive(CanvasLabel.Fc_Store, false);
+                ResourceManager.SetActive(CanvasLabel.Fb_Magic, false);
+                ResourceManager.SetActive(CanvasLabel.Fa_Garden, false);
+
+                ResourceManager.SetActive(CanvasLabel.F_ElfIcon, true);
+                ResourceManager.SetActive(CanvasLabel.F_StoreIcon, false);
+                ResourceManager.SetActive(CanvasLabel.F_MagicIcon, false);
+                ResourceManager.SetActive(CanvasLabel.F_GardenIcon, false);
+
+                ResourceManager.SetActive(CanvasLabel.Ff_SkillBar, false);
+            }
+        );
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.F_Store,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.Get(CanvasLabel.F_Elf).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.F_Store).TweenForScale();
+                ResourceManager.Get(CanvasLabel.F_Magic).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.F_Garden).TweenBacScale();
+
+                ResourceManager.Get(CanvasLabel.F_Elf).SetSiblingIndex(1);
+                ResourceManager.Get(CanvasLabel.F_Store).SetAsLastSibling();
+                ResourceManager.Get(CanvasLabel.F_Magic).SetSiblingIndex(0);
+                ResourceManager.Get(CanvasLabel.F_Garden).SetSiblingIndex(2);
+
+                ResourceManager.Get<Button>(CanvasLabel.F_Elf).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.F_Store).interactable = false;
+                ResourceManager.Get<Button>(CanvasLabel.F_Magic).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.F_Garden).interactable = true;
+
+                ResourceManager.SetActive(CanvasLabel.Fd_Elf, false);
+                ResourceManager.SetActive(CanvasLabel.Fc_Store, true);
+                ResourceManager.SetActive(CanvasLabel.Fb_Magic, false);
+                ResourceManager.SetActive(CanvasLabel.Fa_Garden, false);
+
+                ResourceManager.SetActive(CanvasLabel.F_ElfIcon, false);
+                ResourceManager.SetActive(CanvasLabel.F_StoreIcon, true);
+                ResourceManager.SetActive(CanvasLabel.F_MagicIcon, false);
+                ResourceManager.SetActive(CanvasLabel.F_GardenIcon, false);
+
+                ResourceManager.SetActive(CanvasLabel.Ff_SkillBar, false);
+            }
+        );
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.F_Magic,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.Get(CanvasLabel.F_Elf).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.F_Store).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.F_Magic).TweenForScale();
+                ResourceManager.Get(CanvasLabel.F_Garden).TweenBacScale();
+
+                ResourceManager.Get(CanvasLabel.F_Elf).SetSiblingIndex(1);
+                ResourceManager.Get(CanvasLabel.F_Store).SetSiblingIndex(0);
+                ResourceManager.Get(CanvasLabel.F_Magic).SetAsLastSibling();
+                ResourceManager.Get(CanvasLabel.F_Garden).SetSiblingIndex(2);
+
+                ResourceManager.Get<Button>(CanvasLabel.F_Elf).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.F_Store).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.F_Magic).interactable = false;
+                ResourceManager.Get<Button>(CanvasLabel.F_Garden).interactable = true;
+
+                ResourceManager.SetActive(CanvasLabel.Fd_Elf, false);
+                ResourceManager.SetActive(CanvasLabel.Fc_Store, false);
+                ResourceManager.SetActive(CanvasLabel.Fb_Magic, true);
+                ResourceManager.SetActive(CanvasLabel.Fa_Garden, false);
+
+                ResourceManager.SetActive(CanvasLabel.F_ElfIcon, false);
+                ResourceManager.SetActive(CanvasLabel.F_StoreIcon, false);
+                ResourceManager.SetActive(CanvasLabel.F_MagicIcon, true);
+                ResourceManager.SetActive(CanvasLabel.F_GardenIcon, false);
+
+                ResourceManager.SetActive(CanvasLabel.Ff_SkillBar, false);
+            }
+        );
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.F_Garden,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.Get(CanvasLabel.F_Elf).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.F_Store).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.F_Magic).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.F_Garden).TweenForScale();
+
+                ResourceManager.Get(CanvasLabel.F_Elf).SetSiblingIndex(2);
+                ResourceManager.Get(CanvasLabel.F_Store).SetSiblingIndex(0);
+                ResourceManager.Get(CanvasLabel.F_Magic).SetSiblingIndex(1);
+                ResourceManager.Get(CanvasLabel.F_Garden).SetAsLastSibling();
+
+                ResourceManager.Get<Button>(CanvasLabel.F_Elf).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.F_Store).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.F_Magic).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.F_Garden).interactable = false;
+
+                ResourceManager.SetActive(CanvasLabel.Fd_Elf, false);
+                ResourceManager.SetActive(CanvasLabel.Fc_Store, false);
+                ResourceManager.SetActive(CanvasLabel.Fb_Magic, false);
+                ResourceManager.SetActive(CanvasLabel.Fa_Garden, true);
+
+                ResourceManager.SetActive(CanvasLabel.F_ElfIcon, false);
+                ResourceManager.SetActive(CanvasLabel.F_StoreIcon, false);
+                ResourceManager.SetActive(CanvasLabel.F_MagicIcon, false);
+                ResourceManager.SetActive(CanvasLabel.F_GardenIcon, true);
+
+                ResourceManager.SetActive(CanvasLabel.Ff_SkillBar, true);
+            }
+        );
+
+        #endregion
+
+        #region F_Manage
+
+        tween = ResourceManager.Get(CanvasLabel.F_Manage).CreateTweenGra(0, 180/255f, 0.5f, true, true, Curve.EaseOutQuad);
+
+        var tween1 = tween;
+        tween.OnForwardStart += () =>
+        {
+            tween1.Duration = 0.5f;
+        };
+
+        tween.OnBackwardStart += () =>
+        {
+            tween1.Duration = 0.25f;
+        };
+
+        tween.OnBackwardFinish += () =>
+        {
+            ResourceManager.Get(CanvasLabel.F_Manage0).TweenBacVec();
+        };
+
+
+        tween = ResourceManager.Get(CanvasLabel.F_Manage0).CreateTweenVec2D(ResourceManager.Get(CanvasLabel.F_PosTra).position, 0.5f, false, false, true, Curve.EaseOutQuad);
+
+        tween.OnForwardStart += () =>
+        {
+            ResourceManager.Get(CanvasLabel.C_Main).TweenBacCG();
+
+            ResourceManager.SetActive(CanvasLabel.F_Manage, true);
+        };
+
+        tween.OnForwardFinish += () =>
+        {
+            ResourceManager.Get(CanvasLabel.F_Manage).TweenForGra();
+        };
+
+        tween.OnBackwardFinish += () =>
+        {
+            ResourceManager.Get(CanvasLabel.C_Main).TweenForCG();
+
+            ResourceManager.SetActive(CanvasLabel.F_Manage, false);
+        };
+
+        #endregion
+
+        #region F_PersonBtn
+
+        List<Sprite> spriteList = new List<Sprite>();
+        foreach (var skill in Manager.SkillList)
+        {
+            if (spriteList.Contains(skill.Icon))
+            {
+                continue;
+            }
+            spriteList.Add(skill.Icon);
+        }
+        SpriteAsset.AddBundleSpriteInfo(spriteList.ToArray());
+
+        Sprite sprite;
+        if (Initializer.Instance.DebugMode)
+        {
+            Texture2D texture = ResourceManager.LoadSprite("4大技能1", Folder.Atlas2).texture;
+            sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0.5f, 0.5f));
+        }
+        else
+        {
+            sprite = ResourceManager.LoadSprite(ResourceLabel.SkillAtlas, Folder.Atlas2);
+        }
+
+        ResourceManager.Get<TextPlus>(CanvasLabel.K_Lab1).Scale = 1.8f;
+        ResourceManager.Get<TextPlus>(CanvasLabel.K_Lab1).SetY = true;
+        ResourceManager.Get<TextPlus>(CanvasLabel.K_Lab1).Y = 0;
+        ResourceManager.Get<Image>(CanvasLabel.K_ImagePlus1).sprite = sprite;
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.F_PersonBtn,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                Bubble.Show(Language.GetStr(LanguageLabel.UI__F_PersonBtn0), null, null, ResourceManager.LoadSprite("4大技能1", Folder.UI));
+                string content0 = Language.GetStr(LanguageLabel.UI__F_PersonBtn1);
+                string person = "";
+                Ability gardenAbility = Manager.SkillDictionary["Ability1"] as Ability;
+                float increasePerson = Manager.CurrentPerson - gardenAbility.NewPerson;
+                if (increasePerson > 0.001f)
+                {
+                    person = Auxiliary.ShrinkBigNumberStr(gardenAbility.NewPerson * 60) + "<color=#00ff00ff>+" + Auxiliary.ShrinkBigNumberStr(increasePerson*60) + "</color>";
+                }
+                if (Manager.ExtraPersonSourceSpritesName.Count > 0)
+                {
+                    StringBuilder stringBuilder = new StringBuilder();
+                    for (int i = 0; i < MaxSkillIconForIncomeDetailPanel; i++)
+                    {
+                        if (i < Manager.ExtraPersonSourceSpritesName.Count)
+                        {
+                            stringBuilder.Append(string.Format("<({0})>", Manager.ExtraPersonSourceSpritesName[i]));
+                        }
+                        if (i < MaxSkillIconForIncomeDetailPanel - 1)
+                        {
+                            stringBuilder.Append(" ");
+                        }
+                    }
+                    string content1 = Language.GetStr(LanguageLabel.UI__F_IncreaseSource).Replace(TransferLabel.Value, stringBuilder.ToString());
+                    if (Manager.ExtraPersonSourceSpritesName.Count > MaxSkillIconForIncomeDetailPanel)
+                    {
+                        Bubble.LinkButton.GetComponent<Text>().text = Language.GetStr(LanguageLabel.UI__F_LinkButton);
+                        Bubble.LinkButton.SetActive(true);
+                        Bubble.LinkButton.onClick.RemoveAllListeners();
+                        Bubble.LinkButton.onClick.AddListener
+                        (
+                            () =>
+                            {
+                                AudioManager.PlayClip(ResourceLabel.BubbleClip);
+                                AlertPanel.Show(Language.GetStr(LanguageLabel.UI__F_IncreaseSource).Replace(TransferLabel.Value, ""), Manager.ExtraPersonSourceSpritesName);
+                            }
+                        );
+                        content1 += "\u3000\u3000\u3000\u3000";
+                    }
+                    Bubble.Lab1.SetActive(true);
+                    Bubble.Lab1.text = content1;
+                }
+                content0 = content0.Replace(TransferLabel.Value, person);
+                Bubble.Lab2.text = content0;
+                Bubble.Lab2.SetActive(true);
+            }
+        );
+
+        #endregion
+
+        #region F_PersonLab
+
+        tween = AnimManager.CreateTweenOutline(ResourceManager.Get(CanvasLabel.F_PersonLab), 0, 201/255f, 1f, true, true, Curve.EaseOutQuad);
+
+        tween.PingPong = true;
+
+        #endregion
+
+        #region F_CoinPersonBtn
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.F_CoinPersonBtn,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+
+                Bubble.Show(Language.GetStr(LanguageLabel.UI__F_CoinPersonBtn0), null, null, ResourceManager.LoadSprite("绿-免费金币", Folder.UI));
+                string content0 = Language.GetStr(LanguageLabel.UI__F_CoinPersonBtn1);
+                string coinPerson = "";
+                Ability gardenAbility = Manager.SkillDictionary["Ability1"] as Ability;
+                float increaseCoinPerson = Manager.CurrentCoinPerson - gardenAbility.NewCoinPerson;
+                if (increaseCoinPerson > 0.001f)
+                {
+                    coinPerson = Auxiliary.ShrinkBigNumberStr(gardenAbility.NewCoinPerson) + "<color=#00ff00ff>+" + Auxiliary.ShrinkBigNumberStr(increaseCoinPerson) + "</color>";
+                }
+                if (Manager.ExtraCoinPersonSourceSpritesName.Count > 0)
+                {
+                    StringBuilder stringBuilder = new StringBuilder();
+                    for (int i = 0; i < MaxSkillIconForIncomeDetailPanel; i++)
+                    {
+                        if (i < Manager.ExtraCoinPersonSourceSpritesName.Count)
+                        {
+                            stringBuilder.Append(string.Format("<({0})>", Manager.ExtraCoinPersonSourceSpritesName[i]));
+                        }
+                        if (i < MaxSkillIconForIncomeDetailPanel - 1)
+                        {
+                            stringBuilder.Append(" ");
+                        }
+                    }
+                    string content1 = Language.GetStr(LanguageLabel.UI__F_IncreaseSource).Replace(TransferLabel.Value, stringBuilder.ToString());
+                    if (Manager.ExtraCoinPersonSourceSpritesName.Count > MaxSkillIconForIncomeDetailPanel)
+                    {
+                        Bubble.LinkButton.GetComponent<Text>().text = Language.GetStr(LanguageLabel.UI__F_LinkButton);
+                        Bubble.LinkButton.SetActive(true);
+                        Bubble.LinkButton.onClick.RemoveAllListeners();
+                        Bubble.LinkButton.onClick.AddListener
+                        (
+                            () =>
+                            {
+                                AudioManager.PlayClip(ResourceLabel.BubbleClip);
+                                AlertPanel.Show(Language.GetStr(LanguageLabel.UI__F_IncreaseSource).Replace(TransferLabel.Value, ""), Manager.ExtraCoinPersonSourceSpritesName);
+                            }
+                        );
+                        content1 += "\u3000\u3000\u3000\u3000";
+                    }
+                    Bubble.Lab1.SetActive(true);
+                    Bubble.Lab1.text = content1;
+                }
+                content0 = content0.Replace(TransferLabel.Value, coinPerson);
+                Bubble.Lab2.text = content0;
+                Bubble.Lab2.SetActive(true);
+            }
+        );
+
+        #endregion
+
+        #region F_CoinPersonLab
+
+        tween = AnimManager.CreateTweenOutline(ResourceManager.Get(CanvasLabel.F_CoinPersonLab), 0, 201/255f, 1f, true, true, Curve.EaseOutQuad);
+
+        tween.PingPong = true;
+
+        #endregion
+
+
+        #region Fe_Info
+
+        ResourceManager.Get(CanvasLabel.Fe_Info).CreateTweenCG(0f, 1f, 0.1f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region Fe_Close
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Fe_Close,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.Close);
+
+                ResourceManager.Get(CanvasLabel.Fe_Info).TweenBacCG();
+            }
+        );
+
+        #endregion
+
+
+        #region Fg_Btn
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Fg_Btn,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.Get<Button>(CanvasLabel.Fg_Btn).interactable = false;
+
+                ResourceManager.SetText(CanvasLabel.Fg_Lab, Language.GetStr(LanguageLabel.UI__Fg_Lab1));
+
+                HttpManager.Login(LoginCallback);
+            }
+        );
+
+        #endregion
+
+        #region Fg_Close
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Fg_Close,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.Close);
+
+                ResourceManager.Get(CanvasLabel.Fg_Reconnect).TweenBacCG();
+            }
+        );
+
+        #endregion
+
+        #region Fg_Reconnect
+
+        tween = ResourceManager.Get(CanvasLabel.Fg_Reconnect).CreateTweenCG(0f, 1f, 0.1f, false, true, Curve.EaseOutQuad);
+
+        tween.OnForwardStart += () =>
+        {
+            ResourceManager.SetText(CanvasLabel.Fg_Lab, Language.GetStr(LanguageLabel.UI__Fg_Lab0));
+        };
+
+        #endregion
+
+        #endregion
+
+        #region G
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.G_Tit), new MulLanStr(LanguageLabel.UI__G_Tit));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.G_SpecialLab), new MulLanStr(LanguageLabel.UI__G_SpecialLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.G_RegularLab), new MulLanStr(LanguageLabel.UI__G_RegularLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.G_RetrieveLab), new MulLanStr(LanguageLabel.UI__G_RetrieveLab));
+
+        #region G_Close
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.G_Close,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.Close);
+
+                ResourceManager.Get(CanvasLabel.G_Flower).TweenBacCG();
+            }
+        );
+
+        #endregion
+
+        #region G_Flower
+
+        tween = ResourceManager.Get(CanvasLabel.G_Flower).CreateTweenCG(0f, 1f, 0.25f, false, true, Curve.EaseOutQuad);
+
+        tween.OnForwardStart += () =>
+        {
+            AudioManager.PlayClip(AudioLabel.Bubble);
+
+            ResourceManager.Get(CanvasLabel.C_Main).TweenBacCG();
+
+            if (GardenManager.TotalUnlockSpecialFlower == 0)
+            {
+                ResourceManager.SetActive(CanvasLabel.G_Special, false);
+            }
+        };
+
+        tween.OnBackwardStart += () =>
+        {
+            foreach (var kv in GardenManager.GetFlowerInfoDict())
+            {
+                //Debug.Log(kv.Value);
+                //Debug.Log(kv.Value.UIPartical);
+                //Debug.Log(kv.Value.UIPartical.Animator);
+                if (kv.Value.UIPartical.Animator == null)
+                {
+                    continue;
+                }
+                kv.Value.UIPartical.Animator.SetTrigger("Stop");
+            }
+        };
+
+        tween.OnBackwardFinish += () =>
+        {
+            ResourceManager.Get(CanvasLabel.C_Main).TweenForCG();
+            ResourceManager.Get(CanvasLabel.C_Group).GetTweenCG().InOrigin = true;
+        };
+
+        #endregion
+
+        #region G_Special
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.G_Special,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.SetActive(CanvasLabel.G_SpecialScrr, true);
+                ResourceManager.SetActive(CanvasLabel.G_RegularScrr, false);
+
+                ResourceManager.Get<Button>(CanvasLabel.G_Special).interactable = false;
+                ResourceManager.Get<Button>(CanvasLabel.G_Regular).interactable = true;
+            }
+        );
+
+        #endregion
+
+        #region G_Regular
+
+        ResourceManager.Get(CanvasLabel.G_Regular).CreateTweenVec2D(ResourceManager.Get(CanvasLabel.G_PosTraL).position, ResourceManager.Get(CanvasLabel.G_PosTraR).position, 0.25f, false, true, true, Curve.EaseOutQuad);
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.G_Regular,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.SetActive(CanvasLabel.G_SpecialScrr, false);
+                ResourceManager.SetActive(CanvasLabel.G_RegularScrr, true);
+
+                ResourceManager.Get<Button>(CanvasLabel.G_Special).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.G_Regular).interactable = false;
+            }
+        );
+
+        #endregion
+
+        #region G_Retrieve
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.G_Retrieve,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.Close);
+
+                ResourceManager.Get(CanvasLabel.G_Flower).TweenBacCG();
+
+                GardenManager.RetriveAllFlower();
+            }
+        );
+
+        #endregion
+
+        #endregion
+
+        #region H
+
+        #region H_Close
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.H_Close,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.Close);
+
+                ResourceManager.Get(CanvasLabel.H_FlowerCard).TweenBacCG();
+            }
+        );
+
+        #endregion
+
+        #region H_FlowerCard
+
+        tween = ResourceManager.Get(CanvasLabel.H_FlowerCard).CreateTweenCG(0f, 1f, 0.25f, false, true, Curve.EaseOutQuad);
+
+        tween.OnForwardStart += () =>
+        {
+            ResourceManager.Get(CanvasLabel.C_Main).TweenBacCG();
+        };
+
+        tween.OnBackwardFinish += () =>
+        {
+            ResourceManager.Get(CanvasLabel.H_Icon1).Find(string.Format("{0}/{1}", CanvasLabel.H_UIFlashLight, CanvasLabel.H_UIFlash)).SetActive(false);
+            ResourceManager.Get(CanvasLabel.H_Icon1).Find(string.Format("{0}/{1}", CanvasLabel.H_UIFlashLight, CanvasLabel.H_UIParticleSystem)).SetActive(false);
+
+            if (GardenManager.FlowerCardMaterialTween != null)
+                GardenManager.FlowerCardMaterialTween.Pause();
+        };
+
+        #endregion
+
+        #region H_Icon2
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.H_Icon2,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                GardenManager.PlantFlower(GardenManager.SelectFlowerInfo);
+            }
+        );
+
+        #endregion
+
+        #endregion
+
+        #region I
+
+        TweenCG tweenCG = ResourceManager.Get(CanvasLabel.I_BlackMask).CreateTweenCG(1, 0, 1f, true, false, Curve.EaseOutQuad);
+        tweenCG.CG = false;
+
+        #endregion
+
+        #region J
+
+        ResourceManager.Get(CanvasLabel.C_Info).CreateTweenCG(0, 0.9f, 0.25f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region L
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_MusicOnLab), new MulLanStr(LanguageLabel.UI__L_On));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_MusicOffLab), new MulLanStr(LanguageLabel.UI__L_Off));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_AudioOnLab), new MulLanStr(LanguageLabel.UI__L_On));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_AudioOffLab), new MulLanStr(LanguageLabel.UI__L_Off));
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_Tit), new MulLanStr(LanguageLabel.UI__L_Tit));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_UserTit), new MulLanStr(LanguageLabel.UI__L_UserTit));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_AudioTit), new MulLanStr(LanguageLabel.UI__L_AudioTit));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_SupportTit), new MulLanStr(LanguageLabel.UI__L_SupportTit));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_LanguageTit), new MulLanStr(LanguageLabel.UI__L_LanguageTit));
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_AudioLab), new MulLanStr(LanguageLabel.UI__L_AudioLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_MusicLab), new MulLanStr(LanguageLabel.UI__L_MusicLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_ReportLab), new MulLanStr(LanguageLabel.UI__L_ReportLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_ChangeLab), new MulLanStr(LanguageLabel.UI__L_ChangeLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_CreditsLab), new MulLanStr(LanguageLabel.UI__L_CreditsLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_ShareLab), new MulLanStr(LanguageLabel.UI__L_ShareLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_ConfirmLab), new MulLanStr(LanguageLabel.UI__L_ConfirmLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_ResetLab), new MulLanStr(LanguageLabel.UI__L_ResetLab0));
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_TraChiLab), new MulLanStr(LanguageLabel.UI__L_TraChiLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_SimChiLab), new MulLanStr(LanguageLabel.UI__L_SimChiLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_EnglishLab), new MulLanStr(LanguageLabel.UI__L_EnglishLab));
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.La_Tit), new MulLanStr(LanguageLabel.UI__La_Tit));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.La_CancelLab), new MulLanStr(LanguageLabel.Common__Cancel));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.La_ConfirmLab), new MulLanStr(LanguageLabel.Common__Confirm));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.La_Placeholder), new MulLanStr(LanguageLabel.UI__La_Placeholder));
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Lb_Tit), new MulLanStr(LanguageLabel.UI__Lb_Tit));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Lb_CancelLab), new MulLanStr(LanguageLabel.Common__Cancel));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Lb_ConfirmLab), new MulLanStr(LanguageLabel.Common__Confirm));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Lb_Placeholder), new MulLanStr(LanguageLabel.UI__Lb_Placeholder));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Lb_Placeholder0), new MulLanStr(LanguageLabel.UI__Lb_Placeholder0));
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Lc_CreditsContent), new MulLanStr(LanguageLabel.UI__Lc_CreditsContent));
+
+        ResourceManager.SetText(CanvasLabel.L_UserLab, ConfigManager.GetStringFormConfig(PlayerConfigLabel.ID));
+
+        #region L_Setting
+
+        tween = ResourceManager.Get(CanvasLabel.L_Setting).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        tween.OnForwardStart += () =>
+        {
+            ResourceManager.Get(CanvasLabel.C_Main).TweenBacCG();
+        };
+
+        tween.OnBackwardFinish += () =>
+        {
+            ResourceManager.Get(CanvasLabel.C_Main).TweenForCG();
+        };
+
+        #endregion
+
+        #region L_Confirm
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.L_Confirm,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.Close);
+
+                ResourceManager.Get(CanvasLabel.L_Setting).TweenBacCG();
+            }
+        );
+
+        #endregion
+
+
+        #region L_CreditsMask
+
+        ResourceManager.Get(CanvasLabel.Lc_CreditsMask).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.Lc_CreditsMask,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.Get(CanvasLabel.Lc_CreditsMask).TweenBacCG();
+                ResourceManager.Get(CanvasLabel.Lc_CreditsContent).TweenBacCG();
+
+                Auxiliary.Instance.StopCoroutine(StopPlayCreditsRoutine);
+            }
+        );
+
+        #endregion
+
+        #region L_CreditsContent
+
+        ResourceManager.Get(CanvasLabel.Lc_CreditsContent).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.Lc_CreditsContent).CreateTweenVec2D(ResourceManager.Get(CanvasLabel.Lc_Pos).position, 10f, false, false, true, Curve.Linear);
+
+        #endregion
+
+        #region L_CreditsBtn
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.L_CreditsBtn,
+            () =>
+            {
+                ShowCredits();
+
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+            }
+        );
+
+        #endregion
+
+
+        #region L_ShareBtn
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.L_ShareBtn,
+            () =>
+            {
+                IAPManager.Share();
+
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+            }
+        );
+
+        if (Application.isEditor)
+        {
+            ResourceManager.Get<Button>(CanvasLabel.L_ShareBtn).interactable = false;
+        }
+
+        #endregion
+
+        #region L_AudioBtn
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.L_AudioBtn,
+            () =>
+            {
+                AudioManager.Instance.AudioSwitch();
+
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+            }
+        );
+
+        #endregion
+
+        #region L_MusicBtn
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.L_MusicBtn,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                AudioManager.Instance.MusicSwitch();
+            }
+        );
+
+        #endregion
+
+        #region L_ReportBtn
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.L_ReportBtn,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.Get(CanvasLabel.Lb_Info).TweenForCG();
+            }
+        );
+
+        #endregion
+
+        #region L_ChangeBtn
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.L_ChangeBtn,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.Get(CanvasLabel.La_Info).TweenForCG();
+            }
+        );
+
+        #endregion
+
+        #region L_Reset
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.L_ResetBtn,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                Bubble.Show
+                (
+                    null,
+                    Language.GetStr(LanguageLabel.UI__L_ResetLab1),
+                    null,
+                    null,
+                    () =>
+                    {
+                        ConfigManager.ResetConfigDocument();
+                    }
+                );
+            }
+        );
+
+        #endregion
+
+
+        #region L_TraChi
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.L_TraChi,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.Get<Button>(CanvasLabel.L_TraChi).interactable = false;
+                ResourceManager.Get<Button>(CanvasLabel.L_SimChi).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.L_English).interactable = true;
+
+                ResourceManager.Get<Button>(CanvasLabel.L_TraChi).image.color = Lib.Orange;
+                ResourceManager.Get<Button>(CanvasLabel.L_SimChi).image.color = Lib.LightGray;
+                ResourceManager.Get<Button>(CanvasLabel.L_English).image.color = Lib.LightGray;
+
+                LanguageManager.SwitchLanguage(CurrentLanguage.ChineseTraditional);
+            }
+        );
+
+        #endregion
+
+        #region L_SimChi
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.L_SimChi,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.Get<Button>(CanvasLabel.L_TraChi).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.L_SimChi).interactable = false;
+                ResourceManager.Get<Button>(CanvasLabel.L_English).interactable = true;
+
+                ResourceManager.Get<Button>(CanvasLabel.L_TraChi).image.color = Lib.LightGray;
+                ResourceManager.Get<Button>(CanvasLabel.L_SimChi).image.color = Lib.Orange;
+                ResourceManager.Get<Button>(CanvasLabel.L_English).image.color = Lib.LightGray;
+
+                LanguageManager.SwitchLanguage(CurrentLanguage.ChineseSimplified);
+            }
+        );
+
+        #endregion
+
+        #region L_English
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.L_English,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.Get<Button>(CanvasLabel.L_TraChi).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.L_SimChi).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.L_English).interactable = false;
+
+                ResourceManager.Get<Button>(CanvasLabel.L_TraChi).image.color = Lib.LightGray;
+                ResourceManager.Get<Button>(CanvasLabel.L_SimChi).image.color = Lib.LightGray;
+                ResourceManager.Get<Button>(CanvasLabel.L_English).image.color = Lib.Orange;
+
+                LanguageManager.SwitchLanguage(CurrentLanguage.English);
+            }
+        );
+
+        #endregion
+
+        if (Initializer.Instance.AuditEdition)
+        {
+            ResourceManager.SetActive(CanvasLabel.L_TraChi, false);
+            ResourceManager.SetActive(CanvasLabel.L_English, false);
+        }
+
+
+        #region La_Info
+
+        ResourceManager.Get(CanvasLabel.La_Info).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region La_Cancel
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.La_Cancel,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.Close);
+
+                ResourceManager.Get(CanvasLabel.La_Info).TweenBacCG();
+            }
+        );
+
+        #endregion
+
+        #region La_Confirm
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.La_Confirm,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                string id = ResourceManager.Get<InputField>(CanvasLabel.La_InputField).text;
+
+                if (id == HttpManager.ID)
+                {
+                    Bubble.Show(null, Language.GetStr(LanguageLabel.Common__IdenticalID));
+                }
+                else
+                {
+                    Manager.SwitchConfig(id);
+                }
+            }
+        );
+
+        #endregion
+
+
+        #region Lb_Info
+
+        ResourceManager.Get(CanvasLabel.Lb_Info).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region Lb_Cancel
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Lb_Cancel,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.Close);
+
+                ResourceManager.Get(CanvasLabel.Lb_Info).TweenBacCG();
+            }
+        );
+
+        #endregion
+
+        #region Lb_Confirm
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Lb_Confirm,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                HttpManager.ReportIssue();
+            }
+        );
+
+        #endregion
+
+        #endregion
+
+        #region M
+
+        #region M_Close
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.M_Tit), new MulLanStr(LanguageLabel.UI__M_Tit));
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.M_Close,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.Close);
+
+                ResourceManager.Get(CanvasLabel.M_Achieve).TweenBacGra();
+            }
+        );
+
+        #endregion
+
+        #region M_Achieve
+
+        tween = ResourceManager.Get(CanvasLabel.M_Achieve).CreateTweenGra(new Color(0, 0, 0, 180/255f), 0.5f, true, true, Curve.EaseOutQuad);
+
+        var tween2 = tween;
+        tween.OnForwardStart += () =>
+        {
+            tween2.Duration = 0.5f;
+        };
+
+        tween.OnBackwardStart += () =>
+        {
+            tween2.Duration = 0.25f;
+        };
+
+        tween.OnBackwardFinish += () =>
+        {
+            ResourceManager.Get(CanvasLabel.M_Achieve0).TweenBacVec();
+        };
+
+        tween = ResourceManager.Get(CanvasLabel.M_Achieve0).CreateTweenVec2D(ResourceManager.Get(CanvasLabel.M_PosTra).position, 0.5f, false, false, true, Curve.EaseOutQuad);
+
+        tween.OnForwardStart += () =>
+        {
+            ResourceManager.Get(CanvasLabel.C_Main).TweenBacCG();
+
+            ResourceManager.SetActive(CanvasLabel.M_Achieve, true);
+        };
+
+        tween.OnForwardFinish += () =>
+        {
+            ResourceManager.Get(CanvasLabel.M_Achieve).TweenForGra();
+        };
+
+        tween.OnBackwardFinish += () =>
+        {
+            ResourceManager.Get(CanvasLabel.C_Main).TweenForCG();
+
+            ResourceManager.SetActive(CanvasLabel.M_Achieve, false);
+            ResourceManager.SetActive(CanvasLabel.M_Achieve0, false);
+        };
+
+        #endregion
+
+        #endregion
+
+        #region O
+
+        ResourceManager.Get(CanvasLabel.O_Toast).AddScript<Toast>();
+
+        #endregion
+
+        #region N
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.N_Lab), new MulLanStr(LanguageLabel.UI__N_Lab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.N_ConfirmLab), new MulLanStr(LanguageLabel.Common__Confirm));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.N_FormerPlayerButtonText), new MulLanStr(LanguageLabel.UI__N_FormerPlayerButtonText));
+
+        ResourceManager.Get(CanvasLabel.N_Mask).CreateTweenGra(0, 180/255f, 0.25f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.N_LabBK).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.N_Arrow).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.N_Tutorial).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.N_Confirm).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.N_FormerPlayerButton).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region P
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.P_HairLab), new MulLanStr(LanguageLabel.UI__P_HairLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.P_TopLab), new MulLanStr(LanguageLabel.UI__P_TopLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.P_DressLab), new MulLanStr(LanguageLabel.UI__P_DressLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.P_DecaratorLab), new MulLanStr(LanguageLabel.UI__P_DecaratorLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.P_WingLab), new MulLanStr(LanguageLabel.UI__P_WingLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.P_ShoeLab), new MulLanStr(LanguageLabel.UI__P_ShoeLab));
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Pa_Tit), new MulLanStr(LanguageLabel.UI__Pa_Tit));
+
+
+        #region P_Group
+
+        ResourceManager.Get(CanvasLabel.P_Group).CreateTweenCG(1, 0, 0.25f, true, false, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region P_Open
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.P_Open,
+            () =>
+            {
+                ResourceManager.Get(CanvasLabel.P_Group).TweenBacCG();
+                ResourceManager.Get(CanvasLabel.P_SidePanel).TweenBacVec();
+
+                ResourceManager.SetActive(CanvasLabel.P_Open, false);
+                ResourceManager.SetActive(CanvasLabel.P_Close, true);
+            }
+        );
+
+        #endregion
+
+        #region P_Close
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.P_Close,
+            () =>
+            {
+                ResourceManager.Get(CanvasLabel.P_Group).TweenForCG();
+                ResourceManager.Get(CanvasLabel.P_SidePanel).TweenForVec();
+
+                ResourceManager.SetActive(CanvasLabel.P_Open, true);
+                ResourceManager.SetActive(CanvasLabel.P_Close, false);
+            }
+        );
+
+        #endregion
+
+        #region P_SidePanel
+
+        tweenRoot = ResourceManager.Get(CanvasLabel.P_SidePanel).CreateTweenVec2D(ResourceManager.Get(CanvasLabel.P_Pos).position, 0.5f, false, true, true, Curve.EaseOutQuad);
+
+        tweenRoot.OnForwardFinish += () =>
+        {
+            ResourceManager.Get(CanvasLabel.P_Share).TweenForCG();
+        };
+
+        tweenRoot.OnBackwardStart += () =>
+        {
+            ResourceManager.Get(CanvasLabel.P_Share).TweenBacCG();
+        };
+
+        #endregion
+
+        #region P_DressRoom
+
+        ResourceManager.Get(CanvasLabel.P_DressRoom).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region P_Save
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.P_Save,
+            () =>
+            {
+                PlayerManager.Player.SaveDressDatas(true);
+            }
+        );
+
+        #endregion
+
+        #region P_Reset
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.P_Reset,
+            () =>
+            {
+                PlayerManager.Player.ResetDressDatas();
+            }
+        );
+
+        #endregion
+
+        #region P_TabBtn
+
+        ResourceManager.Get(CanvasLabel.P_Hair).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.P_Top).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.P_Dress).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.P_Decarator).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.P_Wing).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.P_Shoe).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.P_Hair,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.Get(CanvasLabel.P_Hair).TweenForScale();
+                ResourceManager.Get(CanvasLabel.P_Top).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Dress).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Decarator).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Wing).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Shoe).TweenBacScale();
+
+                ResourceManager.Get(CanvasLabel.P_Hair).SetSiblingIndex(5);
+                ResourceManager.Get(CanvasLabel.P_Top).SetSiblingIndex(0);
+                ResourceManager.Get(CanvasLabel.P_Dress).SetSiblingIndex(1);
+                ResourceManager.Get(CanvasLabel.P_Decarator).SetSiblingIndex(3);
+                ResourceManager.Get(CanvasLabel.P_Wing).SetSiblingIndex(4);
+                ResourceManager.Get(CanvasLabel.P_Shoe).SetSiblingIndex(2);
+
+                ResourceManager.Get<Button>(CanvasLabel.P_Hair).interactable = false;
+                ResourceManager.Get<Button>(CanvasLabel.P_Top).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Dress).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Decarator).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Wing).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Shoe).interactable = true;
+
+                ResourceManager.SetActive(CanvasLabel.Pa_HairTab, true);
+                ResourceManager.SetActive(CanvasLabel.Pb_TopTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pc_DressTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pd_DecaratorTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pe_WingTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pf_ShoeTab, false);
+
+                ResourceManager.SetActive(CanvasLabel.P_HairIcon, true);
+                ResourceManager.SetActive(CanvasLabel.P_TopIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_DressIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_DecaratorIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_WingIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_ShoeIcon, false);
+            }
+        );
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.P_Top,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.Get(CanvasLabel.P_Hair).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Top).TweenForScale();
+                ResourceManager.Get(CanvasLabel.P_Dress).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Decarator).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Wing).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Shoe).TweenBacScale();
+
+                ResourceManager.Get(CanvasLabel.P_Hair).SetSiblingIndex(0);
+                ResourceManager.Get(CanvasLabel.P_Top).SetSiblingIndex(5);
+                ResourceManager.Get(CanvasLabel.P_Dress).SetSiblingIndex(1);
+                ResourceManager.Get(CanvasLabel.P_Decarator).SetSiblingIndex(3);
+                ResourceManager.Get(CanvasLabel.P_Wing).SetSiblingIndex(4);
+                ResourceManager.Get(CanvasLabel.P_Shoe).SetSiblingIndex(2);
+
+                ResourceManager.Get<Button>(CanvasLabel.P_Hair).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Top).interactable = false;
+                ResourceManager.Get<Button>(CanvasLabel.P_Dress).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Decarator).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Wing).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Shoe).interactable = true;
+
+                ResourceManager.SetActive(CanvasLabel.Pa_HairTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pb_TopTab, true);
+                ResourceManager.SetActive(CanvasLabel.Pc_DressTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pd_DecaratorTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pe_WingTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pf_ShoeTab, false);
+
+                ResourceManager.SetActive(CanvasLabel.P_HairIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_TopIcon, true);
+                ResourceManager.SetActive(CanvasLabel.P_DressIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_DecaratorIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_WingIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_ShoeIcon, false);
+            }
+        );
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.P_Dress,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.Get(CanvasLabel.P_Hair).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Top).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Dress).TweenForScale();
+                ResourceManager.Get(CanvasLabel.P_Decarator).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Wing).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Shoe).TweenBacScale();
+
+                ResourceManager.Get(CanvasLabel.P_Hair).SetSiblingIndex(0);
+                ResourceManager.Get(CanvasLabel.P_Top).SetSiblingIndex(1);
+                ResourceManager.Get(CanvasLabel.P_Dress).SetSiblingIndex(6);
+                ResourceManager.Get(CanvasLabel.P_Decarator).SetSiblingIndex(3);
+                ResourceManager.Get(CanvasLabel.P_Wing).SetSiblingIndex(4);
+                ResourceManager.Get(CanvasLabel.P_Shoe).SetSiblingIndex(2);
+
+                ResourceManager.Get<Button>(CanvasLabel.P_Hair).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Top).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Dress).interactable = false;
+                ResourceManager.Get<Button>(CanvasLabel.P_Decarator).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Wing).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Shoe).interactable = true;
+
+                ResourceManager.SetActive(CanvasLabel.Pa_HairTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pb_TopTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pc_DressTab, true);
+                ResourceManager.SetActive(CanvasLabel.Pd_DecaratorTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pe_WingTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pf_ShoeTab, false);
+
+                ResourceManager.SetActive(CanvasLabel.P_HairIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_TopIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_DressIcon, true);
+                ResourceManager.SetActive(CanvasLabel.P_DecaratorIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_WingIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_ShoeIcon, false);
+            }
+        );
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.P_Decarator,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.Get(CanvasLabel.P_Hair).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Top).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Dress).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Decarator).TweenForScale();
+                ResourceManager.Get(CanvasLabel.P_Wing).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Shoe).TweenBacScale();
+
+                ResourceManager.Get(CanvasLabel.P_Hair).SetSiblingIndex(0);
+                ResourceManager.Get(CanvasLabel.P_Top).SetSiblingIndex(1);
+                ResourceManager.Get(CanvasLabel.P_Dress).SetSiblingIndex(2);
+                ResourceManager.Get(CanvasLabel.P_Decarator).SetSiblingIndex(5);
+                ResourceManager.Get(CanvasLabel.P_Wing).SetSiblingIndex(4);
+                ResourceManager.Get(CanvasLabel.P_Shoe).SetSiblingIndex(3);
+
+                ResourceManager.Get<Button>(CanvasLabel.P_Hair).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Top).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Dress).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Decarator).interactable = false;
+                ResourceManager.Get<Button>(CanvasLabel.P_Wing).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Shoe).interactable = true;
+
+                ResourceManager.SetActive(CanvasLabel.Pa_HairTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pb_TopTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pc_DressTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pd_DecaratorTab, true);
+                ResourceManager.SetActive(CanvasLabel.Pe_WingTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pf_ShoeTab, false);
+
+                ResourceManager.SetActive(CanvasLabel.P_HairIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_TopIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_DressIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_DecaratorIcon, true);
+                ResourceManager.SetActive(CanvasLabel.P_WingIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_ShoeIcon, false);
+            }
+        );
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.P_Wing,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.Get(CanvasLabel.P_Hair).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Top).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Dress).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Decarator).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Wing).TweenForScale();
+                ResourceManager.Get(CanvasLabel.P_Shoe).TweenBacScale();
+
+                ResourceManager.Get(CanvasLabel.P_Hair).SetSiblingIndex(0);
+                ResourceManager.Get(CanvasLabel.P_Top).SetSiblingIndex(1);
+                ResourceManager.Get(CanvasLabel.P_Dress).SetSiblingIndex(2);
+                ResourceManager.Get(CanvasLabel.P_Decarator).SetSiblingIndex(4);
+                ResourceManager.Get(CanvasLabel.P_Wing).SetSiblingIndex(5);
+                ResourceManager.Get(CanvasLabel.P_Shoe).SetSiblingIndex(3);
+
+                ResourceManager.Get<Button>(CanvasLabel.P_Hair).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Top).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Dress).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Decarator).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Wing).interactable = false;
+                ResourceManager.Get<Button>(CanvasLabel.P_Shoe).interactable = true;
+
+                ResourceManager.SetActive(CanvasLabel.Pa_HairTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pb_TopTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pc_DressTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pd_DecaratorTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pe_WingTab, true);
+                ResourceManager.SetActive(CanvasLabel.Pf_ShoeTab, false);
+
+                ResourceManager.SetActive(CanvasLabel.P_HairIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_TopIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_DressIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_DecaratorIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_WingIcon, true);
+                ResourceManager.SetActive(CanvasLabel.P_ShoeIcon, false);
+            }
+        );
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.P_Shoe,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.Get(CanvasLabel.P_Hair).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Top).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Dress).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Decarator).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Wing).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Shoe).TweenForScale();
+
+                ResourceManager.Get(CanvasLabel.P_Hair).SetSiblingIndex(0);
+                ResourceManager.Get(CanvasLabel.P_Top).SetSiblingIndex(1);
+                ResourceManager.Get(CanvasLabel.P_Dress).SetSiblingIndex(2);
+                ResourceManager.Get(CanvasLabel.P_Decarator).SetSiblingIndex(3);
+                ResourceManager.Get(CanvasLabel.P_Wing).SetSiblingIndex(4);
+                ResourceManager.Get(CanvasLabel.P_Shoe).SetSiblingIndex(5);
+
+                ResourceManager.Get<Button>(CanvasLabel.P_Hair).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Top).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Dress).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Decarator).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Wing).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Shoe).interactable = false;
+
+                ResourceManager.SetActive(CanvasLabel.Pa_HairTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pb_TopTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pc_DressTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pd_DecaratorTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pe_WingTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pf_ShoeTab, true);
+
+                ResourceManager.SetActive(CanvasLabel.P_HairIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_TopIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_DressIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_DecaratorIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_WingIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_ShoeIcon, true);
+            }
+        );
+
+        #endregion
+
+        #region P_Return
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.P_Return,
+            () =>
+            {
+                PlayerManager.Player.LeaveDressroom();
+            }
+        );
+
+        #endregion
+
+        #region P_Share
+
+        ResourceManager.Get(CanvasLabel.P_Share).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.P_Share,
+            () =>
+            {
+                ResourceManager.SetActive(CanvasLabel.P_Open, false);
+                ResourceManager.SetActive(CanvasLabel.P_Share, false);
+
+                EndOfFrameCall.Call
+                (
+                    ShareScreenShot
+                );
+            }
+        );
+
+        #endregion
+
+        #region P_CancelShare
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.P_CancelShare,
+            () =>
+            {
+                ResourceManager.SetActive(CanvasLabel.P_Open, true);
+                ResourceManager.SetActive(CanvasLabel.P_CancelShare, false);
+            }
+        );
+
+        #endregion
+
+
+        #region Pa_Info
+
+        ResourceManager.Get(CanvasLabel.Pa_Info).CreateTweenCG(0f, 1f, 0.1f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region Pa_Close
+
+        ResourceManager.AddButtonEvent
+            (
+                CanvasLabel.Pa_Close,
+                () =>
+                {
+                    AudioManager.PlayClip(AudioLabel.Close);
+
+                    ResourceManager.Get(CanvasLabel.Pa_Info).TweenBacCG();
+                }
+            );
+
+        #endregion
+
+        #endregion
+
+        #region Q
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Q_Tit), new MulLanStr(LanguageLabel.UI__Q_Tit));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Q_Placeholder), new MulLanStr(LanguageLabel.UI__Q_Placeholder));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Q_CommentLab), new MulLanStr(LanguageLabel.UI__Q_CommentLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Q_CloseLab), new MulLanStr(LanguageLabel.UI__Q_CloseLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Q_NicknameTitle), new MulLanStr(LanguageLabel.UI__Q_NicknameTitle));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Q_ContentTitle), new MulLanStr(LanguageLabel.UI__Q_ContentTitle));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Q_FriendFilterTitle), new MulLanStr(LanguageLabel.UI__Q_FriendFilterTitle));
+
+        ResourceManager.Get(CanvasLabel.Q_Tip).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.Q_CommentBK).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        ResourceManager.AddButtonEvent
+            (
+                CanvasLabel.Q_Close,
+                () =>
+                {
+                    SocialManager.CloseCommentPanel();
+                }
+            );
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Q_CommentBtn,
+            () =>
+            {
+                SocialManager.Comment();
+            }
+        );
+
+        #endregion
+
+        #region R
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.R_NotifyTit), new MulLanStr(LanguageLabel.UI__R_Tit));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.R_CloseLab), new MulLanStr(LanguageLabel.Common__Confirm));
+
+        tween = ResourceManager.Get(CanvasLabel.R_Notify0).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+        tween = ResourceManager.Get(CanvasLabel.R_Notify).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        tween.OnForwardStart +=
+            () =>
+            {
+                ResourceManager.Get(CanvasLabel.R_NotifyBK).TweenForScale();
+            };
+
+        tween.OnBackwardStart +=
+            () =>
+            {
+                ResourceManager.Get(CanvasLabel.R_NotifyBK).TweenBacScale();
+            };
+
+        tween.OnBackwardFinish +=
+            () =>
+            {
+                SignManager.ShowPanels();
+            };
+
+        ResourceManager.Get(CanvasLabel.R_NotifyBK).CreateTweenScale(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.R_Close,
+            () =>
+            {
+                tween = ResourceManager.Get(CanvasLabel.R_Notify).TweenBacCG();
+            }
+        );
+
+        #endregion
+
+        #region S
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.S_Tit), new MulLanStr(LanguageLabel.UI__S_Tit));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.S_CloseLab), new MulLanStr(LanguageLabel.Common__Confirm));
+
+        ResourceManager.Get(CanvasLabel.S_RankPanel).CreateTweenScale(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        tween = ResourceManager.Get(CanvasLabel.S_RankBK).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        tween.OnForwardStart +=
+            () =>
+            {
+                ResourceManager.Get(CanvasLabel.S_RankPanel).TweenForScale();
+            };
+
+        tween.OnBackwardStart +=
+            () =>
+            {
+                ResourceManager.Get(CanvasLabel.S_RankPanel).TweenBacScale();
+            };
+
+        ResourceManager.AddButtonEvent(CanvasLabel.S_Close, () => { SocialManager.CloseRankPanel(); });
+
+        #endregion
+
+        #region T
+
+        //ManaLan.Add(ManaReso.Get<Text>("T_RandomLab"), new LanStr("UI", PrefabLabel.T_Random));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.T_ConfirmLab), new MulLanStr(LanguageLabel.Common__Confirm));
+
+        ResourceManager.SetSprite(CanvasLabel.T_InputField, ResourceManager.LoadSprite(ResourceLabel.Expression_InputField, Folder.Scene));
+        
+        ResourceManager.Get(CanvasLabel.T_NickName).CreateTweenCG(0f, 1f, 0.25f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.T_NickNameBK).CreateTweenCG(0f, 1f, 0.25f, false, true, Curve.EaseOutQuad);
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.T_Confirm,
+            () =>
+            {
+                NickNameManager.ResetNickName();
+            }
+        );
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.T_Close,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.Close);
+                NickNameManager.CloseNickNameSettingPanel();
+            }
+        );
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.T_Random,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.Close);
+                NickNameManager.SetRandomName();
+            }
+        );
+
+        #endregion
+
+        #region U
+
+        ResourceManager.Get(CanvasLabel.U_LoadingPanel).CreateTweenCG(1, 0, 1f, true, false, Curve.EaseOutQuad);
+
+        ResourceManager.Get(CanvasLabel.U_Group).CreateTweenCG(0, 1f, 0.5f, false, true, Curve.EaseOutQuad);
+
+        tweenRoot = ResourceManager.Get(CanvasLabel.U_Icon).CreateTweenEuler(new Vector3(0, 0, -360), 1.25f, false, true, true, Curve.Linear);
+        tweenRoot.Repeat = true;
+        tweenRoot.StartForward();
+
+        #endregion
+
+        #region V
+
+        ResourceManager.Get(CanvasLabel.V_BlackMask).CreateTweenCG(1, 0, 0.25f, true, false, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region X
+
+        ResourceManager.Get<Image>(CanvasLabel.X_CreateChest).sprite = ResourceManager.LoadSprite("宝箱", Folder.Scene);
+        ResourceManager.Get<ImagePlus>(CanvasLabel.X_CurrentInfoImagePlus).sprite = ResourceManager.LoadSprite("Expression", Folder.Scene);
+
+        ResourceManager.SetSprite(CanvasLabel.X_SendPublicMessage, ResourceManager.LoadSprite(ResourceLabel.Expression_SendPublicMessage, Folder.Scene));
+        ResourceManager.SetSprite(CanvasLabel.X_CryFace, ResourceManager.LoadSprite(ResourceLabel.Expression_CryFace, Folder.Scene));
+        ResourceManager.SetSprite(CanvasLabel.X_ChagrinFace, ResourceManager.LoadSprite(ResourceLabel.Expression_ChagrinFace, Folder.Scene));
+        ResourceManager.SetSprite(CanvasLabel.X_HappyFace, ResourceManager.LoadSprite(ResourceLabel.Expression_HappyFace, Folder.Scene));
+        ResourceManager.SetSprite(CanvasLabel.X_SurpriseFace, ResourceManager.LoadSprite(ResourceLabel.Expression_SurpriseFace, Folder.Scene));
+        ResourceManager.SetSprite(CanvasLabel.X_InputField, ResourceManager.LoadSprite(ResourceLabel.Expression_InputField, Folder.Scene));
+        ResourceManager.SetSprite(CanvasLabel.X_HopeFace, ResourceManager.LoadSprite(ResourceLabel.Expression_HopeFace, Folder.Scene));
+        ResourceManager.SetSprite(CanvasLabel.X_SweatFace, ResourceManager.LoadSprite(ResourceLabel.Expression_SweatFace, Folder.Scene));
+        ResourceManager.SetSprite(CanvasLabel.X_OgleFace, ResourceManager.LoadSprite(ResourceLabel.Expression_OgleFace, Folder.Scene));
+        ResourceManager.SetSprite(CanvasLabel.X_Expression, ResourceManager.LoadSprite(ResourceLabel.Expression_Expression, Folder.Scene));
+        ResourceManager.SetSprite(CanvasLabel.X_BlueFace, ResourceManager.LoadSprite(ResourceLabel.Expression_BlueFace, Folder.Scene));
+
+        #region X_CreateChest
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.X_CreateChest,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ChestManager.OpenCreateChestPanel();
+            }
+        );
+
+        #endregion
+
+        #region X_Quit
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.X_Quit,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                SFSManager.GardenSmartFox.PlazaRoomController.LeavePlazaRoom();
+            }
+        );
+
+        #endregion
+
+        #region X_SendPublicMessage
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.X_SendPublicMessage,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                if (SFSManager.GardenSmartFox.PlazaRoomController.SendPublicMessage(ResourceManager.Get<InputField>(CanvasLabel.X_InputField).text))
+                {
+                    ResourceManager.Get<InputField>(CanvasLabel.X_InputField).text = "";
+                }
+            }
+        );
+
+        #endregion
+
+        #region X_Expression
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.X_Expression,
+            () =>
+            {
+                OpenExpressionGrid();
+            }
+        );
+
+        #endregion
+
+        #region X_Mask
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.X_Mask,
+            () =>
+            {
+                CloseExpressionGrid();
+            }
+        );
+
+        #endregion
+
+        #region Expression
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.X_BlueFace,
+            () =>
+            {
+                SFSManager.GardenSmartFox.PlazaRoomController.SendExpression(ExpressionID.郁闷);
+                CloseExpressionGrid();
+            }
+        );
+
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.X_SweatFace,
+            () =>
+            {
+                SFSManager.GardenSmartFox.PlazaRoomController.SendExpression(ExpressionID.汗颜);
+                CloseExpressionGrid();
+            }
+        );
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.X_SurpriseFace,
+            () =>
+            {
+                SFSManager.GardenSmartFox.PlazaRoomController.SendExpression(ExpressionID.惊讶);
+                CloseExpressionGrid();
+            }
+        );
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.X_HappyFace,
+            () =>
+            {
+                SFSManager.GardenSmartFox.PlazaRoomController.SendExpression(ExpressionID.开心);
+                CloseExpressionGrid();
+            }
+        );
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.X_CryFace,
+            () =>
+            {
+                SFSManager.GardenSmartFox.PlazaRoomController.SendExpression(ExpressionID.哭);
+                CloseExpressionGrid();
+            }
+        );
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.X_HopeFace,
+            () =>
+            {
+                SFSManager.GardenSmartFox.PlazaRoomController.SendExpression(ExpressionID.期待);
+                CloseExpressionGrid();
+            }
+        );
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.X_OgleFace,
+            () =>
+            {
+                SFSManager.GardenSmartFox.PlazaRoomController.SendExpression(ExpressionID.色咪咪);
+                CloseExpressionGrid();
+            }
+        );
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.X_ChagrinFace,
+            () =>
+            {
+                SFSManager.GardenSmartFox.PlazaRoomController.SendExpression(ExpressionID.委屈);
+                CloseExpressionGrid();
+            }
+        );
+
+        #endregion
+
+        #region X_OpenInfo
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.X_OpenInfo, () =>
+            {
+                ResourceManager.SetActive(CanvasLabel.X_CurrentInfo, false);
+                ResourceManager.SetActive(CanvasLabel.X_InfoBK, true);
+
+                Auxiliary.Instance.DelayCall
+                (
+                    () =>
+                    {
+                        LayoutRebuilder.MarkLayoutForRebuild(ResourceManager.Get<RectTransform>(CanvasLabel.X_Info));
+                    },
+                    1
+                );
+            }
+        );
+
+        #endregion
+
+        #region X_CloseInfo
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.X_CloseInfo, () =>
+            {
+                ResourceManager.SetActive(CanvasLabel.X_CurrentInfo, true);
+                ResourceManager.SetActive(CanvasLabel.X_InfoBK, false);
+            }
+        );
+
+        #endregion
+
+        #endregion
+
+        #region Y
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Y_Tit), new MulLanStr(LanguageLabel.UI__Yb_Tit));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Y_BtnLab), new MulLanStr(LanguageLabel.Common__Confirm));
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Yb_Tit), new MulLanStr(LanguageLabel.UI__Yb_Tit));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Yb_Desc), new MulLanStr(LanguageLabel.UI__Yb_LuckyDesc));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Yb_BtnLab), new MulLanStr(LanguageLabel.Common__Confirm));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Yb_SliderTit), new MulLanStr(LanguageLabel.UI__Yb_SliderTit));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Yb_ToggleLab0), new MulLanStr(LanguageLabel.UI__Yb_Lucky));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Yb_ToggleLab1), new MulLanStr(LanguageLabel.UI__Yb_GuessColor));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Yb_ToggleLab2), new MulLanStr(LanguageLabel.UI__Yb_GuessNumber));
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Ya_BtnLab), new MulLanStr(LanguageLabel.Common__Confirm));
+
+
+        ResourceManager.SetSprite(CanvasLabel.Y_InputField, ResourceManager.LoadSprite(ResourceLabel.Expression_InputField, Folder.Scene));
+        ResourceManager.SetSprite(CanvasLabel.Yb_InputField, ResourceManager.LoadSprite(ResourceLabel.Expression_InputField, Folder.Scene));
+
+
+        ResourceManager.Get(CanvasLabel.Y_Tip).CreateTweenCG(0, 1, 0.5f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.Y_Chest).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        ResourceManager.Get<Image>(CanvasLabel.Ya_Icon).sprite = ResourceManager.LoadSprite("钻石", Folder.Atlas);
+
+        ResourceManager.Get<Slider>(CanvasLabel.Yb_Slider).onValueChanged.AddListener(ChestManager.OnSliderValueChange);
+        ResourceManager.Get<InputField>(CanvasLabel.Yb_InputField).onValueChanged.AddListener(ChestManager.OnInputValueChange);
+
+        #region Y_Close
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.Y_Close,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.Close);
+
+                ChestManager.CloseCreateChestPanel();
+            }
+        );
+
+        #endregion
+
+        #region Yb_Toggle
+
+        ResourceManager.Get<Toggle>(CanvasLabel.Yb_Toggle0).onValueChanged.AddListener(ChestManager.OnLuckyToggle);
+        ResourceManager.Get<Toggle>(CanvasLabel.Yb_Toggle1).onValueChanged.AddListener(ChestManager.OnColorToggle);
+        ResourceManager.Get<Toggle>(CanvasLabel.Yb_Toggle2).onValueChanged.AddListener(ChestManager.OnNumberToggle);
+
+        #endregion
+
+        #region Yb_CreateChest
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.Yb_Btn,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ChestManager.CreateChest();
+            }
+        );
+
+        #endregion
+
+        #region Y_Btn
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.Y_Btn,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.Close);
+
+                PlazaRoomChest.SelectedChest.GetAward(ResourceManager.Get<InputField>(CanvasLabel.Y_InputField).text);
+            }
+        );
+
+        #endregion
+
+        #region Ya_Btn
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.Ya_Btn,
+            () =>
+            {
+                ChestManager.CloseCreateChestPanel();
+            }
+        );
+
+        #endregion
+
+        #endregion
+
+        #region Z
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Z_CreateLab), new MulLanStr(LanguageLabel.UI__Z_CreateLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Z_CloseLab), new MulLanStr(LanguageLabel.Common__Close));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Z_InfoLab0), new MulLanStr(LanguageLabel.UI__Z_InfoLab0));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Z_InfoLab1), new MulLanStr(LanguageLabel.UI__Z_InfoLab1));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Z_InfoLab2), new MulLanStr(LanguageLabel.UI__Z_InfoLab2));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Z_InfoLab3), new MulLanStr(LanguageLabel.UI__Z_InfoLab3));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Z_InfoLab4), new MulLanStr(LanguageLabel.UI__Z_InfoLab4));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Z_InfoLab5), new MulLanStr(LanguageLabel.UI__Z_InfoLab5));
+
+
+        ResourceManager.Get(CanvasLabel.Z_BK).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.Z_Tip).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        #region Z_Create
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.Z_Create,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                PlazaRoomManager.OpenCreateRoomPanel();
+            }
+        );
+
+        #endregion
+
+        #region Z_Close
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.Z_Close,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.Close);
+
+                PlazaRoomManager.CloseJoinRoomPanel();
+            }
+        );
+
+        #endregion
+
+        #region Z_InfoImg50
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.Z_InfoImg50,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                if (PlazaRoomManager.FilterFlag)
+                    PlazaRoomManager.DisableCreateByMeFilter();
+                else
+                    PlazaRoomManager.EnableCreateByMeFilter();
+            }
+        );
+
+        #endregion
+
+        #endregion
+
+        #region AA
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.AA_Lab), new MulLanStr(LanguageLabel.UI__AA_Lab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.AA_BtnLab), new MulLanStr(LanguageLabel.UI__AA_BtnLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.AAa_Tit), new MulLanStr(LanguageLabel.UI__AAa_Tit));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.AAb_Tit), new MulLanStr(LanguageLabel.UI__AAb_Tit));
+
+        ResourceManager.SetSprite(CanvasLabel.AA_InputField, ResourceManager.LoadSprite(ResourceLabel.Expression_InputField, Folder.Scene));
+
+        ResourceManager.Get(CanvasLabel.AA_Tip).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.AA_CreatePlazaRoom).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        #region AA_Close
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.AA_Close,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.Close);
+
+                PlazaRoomManager.CloseCreateRoomPanel();
+            }
+        );
+
+        #endregion
+
+        #region AA_Create
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.AA_Btn,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                PlazaRoomManager.CreateRoom();
+
+                ResourceManager.Get<InputField>(CanvasLabel.AA_InputField).text = "";
+            }
+        );
+
+        #endregion
+
+        #endregion
+
+        #region AI
+
+        AlertPanel.Init();
+
+        #endregion
+
+        ResourceManager.Get<Text>(CanvasLabel.K_Tit).resizeTextForBestFit = true;
+        ResourceManager.Get<Text>(CanvasLabel.K_Tit).resizeTextMaxSize = 21;
+
+        if (!TutorialManager.NewplayerTutorial)
+        {
+            SetEnterMinigameGameLabel();
+        }
+
+        ResourceManager.Get(CanvasLabel.C_Group).GetTweenCG().InOrigin = true;
+        ResourceManager.Get(CanvasLabel.F_Manage).GetTweenGra().InOrigin = true;
+        ResourceManager.SetActive(CanvasLabel.F_Manage, false);
+        ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec().InOrigin = true;
+    }
+
+
+    public override void TutorialToRegular()
+    {
+        SetEnterMinigameGameLabel();
+    }
+
+    public static void SetEnterMinigameGameLabel()
+    {
+        HudTarget hudTarget = ResourceManager.Get(CanvasLabel.C_MiniGame).GetComponent<HudTarget>();
+        if (hudTarget == null)
+        {
+            hudTarget = ResourceManager.Get(CanvasLabel.C_MiniGame).AddComponent<HudTarget>();
+        }
+        hudTarget.PosTra = PlayerManager.Player.ChildDic[PlayerLabel.EnterGameTra];
+
+        hudTarget = ResourceManager.Get(CanvasLabel.C_Tip).GetComponent<HudTarget>();
+        if (hudTarget == null)
+        {
+            hudTarget = ResourceManager.Get(CanvasLabel.C_Tip).AddComponent<HudTarget>();
+        }
+        hudTarget.PosTra = PlayerManager.Player.ChildDic[PlayerLabel.EnterGameTra];
+    }
+
+
+    public void LoginCallback(JsonData jsonData)
+    {
+        if (HttpManager.IsConnect)
+        {
+            ResourceManager.Get(CanvasLabel.Fg_Reconnect).TweenBacCG();
+
+            ResourceManager.Get<Button>(CanvasLabel.Fg_Btn).interactable = true;
+
+            ResourceManager.SetText(CanvasLabel.Fg_Lab, Language.GetStr(LanguageLabel.UI__Fg_Lab2));
+        }
+        else
+        {
+            ResourceManager.Get<Button>(CanvasLabel.Fg_Btn).interactable = true;
+
+            ResourceManager.SetText(CanvasLabel.Fg_Lab, Language.GetStr(LanguageLabel.UI__Fg_Lab3));
+        }
+    }
+
+
+    public static void ShowCredits()
+    {
+        ResourceManager.Get(CanvasLabel.Lc_CreditsMask).TweenForCG();
+        ResourceManager.Get(CanvasLabel.Lc_CreditsContent).TweenForCG();
+        ResourceManager.Get(CanvasLabel.Lc_CreditsContent).TweenReForVec();
+
+        StopPlayCreditsRoutine = Auxiliary.Instance.DelayCall
+        (
+            () =>
+            {
+                ResourceManager.Get(CanvasLabel.Lc_CreditsMask).TweenBacCG();
+                ResourceManager.Get(CanvasLabel.Lc_CreditsContent).TweenBacCG();
+            },
+            10f
+        );
+    }
+
+
+    public static void UpdateManagePanelHint() //侧边栏红色描边
+    {
+        if (TutorialManager.NewplayerTutorial)
+        {
+            return;
+        }
+
+
+        TweenOutline tween = ResourceManager.Get(CanvasLabel.C_Manage).GetTweenOutline();
+
+        for (int i = 0; i < Manager.SkillList.Count; i++)
+        {
+            if (Manager.SkillList[i].ItemStatus == SkillStatus.UnLock)
+            {
+                if (tween.InPause)
+                {
+                    tween.Resume();
+
+                    tween.Target.enabled = true;
+                }
+                else
+                {
+                    tween.StartForward();
+                }
+
+                return;
+            }
+        }
+
+
+        tween.Target.enabled = false;
+
+        tween.Pause();
+    }
+
+
+    public static void OpenManagePanel()
+    {
+        ResourceManager.Get(CanvasLabel.F_Manage0).TweenForVec();
+
+        AudioManager.PlayClip(AudioLabel.ClickButton);
+
+        if (TutorialManager.NewplayerTutorial)
+        {
+            return;
+        }
+
+        SkillRoot skillRoot = null;
+        ScrollRect scrollRect = null;
+        foreach (var skill in Manager.SkillList)
+        {
+            if (skill.ItemStatus == SkillStatus.UnLock)
+            {
+                skillRoot = skill;
+                break;
+            }
+        }
+
+        if (skillRoot != null)
+        {
+            MoveRoot moveRoot;
+            ResourceManager.Get<CanvasGroup>(CanvasLabel.F_Manage0).interactable = false;
+            TweenRoot tweenRoot = ResourceManager.Get(CanvasLabel.F_Manage).GetTweenGra();
+            tweenRoot.AddEventOnetime
+            (
+                EventType.ForwardFinish,
+                () =>
+                {
+                    if (skillRoot.SkillType == SkillType.Skill || skillRoot.SkillType == SkillType.BigSkill)
+                    {
+                        ResourceManager.Get<Button>(CanvasLabel.F_Garden).onClick.Invoke();
+                        DelayCall.Call
+                        (
+                            1,
+                            () =>
+                            {
+                                int index = skillRoot.SkillItem.GetSiblingIndex();
+                                scrollRect = ResourceManager.Get<ScrollRect>(CanvasLabel.Fa_Scrr);
+                                if (index < scrollRect.content.childCount - MaxSkillDisplayAmt)
+                                {
+                                    moveRoot = scrollRect.Locate(index, 0.25f, Curve.EaseOutQuad, LocatePos.Up);
+                                    moveRoot.AddEventOnetime(EventType.ForwardFinish, () => ResourceManager.Get<CanvasGroup>(CanvasLabel.F_Manage0).interactable = true);
+                                }
+                                else
+                                {
+                                    moveRoot = scrollRect.Locate(scrollRect.content.childCount - 1, 0.25f, Curve.EaseOutQuad, LocatePos.Down);
+                                    moveRoot.AddEventOnetime(EventType.ForwardFinish, () => ResourceManager.Get<CanvasGroup>(CanvasLabel.F_Manage0).interactable = true);
+                                }
+                            }
+                        );
+                    }
+                    else if (skillRoot.SkillType == SkillType.Ability)
+                    {
+                        ResourceManager.Get<Button>(CanvasLabel.F_Elf).onClick.Invoke();
+                        DelayCall.Call
+                        (
+                            1,
+                            () =>
+                            {
+                                int index = skillRoot.SkillItem.GetSiblingIndex();
+                                scrollRect = ResourceManager.Get<ScrollRect>(CanvasLabel.Fd_Scrr);
+                                if (index < scrollRect.content.childCount - MaxAbilityDisplayAmt)
+                                {
+                                    moveRoot = scrollRect.Locate(index, 0.25f, Curve.EaseOutQuad, LocatePos.Up);
+                                    moveRoot.AddEventOnetime(EventType.ForwardFinish, () => ResourceManager.Get<CanvasGroup>(CanvasLabel.F_Manage0).interactable = true);
+                                }
+                                else
+                                {
+                                    moveRoot = scrollRect.Locate(scrollRect.content.childCount - 1, 0.25f, Curve.EaseOutQuad, LocatePos.Down);
+                                    moveRoot.AddEventOnetime(EventType.ForwardFinish, () => ResourceManager.Get<CanvasGroup>(CanvasLabel.F_Manage0).interactable = true);
+                                }
+                            }
+                        );
+                    }
+                    else
+                    {
+                        ResourceManager.Get<CanvasGroup>(CanvasLabel.F_Manage0).interactable = true;
+                        throw new Exception();
+                    }
+                }
+            );
+        }
+    }
+
+
+    public static void NavigateToBuyCoin()
+    {
+        ResourceManager.Get<Button>(CanvasLabel.F_Magic).onClick.Invoke();
+
+        Auxiliary.Instance.DelayCall
+            (
+                () =>
+                {
+                    int index = ResourceManager.Get(CanvasLabel.Fb_Grid).childCount - 1;
+
+                    ResourceManager.Get<ScrollRect>(CanvasLabel.Fb_Scrr).Locate(index, 0.25f, Curve.EaseOutQuad, LocatePos.Down);
+                },
+                1
+            );
+    }
+
+    public static void NavigateToBuyDiamond()
+    {
+        ResourceManager.Get<Button>(CanvasLabel.F_Store).onClick.Invoke();
+
+        Auxiliary.Instance.DelayCall
+        (
+            () =>
+            {
+                int index = ResourceManager.Get(CanvasLabel.Fc_Grid).childCount - 1;
+
+                ResourceManager.Get<ScrollRect>(CanvasLabel.Fc_Scrr).Locate(index, 0.25f, Curve.EaseOutQuad, LocatePos.Down);
+            },
+            1
+        );
+    }
+
+
+    private static void OpenExpressionGrid()
+    {
+        ResourceManager.SetActive(CanvasLabel.X_GridBK, true);
+        ResourceManager.SetActive(CanvasLabel.X_Mask, true);
+        ResourceManager.SetActive(CanvasLabel.X_InfoParent, false);
+    }
+
+    private static void CloseExpressionGrid()
+    {
+        ResourceManager.SetActive(CanvasLabel.X_GridBK, false);
+        ResourceManager.SetActive(CanvasLabel.X_Mask, false);
+        ResourceManager.SetActive(CanvasLabel.X_InfoParent, true);
+    }
+
+
+    public static void BlockOfflinePanel()
+    {
+        ResourceManager.Get(CanvasLabel.B_SignIn0).TweenBacCG();
+        ResourceManager.Get(CanvasLabel.T_NickName).TweenBacCG();
+        ResourceManager.Get(CanvasLabel.R_Notify0).TweenBacCG();
+    }
+
+    public static void UnblockOfflinePanel()
+    {
+        ResourceManager.Get(CanvasLabel.B_SignIn0).TweenForCG();
+        ResourceManager.Get(CanvasLabel.T_NickName).TweenForCG();
+        ResourceManager.Get(CanvasLabel.R_Notify0).TweenForCG();
+    }
+
+
+    private static void ShareScreenShot()
+    {
+        float scaleFactor = ResourceManager.Get<Canvas>(CanvasLabel.Canvas).scaleFactor;
+        RectTransform rectTransform = ResourceManager.Get<RectTransform>(CanvasLabel.P_ScreenShotRect);
+        int width = (int) (rectTransform.rect.width*scaleFactor);
+        int height = (int) (rectTransform.rect.height*scaleFactor);
+        Vector2 screenPosition = RectTransformUtility.WorldToScreenPoint(null, rectTransform.position);
+
+        Texture2D texture2D = new Texture2D(width, height, TextureFormat.RGBA32, false);
+        texture2D.ReadPixels(new Rect(screenPosition.x, screenPosition.y, width, height), 0, 0);
+        texture2D.Apply();
+
+        string screenShotPath = string.Format("{0}/MyLovelyGarden.png", Application.persistentDataPath);
+        File.WriteAllBytes(screenShotPath, texture2D.EncodeToPNG());
+
+        IAPManager.Share(screenShotPath, Language.GetStr(LanguageLabel.Common__ScreenShotShareContent));
+
+        DelayCall.Call
+        (
+            1,
+            () =>
+            {
+                ResourceManager.SetActive(CanvasLabel.P_Open, true);
+                ResourceManager.SetActive(CanvasLabel.P_Share, true);
+            }
+        );
+    }
+
+
+    private static void OnLanguageChange(CurrentLanguage fromLanguage, CurrentLanguage toLanguage)
+    {
+        if (toLanguage == CurrentLanguage.ChineseSimplified)
+        {
+            ResourceManager.SetActive(CanvasLabel.C_WelcomeIcon, false);
+            ResourceManager.SetActive(CanvasLabel.C_HeartIcon, true);
+        }
+        else
+        {
+            ResourceManager.SetActive(CanvasLabel.C_WelcomeIcon, true);
+            ResourceManager.SetActive(CanvasLabel.C_HeartIcon, false);
+        }
+    }
 }

+ 1204 - 1158
Assets/Script/Manage/VisitManager.cs

@@ -1,1159 +1,1205 @@
-using LitJson;
-
-using UnityEngine;
-using UnityEngine.UI;
-using UnityEngine.Events;
-
-using System;
-using System.Xml;
-using System.Collections;
-using System.Collections.Generic;
-
-using Random = UnityEngine.Random;
-
-public enum ConfigSource
-{
-    Fake,
-    Random,
-    SerialNumber,
-}
-
-public class VisitData
-{
-    //public bool Praised;
-
-    public JsonData JsonData;
-    public XmlDocument Document;
-
-    public VisitData(JsonData jsonData, XmlDocument document)
-    {
-        JsonData = jsonData;
-        Document = document;
-    }
-}
-
-public class VisitManager : Regist
-{
-    #region Config
-
-    #region 配置
-
-    public static int VisitCost
-    {
-        get { return visitCost; }
-        set
-        {
-            visitCost = value;
-
-            ResourceManager.Get<Text>(CanvasLabel.C_CostLab).text = TransferLabel.CoinSprite + VisitCost;
-        }
-    }
-    public static int visitCost;
-
-    public static int VisitCDTime;
-    public static float FancyGardenRate;
-    public static float CreateAwardRate;
-    public static float FakeGardenRate;
-    public static string VisitCostFml;
-    public static string AwardMinFml;
-    public static string AwardMaxFml;
-
-    #endregion
-
-    public static int MaxTipAmt = 10;
-    public static Action OnExitVisteeGarden;
-    public static Action OnEnterVisteeGarden;
-
-    public static int MaxStachConfigAmt = 8;
-    public static float PullArchiveTime = 0.5f;
-    public static float PullConfigTimer;
-    public static List<VisitData> UsedDataList = new List<VisitData>();
-    public static List<VisitData> UnusedDataList = new List<VisitData>();
-
-    public static bool Inited;
-    public static bool InVisit;
-    public static bool IsPullConfigComplete;
-    public static bool IsBlackMaskTweenComplete;
-
-    public static int VisiteeLevel;
-    public static int VisiteeTotalSlot;
-    public static int VisiteePraiseAmt;
-    public static string VisiteeSerialNumber;
-    public static Player VisiteePlayer;
-    public static XmlNode VisiteeRootNode;
-    public static XmlDocument VisiteeDocument;
-    public static List<Slot> VisiteePlantList;
-
-    public static bool PlayerBirdFlag;
-    public static bool PlayerTreeFlag;
-    public static bool PlayerRainbowFlag;
-    public static List<Slot> PlayerPlantList;
-    public static List<ElfType> PlayerElfList;
-
-    #endregion
-
-    public void Update()
-    {
-        if (UnusedDataList.Count > MaxStachConfigAmt)
-        {
-            return;
-        }
-
-        PullConfigTimer += Time.deltaTime;
-
-        if (PullConfigTimer >= PullArchiveTime)
-        {
-            PullConfigTimer = 0;
-
-            HttpManager.GetRandomConfig
-            (
-                data =>
-                {
-                    PullConfigCallback(data, null, SavePulledConfig);
-                }
-            );
-        }
-    }
-
-
-    public static void Init()
-    {
-        MaxTipAmt = 0;
-        for (int i = 1; i < 100; i++)
-        {
-            if (Language.ContainNode(LanguageLabel.Tip, LanguageLabel.Tip + i))
-            {
-                MaxTipAmt++;
-            }
-        }
-        MaxTipAmt++;
-
-        XmlAttributeCollection attribute = ConfigManager.GetVisitConfig();
-
-        VisitCostFml = attribute[5].Value;
-
-        VisitCost = Mathf.FloorToInt((float)Auxiliary.FmlParse(VisitCostFml, "l", Manager.GardenLevel.ToString()));
-        AwardMinFml = attribute[2].Value;
-        AwardMaxFml = attribute[3].Value;
-
-        VisitCDTime = int.Parse(attribute[4].Value);
-        FancyGardenRate = float.Parse(attribute[7].Value);
-        CreateAwardRate = float.Parse(attribute[1].Value);
-        FakeGardenRate = float.Parse(attribute[6].Value);
-
-        #region 倒计时
-
-        if (VisitCDTime != 0)
-        {
-            Text text = ResourceManager.Get<Text>(CanvasLabel.C_VisitLab);
-
-            List<float> delayList = new List<float>();
-            List<float> durationList = new List<float>();
-            List<VecPair> pairList = new List<VecPair>();
-            List<UnityAction> actionList = new List<UnityAction>();
-
-            Vector3 v1 = new Vector3(0.75f, 0.75f, 0.75f);
-            Vector3 v2 = new Vector3(0.4f, 0.4f, 0.4f);
-            Vector3 v3 = new Vector3(0, 0, 0);
-
-            for (int i = 0; i < VisitCDTime - 1; i++)
-            {
-                delayList.Add(0.5f);
-                delayList.Add(0);
-            }
-
-            delayList.Add(0.5f);
-
-            for (int i = 0; i < VisitCDTime; i++)
-            {
-                durationList.Add(0.25f);
-                durationList.Add(0.25f);
-
-                pairList.Add(new VecPair(v1, v2));
-                pairList.Add(new VecPair(v2, v3));
-
-                var tempInt = i;
-                actionList.Add
-                (
-                    () =>
-                    {
-                        text.text = (VisitCDTime - tempInt).ToString();
-                        AudioManager.PlayClip(AudioLabel.ClickButton);
-                    }
-                );
-
-                actionList.Add(null);
-            }
-
-            TweenRoot tween = ResourceManager.Get(CanvasLabel.C_VisitLab).CreateStreamScale
-            (
-                delayList,
-                durationList,
-                pairList,
-                true,
-                false,
-                Curve.EaseOutQuad,
-                false,
-                actionList
-            );
-
-            tween.OnForwardFinish += () =>
-            {
-                AudioManager.PlayClip(AudioLabel.Bubble);
-            };
-        }
-
-        #endregion
-
-        OnEnterVisteeGarden += () =>
-        {
-            ResourceManager.SetActive(CanvasLabel.C_OpenCloseRightSidePanelButtons, false);
-            ResourceManager.Get<Button>(CanvasLabel.C_OpenSidePanelButton).onClick.Invoke();
-
-            if (LeftSidePanel.isOpen == false)
-            {
-                ResourceManager.Get<Button>(CanvasLabel.C_OpenLeftSidePanelButton).onClick.Invoke();
-            }
-            ResourceManager.SetActive(CanvasLabel.C_OpenCloseLeftSidePanelButtons, false);
-        };
-
-        OnExitVisteeGarden += () =>
-        {
-            ResourceManager.SetActive(CanvasLabel.C_OpenCloseRightSidePanelButtons, true);
-
-            ResourceManager.SetActive(CanvasLabel.C_OpenCloseLeftSidePanelButtons, true);
-            LeftSidePanel.Refresh();
-        };
-
-        Inited = true;
-    }
-
-
-    public static void OnStartEnterVisiteeGarden()
-    {
-        ResourceManager.SetActive(CanvasLabel.C_FashionShowButton, false);
-        ResourceManager.SetActive(CanvasLabel.C_EnterPlazaRoom0, false);
-    }
-
-    public static void EnterVisiteeGarden(VisitData visitData)
-    {
-        IsPullConfigComplete = true;
-        VisiteePraiseAmt = int.Parse(visitData.JsonData["p"].ToString());
-        if (visitData.JsonData.Inst_Object.ContainsKey("i"))
-        {
-            VisiteeSerialNumber = visitData.JsonData["i"].ToString();
-        }
-
-        VisiteeDocument = visitData.Document;
-
-        SetVisiteeCommentPanel();
-
-        EnterVisiteeGarden();
-
-        OnEnterVisteeGarden.SafeInvoke();
-
-        if (Application.isEditor)
-        {
-            Debug.Log(VisiteeSerialNumber);
-        }
-    }
-
-    public static void StartExitVisiteeGarden()
-    {
-        ResourceManager.Get(CanvasLabel.I_BlackMask).TweenForCG();
-
-		HideTip ();
-
-        ResourceManager.SetActive(CanvasLabel.C_Visit, true);
-        ResourceManager.SetActive(CanvasLabel.C_Coin, true);
-        ResourceManager.SetActive(CanvasLabel.C_Group1, true);
-        ResourceManager.SetActive(CanvasLabel.C_Group2, true);
-
-        ResourceManager.Get<Button>(CanvasLabel.C_NickNameBK).interactable = true;
-
-        ResourceManager.SetActive(CanvasLabel.C_Return, false);
-        ResourceManager.SetActive(CanvasLabel.C_Garden, false);
-
-        GardenManager.InMinigameFlag = true;
-
-        #region Garden
-
-        GardenManager.RetriveAllFlower();
-
-        for (int i = 0; i < GardenManager.SlotPageList.Count; i++)
-        {
-            ResourceManager.Save(GardenManager.SlotPageList[i]);
-        }
-
-        GardenManager.SlotPageList = new List<Transform>();
-
-        GardenManager.SlotList = new List<Slot>();
-        GardenManager.SlotPageList = new List<Transform>();
-
-
-        Garden.ResetPage();
-        Garden.PagePos = new List<Vector3>();
-
-        int pageAmt = GardenManager.DefaultSlotPage;
-
-        if (GardenManager.TotalSlot >= GardenManager.CriticalSlotIndex)
-        {
-            pageAmt = (GardenManager.TotalSlot - GardenManager.CriticalSlotIndex) / GardenManager.TotalSlotInOnePage + 3;
-        }
-
-        for (int i = 0; i < pageAmt; i++)
-        {
-            GardenManager.CreatePage();
-        }
-
-        for (int i = 0; i < GardenManager.SlotList.Count; i++)
-        {
-            if (i < GardenManager.TotalSlot)
-            {
-                GardenManager.SlotList[i].Lock = true;
-                GardenManager.SlotList[i].Available = true;
-            }
-            else
-            {
-                GardenManager.SlotList[i].Lock = false;
-                GardenManager.SlotList[i].Available = false;
-            }
-        }
-
-
-        List<KV<int, int>> plantList = ConfigManager.GetPlantList();
-
-        for (int i = 0; i < plantList.Count; i++)
-        {
-            GardenManager.PlantFlower(plantList[i].Key, plantList[i].Value);
-        }
-
-        #endregion
-
-        #region Bird Tree Rainbow
-
-        if (PlayerBirdFlag)
-        {
-            ResourceManager.Get(GardenLabel.BirdPivot).GetTweenSr().InDestination = true;
-        }
-        else
-        {
-            ResourceManager.Get(GardenLabel.BirdPivot).GetTweenSr().InOrigin = true;
-        }
-
-        if (PlayerTreeFlag)
-        {
-            ResourceManager.Get(GardenLabel.GardenLeftTree).GetTweenSr().InDestination = true;
-            ResourceManager.Get(GardenLabel.GardenRightTree).GetTweenSr().InDestination = true;
-        }
-        else
-        {
-            ResourceManager.Get(GardenLabel.GardenLeftTree).GetTweenSr().InOrigin = true;
-            ResourceManager.Get(GardenLabel.GardenRightTree).GetTweenSr().InOrigin = true;
-        }
-
-        if (PlayerRainbowFlag)
-        {
-            ResourceManager.Get(GardenLabel.GardenRainbow).GetTweenSr().InDestination = true;
-        }
-        else
-        {
-            ResourceManager.Get(GardenLabel.GardenRainbow).GetTweenSr().InOrigin = true;
-        }
-
-        #endregion
-
-        #region Player
-
-        DestroyImmediate(PlayerManager.Player.gameObject);
-        //ResourceManager.Save(PlayerManager.Player);
-
-        ResourceManager.TransformDictionary.Remove(PlayerLabel.Player);
-
-        PlayerManager.Instance.GetPlayer();
-        UIManager.SetEnterMinigameGameLabel();
-
-        Garden.PlayerPos = new List<Vector3>();
-
-        Garden.Player = ResourceManager.Get(PlayerLabel.Player);
-        Garden.PlayerPos.Add(PlayerManager.Player.ChildDic[PlayerLabel.RightPos].position);
-        Garden.PlayerPos.Add(PlayerManager.Player.ChildDic[PlayerLabel.LeftPos].position);
-
-        #endregion
-
-        GardenManager.ElfList = new List<ElfType>(PlayerElfList);
-
-        InVisit = false;
-        IsPullConfigComplete = false;
-        IsBlackMaskTweenComplete = false;
-
-        SetPlayerPraise();
-        SetPlayerCommentPanel();
-        SetPlayerRankPanel();
-        SetPlayerNickName();
-        OnExitVisteeGarden.SafeInvoke();
-    }
-
-    public static void OnStartExitVisiteeGarden()
-    {
-        if (Manager.GardenLevel >= TutorialManager.PlazaRoomTutorialLevel)
-        {
-            ResourceManager.SetActive(CanvasLabel.C_FashionShowButton, true);
-            ResourceManager.SetActive(CanvasLabel.C_EnterPlazaRoom0, true);
-        }
-    }
-
-    public static void EnterVisiteeGarden()
-    {
-        if (!IsPullConfigComplete || !IsBlackMaskTweenComplete)
-        {
-            return;
-        }
-
-        //if (ConfigManager.GetConfigVersion(ConfigManager.ConfigDocument) < ConfigManager.GetConfigVersion(VisiteeDocument))
-        //{
-        //    ShowVisitFailPanelFromSelfGarden();
-        //    return;
-        //}
-
-        ResourceManager.Get(CanvasLabel.I_BlackMask).TweenForCG();
-        //Debug.Log(Document.OuterXml);
-        SetVisiteePraise(VisiteeDocument);
-
-        VisiteeRootNode = VisiteeDocument.SelectSingleNode(PlayerConfigLabel.RootNode);
-
-        ResourceManager.SetActive(CanvasLabel.C_Coin, false);
-        ResourceManager.SetActive(CanvasLabel.C_Group1, false);
-        ResourceManager.SetActive(CanvasLabel.C_Group2, false);
-
-        ResourceManager.Get<Button>(CanvasLabel.C_NickNameBK).interactable = false;
-
-        ResourceManager.SetActive(CanvasLabel.C_Garden, true);
-
-        if (!InVisit)
-        {
-            GardenManager.RetrieveAllStar();
-            GardenManager.RetrieveAllElf();
-            IAPManager.RetrieveADChest();
-
-            GardenManager.StarList = new List<Star>();
-        }
-
-        if (FriendPanel.FriendAccountDatas.MyContains(data => data.SerialNumber == VisiteeSerialNumber))
-        {
-            ResourceManager.SetActive(CanvasLabel.C_AddFriendButton, false);
-        }
-        else
-        {
-            ResourceManager.SetActive(CanvasLabel.C_AddFriendButton, true);
-        }
-
-        ResourceManager.SetActive(CanvasLabel.C_Return, true);
-
-        GardenManager.InMinigameFlag = false;
-
-        #region Bird Tree Rainbow
-
-        if (!InVisit)
-        {
-            if (ResourceManager.Get(GardenLabel.BirdPivot).gameObject.activeSelf)
-            {
-                PlayerBirdFlag = true;
-            }
-
-            if (ResourceManager.Get(GardenLabel.GardenLeftTree).gameObject.activeSelf)
-            {
-                PlayerTreeFlag = true;
-            }
-
-            if (ResourceManager.Get(GardenLabel.GardenRainbow).gameObject.activeSelf)
-            {
-                PlayerRainbowFlag = true;
-            }
-        }
-
-        ResourceManager.SetActive(GardenLabel.BirdPivot, false);
-        ResourceManager.SetActive(GardenLabel.GardenLeftTree, false);
-        ResourceManager.SetActive(GardenLabel.GardenRightTree, false);
-        ResourceManager.SetActive(GardenLabel.GardenRainbow, false);
-
-        #endregion
-
-        #region Ability
-
-        VisiteeTotalSlot = GardenManager.DefaultUnlockSlot;
-        VisiteeTotalSlot += ConfigManager.GetIntFormConfig(PlayerConfigLabel.ExtraSlot);
-
-        if (!InVisit)
-        {
-            PlayerElfList = new List<ElfType>(GardenManager.ElfList);
-        }
-
-        GardenManager.ElfList = new List<ElfType>();
-
-        List<XmlAttributeCollection> attributeList = ConfigManager.GetSkillList(VisiteeRootNode);
-
-        for (int i = 0; i < attributeList.Count; i++)
-        {
-            if (!attributeList[i][0].Value.Contains("Ability"))
-            {
-                continue;
-            }
-
-            if (attributeList[i][0].Value == "Ability1")
-            {
-                VisiteeLevel = int.Parse(attributeList[i][3].Value);
-
-                ResourceManager.SetText(CanvasLabel.C_GardenLab, Language.GetStr(LanguageLabel.UI__C_GardenLab) + VisiteeLevel);
-
-                continue;
-            }
-
-            if (int.Parse(attributeList[i][3].Value) == 0)
-            {
-                continue;
-            }
-
-            if (attributeList[i][0].Value == "Ability2")
-            {
-                ResourceManager.Get(GardenLabel.GardenRainbow).GetTweenSr().InDestination = true;
-            }
-            else if (attributeList[i][0].Value == "Ability3")
-            {
-                ResourceManager.Get(GardenLabel.GardenLeftTree).GetTweenSr().InDestination = true;
-                ResourceManager.Get(GardenLabel.GardenRightTree).GetTweenSr().InDestination = true;
-            }
-            else if (attributeList[i][0].Value == "Ability4")
-            {
-                ResourceManager.Get(GardenLabel.BirdPivot).GetTweenSr().InDestination = true;
-            }
-            else if (attributeList[i][0].Value == "Ability5")
-            {
-                GardenManager.ElfList.Add(ElfType.Bee_Yellow);
-            }
-            else if (attributeList[i][0].Value == "Ability6")
-            {
-                VisiteeTotalSlot++;
-
-                GardenManager.ElfList.Add(ElfType.Bee_Purple);
-            }
-            else if (attributeList[i][0].Value == "Ability7")
-            {
-                VisiteeTotalSlot++;
-
-                GardenManager.ElfList.Add(ElfType.Bee_Blue);
-            }
-            else if (attributeList[i][0].Value == "Ability8")
-            {
-                VisiteeTotalSlot++;
-
-                GardenManager.ElfList.Add(ElfType.Bee_Red);
-            }
-            else if (attributeList[i][0].Value == "Ability9")
-            {
-                VisiteeTotalSlot++;
-
-                GardenManager.ElfList.Add(ElfType.Bee_White);
-            }
-            else if (attributeList[i][0].Value == "Ability10")
-            {
-                VisiteeTotalSlot++;
-
-                GardenManager.ElfList.Add(ElfType.Butterfly_Yellow);
-            }
-            else if (attributeList[i][0].Value == "Ability11")
-            {
-                VisiteeTotalSlot++;
-
-                GardenManager.ElfList.Add(ElfType.Butterfly_Purple);
-            }
-            else if (attributeList[i][0].Value == "Ability12")
-            {
-                VisiteeTotalSlot++;
-
-                GardenManager.ElfList.Add(ElfType.Butterfly_Blue);
-            }
-            else if (attributeList[i][0].Value == "Ability13")
-            {
-                VisiteeTotalSlot++;
-
-                GardenManager.ElfList.Add(ElfType.Butterfly_Red);
-            }
-            else if (attributeList[i][0].Value == "Ability14")
-            {
-                VisiteeTotalSlot++;
-
-                GardenManager.ElfList.Add(ElfType.Butterfly_White);
-            }
-            else if (attributeList[i][0].Value == "Ability15")
-            {
-                VisiteeTotalSlot++;
-
-                GardenManager.ElfList.Add(ElfType.Dragonfly_Yellow);
-            }
-            else if (attributeList[i][0].Value == "Ability16")
-            {
-                VisiteeTotalSlot++;
-
-                GardenManager.ElfList.Add(ElfType.Dragonfly_Purple);
-            }
-            else if (attributeList[i][0].Value == "Ability17")
-            {
-                VisiteeTotalSlot++;
-
-                GardenManager.ElfList.Add(ElfType.Dragonfly_Blue);
-            }
-            else if (attributeList[i][0].Value == "Ability18")
-            {
-                VisiteeTotalSlot++;
-
-                GardenManager.ElfList.Add(ElfType.Dragonfly_Red);
-            }
-            else if (attributeList[i][0].Value == "Ability19")
-            {
-                VisiteeTotalSlot++;
-
-                GardenManager.ElfList.Add(ElfType.Dragonfly_White);
-            }
-            else if (attributeList[i][0].Value == "Ability20")
-            {
-                VisiteeTotalSlot++;
-
-                GardenManager.ElfList.Add(ElfType.Beetle_Yellow);
-            }
-            else if (attributeList[i][0].Value == "Ability21")
-            {
-                VisiteeTotalSlot++;
-
-                GardenManager.ElfList.Add(ElfType.Beetle_Purple);
-            }
-            else if (attributeList[i][0].Value == "Ability22")
-            {
-                VisiteeTotalSlot++;
-
-                GardenManager.ElfList.Add(ElfType.Beetle_Blue);
-            }
-            else if (attributeList[i][0].Value == "Ability23")
-            {
-                VisiteeTotalSlot++;
-
-                GardenManager.ElfList.Add(ElfType.Beetle_Red);
-            }
-            else if (attributeList[i][0].Value == "Ability24")
-            {
-                VisiteeTotalSlot++;
-
-                GardenManager.ElfList.Add(ElfType.Beetle_White);
-            }
-        }
-        
-        #endregion
-
-        #region Garden
-
-        if (!InVisit)
-        {
-            PlayerPlantList = new List<Slot>(GardenManager.PlantSlotList);
-
-            ConfigManager.SaveDress();
-            ConfigManager.SavePlantList();
-        }
-
-        GardenManager.RetriveAllFlower();
-
-        for (int i = 0; i < GardenManager.SlotPageList.Count; i++)
-        {
-            ResourceManager.Save(GardenManager.SlotPageList[i]);
-        }
-
-        GardenManager.SlotPageList = new List<Transform>();
-
-        GardenManager.SlotList = new List<Slot>();
-        GardenManager.SlotPageList = new List<Transform>();
-
-
-        Garden.ResetPage();
-        Garden.PagePos = new List<Vector3>();
-
-        int pageAmt = GardenManager.DefaultSlotPage;
-
-        if (VisiteeTotalSlot >= GardenManager.CriticalSlotIndex)
-        {
-            pageAmt = (VisiteeTotalSlot - GardenManager.CriticalSlotIndex) / GardenManager.TotalSlotInOnePage + 3;
-        }
-
-        for (int i = 0; i < pageAmt; i++)
-        {
-            GardenManager.CreatePage();
-        }
-        
-        for (int i = 0; i < GardenManager.SlotList.Count; i++)
-        {
-            if (i < VisiteeTotalSlot)
-            {
-                GardenManager.SlotList[i].Lock = true;
-                GardenManager.SlotList[i].Available = true;
-            }
-            else
-            {
-                GardenManager.SlotList[i].Lock = false;
-                GardenManager.SlotList[i].Available = false;
-            }
-        }
-
-        List<KV<int, int>> plantList = ConfigManager.GetPlantList(VisiteeRootNode);
-
-        for (int i = 0; i < plantList.Count; i++)
-        {
-            GardenManager.PlantFlower(plantList[i].Key, plantList[i].Value);
-        }
-
-        #endregion
-
-        #region Player
-
-        DestroyImmediate(PlayerManager.Player.gameObject);
-        //ResourceManager.Save(PlayerManager.Player);
-
-        ResourceManager.TransformDictionary.Remove(PlayerLabel.Player);
-
-        VisiteePlayer = PlayerManager.Instance.GetPlayer(VisiteeRootNode);
-        VisiteePlayer.SetAllCollider(false);
-
-        Garden.PlayerPos = new List<Vector3>();
-
-        Garden.Player = ResourceManager.Get(PlayerLabel.Player);
-        Garden.PlayerPos.Add(PlayerManager.Player.ChildDic[PlayerLabel.RightPos].position);
-        Garden.PlayerPos.Add(PlayerManager.Player.ChildDic[PlayerLabel.LeftPos].position);
-
-        #endregion
-
-        #region Award
-        
-        if (Random.Range(0f,1f) <= CreateAwardRate)
-        {
-            if (GardenManager.PlantSlotList.Count > 0)
-            {
-                GardenManager.PlantSlotList.Random()[0].PlantFlower.HaveAward = true;
-            }
-        }
-
-        #endregion
-
-        ShowTip();
-
-        XmlNode nicknameNode = VisiteeDocument.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.NickName);
-        if (nicknameNode == null || string.IsNullOrEmpty(nicknameNode.Attributes[0].Value))
-        {
-            SetVisiteeNickName(Language.GetStr(LanguageLabel.UI__Unnamed));
-        }
-        else
-        {
-            SetVisiteeNickName(nicknameNode.Attributes[0].Value);
-        }
-
-        InVisit = true;
-    }
-
-    public static void ShowVisitFailPanelFromSelfGarden()
-    {
-        //Debug.Log(0);
-        Bubble.Show
-        (
-            null,
-            Language.GetStr(LanguageLabel.UI__C_VisitFail),
-            null,
-            null,
-            () =>
-            {
-                ResourceManager.Get(CanvasLabel.I_BlackMask).TweenForCG();
-                if (InVisit)
-                {
-                    ResourceManager.SetActive(CanvasLabel.C_Return, true);
-                }
-                else
-                {
-                    OnStartExitVisiteeGarden();
-                }
-            },
-            null,
-            false
-        );
-
-        Manager.AddCoin(VisitCost, StaticsManager.ItemID.获得金币, StaticsManager.ConsumeModule.VisitRefund);
-    }
-
-
-    public static void SetPlayerRankPanel()
-    {
-        SocialManager.RecoverRankPanel();
-    }
-
-
-    public static void SetPlayerPraise()
-    {
-        SocialManager.PraiseText.text = HttpManager.PraiseAmt.ToString();
-
-        SocialManager.PraiseButton.interactable = false;
-        SocialManager.PraiseButton.image.color = Color.white;
-        SocialManager.PraiseText.color =Lib.PraiseTextBlue;
-    }
-
-    public static void SetVisiteePraise(XmlDocument document)
-    {
-        SocialManager.PraiseText.text = VisiteePraiseAmt.ToString();
-        //Debug.Log(VisiteeSerialNumber);
-        HttpManager.CheckIsPraised
-        (
-            HttpManager.SerialNumber,
-            VisiteeSerialNumber,
-            jsonData =>
-            {
-                if (jsonData["i"].ToString() == "0")
-                {
-                    SocialManager.EnablePraise();
-                }
-                else if (jsonData["i"].ToString() == "1")
-                {
-                    SocialManager.DisablePraise();
-                }
-            }
-        );
-    }
-
-
-    public static void SetPlayerCommentPanel()
-    {
-        if (SocialManager.OpenCommentFlag)
-        {
-            SocialManager.RecoverCommentPanel();
-        }
-        else
-        {
-            //ManaSocial.UpdatePage(true);
-        }
-    }
-
-    public static void SetVisiteeCommentPanel()
-    {
-        SocialManager.ClearCommentPanel();
-
-        //ManaSocial.UpdatePage(false);
-    }
-
-
-    public static void SetPlayerNickName()
-    {
-        ResourceManager.SetText(CanvasLabel.C_NickNameLab, NickNameManager.NickName);
-    }
-
-    public static void SetVisiteeNickName(string nickname)
-    {
-        ResourceManager.SetText(CanvasLabel.C_NickNameLab, nickname);
-    }
-
-
-    public static void UpdateVisitCost()
-    {
-        if (Inited)
-        {
-            VisitCost = Mathf.FloorToInt((float)Auxiliary.FmlParse(VisitCostFml, "l", Manager.GardenLevel.ToString()));
-        }
-    }
-
-
-    public static void ReverseConfigData()
-    {
-        if (InVisit)
-        {
-            VisiteePlantList = new List<Slot>(GardenManager.PlantSlotList);
-
-            GardenManager.PlantSlotList = PlayerPlantList;
-        }
-    }
-
-    public static void RecoverConfigData()
-    {
-        if (InVisit)
-        {
-            GardenManager.PlantSlotList = VisiteePlantList;
-        }
-    }
-
-
-	public static void ShowTip()
-	{
-		ResourceManager.SetActive (CanvasLabel.C_Tip, true);
-
-        HudTarget hudTarget = ResourceManager.Get(CanvasLabel.C_Tip).GetComponent<HudTarget>();
-        hudTarget.PosTra = VisiteePlayer.ChildDic[PlayerLabel.EnterGameTra];
-        
-        string languageID = LanguageLabel.Tip + Random.Range(1, MaxTipAmt);
-        ResourceManager.Get<Text> (CanvasLabel.C_TipLab).text = Language.GetStr (LanguageLabel.CombineLanguageLabel(LanguageLabel.Tip, languageID));
-    }
-
-	public static void HideTip()
-	{
-		ResourceManager.SetActive (CanvasLabel.C_Tip, false);
-	}
-
-
-    public static void Visit(ConfigSource configSource, string info = null)
-    {
-        if (Manager.SceneSwitchFlag)
-        {
-            return;
-        }
-
-        OnStartEnterVisiteeGarden();
-
-        Manager.Pay
-        (
-            "", 
-            VisitCost, 
-            Current.Coin,
-            () =>
-            {
-                ResourceManager.Get(CanvasLabel.I_BlackMask).GetTweenCG().Duration = 0.5f;
-
-                IsPullConfigComplete = false;
-                IsBlackMaskTweenComplete = false;
-
-                PullConfig(configSource, info);
-
-                AudioManager.PlayClip(AudioLabel.Bubble);
-
-                ResourceManager.SetActive(CanvasLabel.C_Return, false);
-
-                TweenRoot tween;
-
-                if (VisitCDTime != 0)
-                {
-                    ResourceManager.Get<Button>(CanvasLabel.C_Visit).interactable = false;
-
-                    tween = ResourceManager.Get(CanvasLabel.C_VisitLab).StreamReForScale();
-
-                    tween.AddEventOnetime
-                    (
-                        EventType.ForwardFinish,
-                        () =>
-                        {
-                            ResourceManager.Get<Button>(CanvasLabel.C_Visit).interactable = true;
-                        }
-                    );
-                }
-
-
-                tween = ResourceManager.Get(CanvasLabel.I_BlackMask).TweenBacCG();
-
-                tween.AddEventOnetime
-                (
-                    EventType.BackwardFinish,
-                    () =>
-                    {
-                        IsBlackMaskTweenComplete = true;
-
-                        EnterVisiteeGarden();
-                    }
-                );
-            },
-            StaticsManager.ItemID.参观花费,
-            StaticsManager.ConsumeModule.Shop,
-            false
-        );
-    }
-
-    public static void PullConfig(ConfigSource configSource, string info = null)
-    {
-        if (configSource == ConfigSource.SerialNumber)
-        {
-            HttpManager.GetTargetConfig
-            (
-                info,
-                data =>
-                {
-                    VisiteeSerialNumber = info;
-                    PullConfigCallback
-                    (
-                        data,
-                        ShowVisitFailPanelFromSelfGarden,
-                        (jData) =>
-                        {
-                            //Debug.Log(jData.ToJson());
-                            XmlDocument document = new XmlDocument();
-                            document.LoadXml(data["l"].ToString());
-                            EnterVisiteeGarden(new VisitData(jData, document));
-                        }
-                    );
-                }
-            );
-        }
-        else if (configSource == ConfigSource.Random)
-        {
-            if (UnusedDataList.Count > 0)
-            {
-                EnterVisiteeGarden(UnusedDataList[0]);
-
-                UsedDataList.Add(UnusedDataList[0]);
-                UnusedDataList.RemoveAt(0);
-            }
-            else if (UsedDataList.Count > 0)
-            {
-                EnterVisiteeGarden(UsedDataList.Random()[0]);
-            }
-            else
-            {
-                ShowVisitFailPanelFromSelfGarden();
-            }
-        }
-    }
-
-    public static void PullConfigCallback(JsonData jsonData, Action failed, Action<JsonData> succeed)
-    {
-        if (jsonData.Inst_Object.ContainsKey("l"))
-        {
-            if (succeed != null)
-                succeed.Invoke(jsonData);
-        }
-        else
-        {
-            if (failed != null)
-                failed.Invoke();
-        }
-    }
-
-    public static void SavePulledConfig(JsonData jsonData)
-    {
-        //Debug.Log(jsonData.ToJson());
-        XmlDocument document = new XmlDocument();
-        document.LoadXml(jsonData["l"].ToString());
-        //Debug.Log(1);
-        if (ConfigManager.GetGardenLevel(document) == 0)
-        {
-            return;
-        }
-        //Debug.Log(2);
-        XmlNode xmlNode = document.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.SerialNumber);
-        //UnusedDataList.Add(new VisitData(jsonData, document));
-        if (xmlNode != null && xmlNode.Attributes[0].Value != HttpManager.SerialNumber)
-        {
-            UnusedDataList.Add(new VisitData(jsonData, document));
-        }
-    }
-
-    public static string CreateFakeConfig()
-    {
-        XmlDocument doc = new XmlDocument();
-
-        doc.LoadXml(ConfigManager.ConfigDocument.OuterXml); //以自己的存档做模板进行修改
-
-        int newLevel = Random.Range(1, 450); //随机等级
-
-        #region 根据等级确定有多少土地解锁
-
-        int slot = 1; //解锁土地数量
-
-        XmlNodeList nodeList = doc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.SkillList).ChildNodes;
-
-        for (int i = 0; i < nodeList.Count; i++)
-        {
-            SkillType type = nodeList[i].Attributes[1].Value.ToEnum<SkillType>();
-
-            if (type == SkillType.Ability)
-            {
-                Ability ability = (Ability)Manager.SkillDictionary[nodeList[i].Attributes[0].Value];
-
-                int unlockLevel = ability.UnlockLv;
-
-                if (newLevel >= unlockLevel)
-                {
-                    if (ability.ID >= 6)
-                    {
-                        slot++;
-                    }
-
-                    nodeList[i].Attributes[2].Value = "Upgrade";
-                    nodeList[i].Attributes[3].Value = newLevel.ToString();
-                }
-                else
-                {
-                    nodeList[i].Attributes[2].Value = "Lock";
-                    nodeList[i].Attributes[3].Value = "0";
-                }
-            }
-        }
-
-        #endregion
-
-        #region 随机种一些花
-
-        bool fancy = Random.Range(0f, 1f) < FancyGardenRate; //fancy=True时 种的花比较多
-
-        List<int> flowerList = new List<int>();
-
-        for (int i = 1; i < 36; i++)
-        {
-            flowerList.Add(i);
-        }
-
-        int slotIndex = 0;
-        string plantList = "";
-
-        for (int i = 0; i < slot; i++)
-        {
-            if (fancy || Random.Range(0f, 1f) >= 0.35f)
-            {
-                int flowerID = slotIndex + 1;
-
-                plantList += string.Format("{0},{1} ", flowerID, slotIndex);
-
-                slotIndex++;
-            }
-        }
-
-        plantList = plantList.TrimEnd(' ');
-
-        doc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.PlantList).Attributes[0].Value = plantList;
-
-        #endregion
-
-        #region 随机一套服装 等级越高拥有的服装越多 再随机选几件穿上
-
-        XmlNode xmlNode = doc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.DressData);
-        xmlNode.Attributes[0].Value = "";
-
-
-        xmlNode.Attributes[0].Value = PlayerManager.CloseItemDictionary[Random.Range(2, (int)Mathf.Lerp(2, 30, newLevel / 449f) + 1)].ArmatureName;
-        xmlNode.Attributes[1].Value = PlayerManager.CloseItemDictionary[Random.Range(201, (int)Mathf.Lerp(201, 217, newLevel / 449f) + 1)].ArmatureName;
-        xmlNode.Attributes[2].Value = PlayerManager.CloseItemDictionary[Random.Range(401, (int)Mathf.Lerp(401, 415, newLevel / 449f) + 1)].ArmatureName;
-        xmlNode.Attributes[3].Value = PlayerManager.CloseItemDictionary[Random.Range(601, (int)Mathf.Lerp(601, 612, newLevel / 449f) + 1)].ArmatureName;
-        xmlNode.Attributes[4].Value = PlayerManager.CloseItemDictionary[Random.Range(801, (int)Mathf.Lerp(801, 817, newLevel / 449f) + 1)].ArmatureName;
-        xmlNode.Attributes[7].Value = PlayerManager.CloseItemDictionary[Random.Range(1001, (int)Mathf.Lerp(1001, 1003, newLevel / 449f) + 1)].ArmatureName;
-
-        #region 随机选一套眼睛嘴巴
-
-        float eyeMouseRate = Random.Range(0f, 1f);
-
-        if (eyeMouseRate <= 0.33f)
-        {
-            xmlNode.Attributes[5].Value = "眼睛1";
-            xmlNode.Attributes[6].Value = "嘴巴1";
-        }
-        else if (eyeMouseRate <= 0.66f)
-        {
-            xmlNode.Attributes[5].Value = "眼睛2";
-            xmlNode.Attributes[6].Value = "嘴巴2";
-        }
-        else
-        {
-            xmlNode.Attributes[5].Value = "眼睛3";
-            xmlNode.Attributes[6].Value = "嘴巴3";
-        }
-
-        #endregion
-
-        #endregion
-
-        return doc.OuterXml;
-    }
+using LitJson;
+
+using UnityEngine;
+using UnityEngine.UI;
+using UnityEngine.Events;
+
+using System;
+using System.Xml;
+using System.Collections;
+using System.Collections.Generic;
+
+using Random = UnityEngine.Random;
+
+public enum ConfigSource
+{
+    Fake,
+    Random,
+    SerialNumber,
+}
+
+public class VisitData
+{
+    //public bool Praised;
+
+    public JsonData JsonData;
+    public XmlDocument Document;
+
+    public VisitData(JsonData jsonData, XmlDocument document)
+    {
+        JsonData = jsonData;
+        Document = document;
+    }
+}
+
+public class VisitManager : Regist
+{
+    #region Config
+
+    #region 配置
+
+    public static int VisitCost
+    {
+        get { return visitCost; }
+        set
+        {
+            visitCost = value;
+
+            ResourceManager.Get<Text>(CanvasLabel.C_CostLab).text = TransferLabel.CoinSprite + VisitCost;
+        }
+    }
+    public static int visitCost;
+
+    public static int VisitCDTime;
+    public static float FancyGardenRate;
+    public static float CreateAwardRate;
+    public static float FakeGardenRate;
+    public static string VisitCostFml;
+    public static string AwardMinFml;
+    public static string AwardMaxFml;
+
+    #endregion
+
+    public static float moveTimer;
+    public static Player selfPlayer;
+
+    public static int MaxTipAmt = 10;
+    public static Action OnExitVisteeGarden;
+    public static Action OnEnterVisteeGarden;
+
+    public static int MaxStachConfigAmt = 8;
+    public static float PullArchiveTime = 0.5f;
+    public static float PullConfigTimer;
+    public static List<VisitData> UsedDataList = new List<VisitData>();
+    public static List<VisitData> UnusedDataList = new List<VisitData>();
+
+    public static bool Inited;
+    public static bool InVisit;
+    public static bool IsPullConfigComplete;
+    public static bool IsBlackMaskTweenComplete;
+
+    public static int VisiteeLevel;
+    public static int VisiteeTotalSlot;
+    public static int VisiteePraiseAmt;
+    public static string VisiteeSerialNumber;
+    public static Player VisiteePlayer;
+    public static XmlNode VisiteeRootNode;
+    public static XmlDocument VisiteeDocument;
+    public static List<Slot> VisiteePlantList;
+
+    public static bool PlayerBirdFlag;
+    public static bool PlayerTreeFlag;
+    public static bool PlayerRainbowFlag;
+    public static List<Slot> PlayerPlantList;
+    public static List<ElfType> PlayerElfList;
+
+    #endregion
+
+    public void Update()
+    {
+        if (selfPlayer != null)
+        {
+            moveTimer += Time.deltaTime;
+            if (moveTimer > 3f)
+            {
+                moveTimer = 0;
+
+                PlayerDirection direction = PlayerDirection.Right;
+                if (Random.Range(0f, 1f) > 0.5f)
+                {
+                    direction = PlayerDirection.Left;
+                }
+
+                Vector2 moveDist = new Vector2(Random.Range(0, 2.5f), 0);
+                if (direction == PlayerDirection.Left)
+                {
+                    moveDist.x *= -1;
+                }
+
+                selfPlayer.Flip(direction);
+                TweenVec tweenVec = selfPlayer.CreateTweenVecOffset2D(moveDist, 1f, true, true, true, Curve.EaseOutQuad);
+                selfPlayer.TweenForVec();
+                selfPlayer.PlayAnim(Player.WalkAnimationName);
+
+                tweenVec.OnForwardFinish += () => { selfPlayer.PlayAnim(Player.IdleAnimationName); };
+            }
+            selfPlayer.ResetDepth();
+        }
+
+
+        if (UnusedDataList.Count > MaxStachConfigAmt)
+        {
+            return;
+        }
+
+        PullConfigTimer += Time.deltaTime;
+
+        if (PullConfigTimer >= PullArchiveTime)
+        {
+            PullConfigTimer = 0;
+
+            HttpManager.GetRandomConfig
+            (
+                data =>
+                {
+                    PullConfigCallback(data, null, SavePulledConfig);
+                }
+            );
+        }
+    }
+
+
+    public static void Init()
+    {
+        MaxTipAmt = 0;
+        for (int i = 1; i < 100; i++)
+        {
+            if (Language.ContainNode(LanguageLabel.Tip, LanguageLabel.Tip + i))
+            {
+                MaxTipAmt++;
+            }
+        }
+        MaxTipAmt++;
+
+        XmlAttributeCollection attribute = ConfigManager.GetVisitConfig();
+
+        VisitCostFml = attribute[5].Value;
+
+        VisitCost = Mathf.FloorToInt((float)Auxiliary.FmlParse(VisitCostFml, "l", Manager.GardenLevel.ToString()));
+        AwardMinFml = attribute[2].Value;
+        AwardMaxFml = attribute[3].Value;
+
+        VisitCDTime = int.Parse(attribute[4].Value);
+        FancyGardenRate = float.Parse(attribute[7].Value);
+        CreateAwardRate = float.Parse(attribute[1].Value);
+        FakeGardenRate = float.Parse(attribute[6].Value);
+
+        #region 倒计时
+
+        if (VisitCDTime != 0)
+        {
+            Text text = ResourceManager.Get<Text>(CanvasLabel.C_VisitLab);
+
+            List<float> delayList = new List<float>();
+            List<float> durationList = new List<float>();
+            List<VecPair> pairList = new List<VecPair>();
+            List<UnityAction> actionList = new List<UnityAction>();
+
+            Vector3 v1 = new Vector3(0.75f, 0.75f, 0.75f);
+            Vector3 v2 = new Vector3(0.4f, 0.4f, 0.4f);
+            Vector3 v3 = new Vector3(0, 0, 0);
+
+            for (int i = 0; i < VisitCDTime - 1; i++)
+            {
+                delayList.Add(0.5f);
+                delayList.Add(0);
+            }
+
+            delayList.Add(0.5f);
+
+            for (int i = 0; i < VisitCDTime; i++)
+            {
+                durationList.Add(0.25f);
+                durationList.Add(0.25f);
+
+                pairList.Add(new VecPair(v1, v2));
+                pairList.Add(new VecPair(v2, v3));
+
+                var tempInt = i;
+                actionList.Add
+                (
+                    () =>
+                    {
+                        text.text = (VisitCDTime - tempInt).ToString();
+                        AudioManager.PlayClip(AudioLabel.ClickButton);
+                    }
+                );
+
+                actionList.Add(null);
+            }
+
+            TweenRoot tween = ResourceManager.Get(CanvasLabel.C_VisitLab).CreateStreamScale
+            (
+                delayList,
+                durationList,
+                pairList,
+                true,
+                false,
+                Curve.EaseOutQuad,
+                false,
+                actionList
+            );
+
+            tween.OnForwardFinish += () =>
+            {
+                AudioManager.PlayClip(AudioLabel.Bubble);
+            };
+        }
+
+        #endregion
+
+        OnEnterVisteeGarden += () =>
+        {
+            ResourceManager.SetActive(CanvasLabel.C_OpenCloseRightSidePanelButtons, false);
+            ResourceManager.Get<Button>(CanvasLabel.C_OpenSidePanelButton).onClick.Invoke();
+
+            if (LeftSidePanel.isOpen == false)
+            {
+                ResourceManager.Get<Button>(CanvasLabel.C_OpenLeftSidePanelButton).onClick.Invoke();
+            }
+            ResourceManager.SetActive(CanvasLabel.C_OpenCloseLeftSidePanelButtons, false);
+        };
+
+        OnExitVisteeGarden += () =>
+        {
+            ResourceManager.SetActive(CanvasLabel.C_OpenCloseRightSidePanelButtons, true);
+
+            ResourceManager.SetActive(CanvasLabel.C_OpenCloseLeftSidePanelButtons, true);
+            LeftSidePanel.Refresh();
+        };
+
+        Inited = true;
+    }
+
+
+    public static void OnStartEnterVisiteeGarden()
+    {
+        ResourceManager.SetActive(CanvasLabel.C_FashionShowButton, false);
+        ResourceManager.SetActive(CanvasLabel.C_EnterPlazaRoom0, false);
+    }
+
+    public static void EnterVisiteeGarden(VisitData visitData)
+    {
+        IsPullConfigComplete = true;
+        VisiteePraiseAmt = int.Parse(visitData.JsonData["p"].ToString());
+        if (visitData.JsonData.Inst_Object.ContainsKey("i"))
+        {
+            VisiteeSerialNumber = visitData.JsonData["i"].ToString();
+        }
+
+        VisiteeDocument = visitData.Document;
+
+        SetVisiteeCommentPanel();
+
+        EnterVisiteeGarden();
+
+        OnEnterVisteeGarden.SafeInvoke();
+
+        if (Application.isEditor)
+        {
+            Debug.Log(VisiteeSerialNumber);
+        }
+    }
+
+    public static void StartExitVisiteeGarden()
+    {
+        ResourceManager.Get(CanvasLabel.I_BlackMask).TweenForCG();
+
+		HideTip ();
+
+        ResourceManager.SetActive(CanvasLabel.C_Visit, true);
+        ResourceManager.SetActive(CanvasLabel.C_Coin, true);
+        ResourceManager.SetActive(CanvasLabel.C_Group1, true);
+        ResourceManager.SetActive(CanvasLabel.C_Group2, true);
+
+        ResourceManager.Get<Button>(CanvasLabel.C_NickNameBK).interactable = true;
+
+        ResourceManager.SetActive(CanvasLabel.C_Return, false);
+        ResourceManager.SetActive(CanvasLabel.C_Garden, false);
+
+        GardenManager.InMinigameFlag = true;
+
+        #region Garden
+
+        GardenManager.RetriveAllFlower();
+
+        for (int i = 0; i < GardenManager.SlotPageList.Count; i++)
+        {
+            ResourceManager.Save(GardenManager.SlotPageList[i]);
+        }
+
+        GardenManager.SlotPageList = new List<Transform>();
+
+        GardenManager.SlotList = new List<Slot>();
+        GardenManager.SlotPageList = new List<Transform>();
+
+
+        Garden.ResetPage();
+        Garden.PagePos = new List<Vector3>();
+
+        int pageAmt = GardenManager.DefaultSlotPage;
+
+        if (GardenManager.TotalSlot >= GardenManager.CriticalSlotIndex)
+        {
+            pageAmt = (GardenManager.TotalSlot - GardenManager.CriticalSlotIndex) / GardenManager.TotalSlotInOnePage + 3;
+        }
+
+        for (int i = 0; i < pageAmt; i++)
+        {
+            GardenManager.CreatePage();
+        }
+
+        for (int i = 0; i < GardenManager.SlotList.Count; i++)
+        {
+            if (i < GardenManager.TotalSlot)
+            {
+                GardenManager.SlotList[i].Lock = true;
+                GardenManager.SlotList[i].Available = true;
+            }
+            else
+            {
+                GardenManager.SlotList[i].Lock = false;
+                GardenManager.SlotList[i].Available = false;
+            }
+        }
+
+
+        List<KV<int, int>> plantList = ConfigManager.GetPlantList();
+
+        for (int i = 0; i < plantList.Count; i++)
+        {
+            GardenManager.PlantFlower(plantList[i].Key, plantList[i].Value);
+        }
+
+        #endregion
+
+        #region Bird Tree Rainbow
+
+        if (PlayerBirdFlag)
+        {
+            ResourceManager.Get(GardenLabel.BirdPivot).GetTweenSr().InDestination = true;
+        }
+        else
+        {
+            ResourceManager.Get(GardenLabel.BirdPivot).GetTweenSr().InOrigin = true;
+        }
+
+        if (PlayerTreeFlag)
+        {
+            ResourceManager.Get(GardenLabel.GardenLeftTree).GetTweenSr().InDestination = true;
+            ResourceManager.Get(GardenLabel.GardenRightTree).GetTweenSr().InDestination = true;
+        }
+        else
+        {
+            ResourceManager.Get(GardenLabel.GardenLeftTree).GetTweenSr().InOrigin = true;
+            ResourceManager.Get(GardenLabel.GardenRightTree).GetTweenSr().InOrigin = true;
+        }
+
+        if (PlayerRainbowFlag)
+        {
+            ResourceManager.Get(GardenLabel.GardenRainbow).GetTweenSr().InDestination = true;
+        }
+        else
+        {
+            ResourceManager.Get(GardenLabel.GardenRainbow).GetTweenSr().InOrigin = true;
+        }
+
+        #endregion
+
+        #region Player
+
+        DestroyImmediate(selfPlayer.gameObject);
+
+        DestroyImmediate(PlayerManager.Player.gameObject);
+        //ResourceManager.Save(PlayerManager.Player);
+
+        ResourceManager.TransformDictionary.Remove(PlayerLabel.Player);
+
+        PlayerManager.Instance.GetPlayer();
+        UIManager.SetEnterMinigameGameLabel();
+
+        Garden.PlayerPos = new List<Vector3>();
+
+        Garden.Player = ResourceManager.Get(PlayerLabel.Player);
+        Garden.PlayerPos.Add(PlayerManager.Player.ChildDic[PlayerLabel.RightPos].position);
+        Garden.PlayerPos.Add(PlayerManager.Player.ChildDic[PlayerLabel.LeftPos].position);
+
+        #endregion
+
+        GardenManager.ElfList = new List<ElfType>(PlayerElfList);
+
+        InVisit = false;
+        IsPullConfigComplete = false;
+        IsBlackMaskTweenComplete = false;
+
+        SetPlayerPraise();
+        SetPlayerCommentPanel();
+        SetPlayerRankPanel();
+        SetPlayerNickName();
+        OnExitVisteeGarden.SafeInvoke();
+    }
+
+    public static void OnStartExitVisiteeGarden()
+    {
+        if (Manager.GardenLevel >= TutorialManager.PlazaRoomTutorialLevel)
+        {
+            ResourceManager.SetActive(CanvasLabel.C_FashionShowButton, true);
+            ResourceManager.SetActive(CanvasLabel.C_EnterPlazaRoom0, true);
+        }
+    }
+
+    public static void EnterVisiteeGarden()
+    {
+        if (!IsPullConfigComplete || !IsBlackMaskTweenComplete)
+        {
+            return;
+        }
+
+        //if (ConfigManager.GetConfigVersion(ConfigManager.ConfigDocument) < ConfigManager.GetConfigVersion(VisiteeDocument))
+        //{
+        //    ShowVisitFailPanelFromSelfGarden();
+        //    return;
+        //}
+
+        ResourceManager.Get(CanvasLabel.I_BlackMask).TweenForCG();
+        //Debug.Log(Document.OuterXml);
+        SetVisiteePraise(VisiteeDocument);
+
+        VisiteeRootNode = VisiteeDocument.SelectSingleNode(PlayerConfigLabel.RootNode);
+
+        ResourceManager.SetActive(CanvasLabel.C_Coin, false);
+        ResourceManager.SetActive(CanvasLabel.C_Group1, false);
+        ResourceManager.SetActive(CanvasLabel.C_Group2, false);
+
+        ResourceManager.Get<Button>(CanvasLabel.C_NickNameBK).interactable = false;
+
+        ResourceManager.SetActive(CanvasLabel.C_Garden, true);
+
+        if (!InVisit)
+        {
+            GardenManager.RetrieveAllStar();
+            GardenManager.RetrieveAllElf();
+            IAPManager.RetrieveADChest();
+
+            GardenManager.StarList = new List<Star>();
+        }
+
+        if (FriendPanel.FriendAccountDatas.MyContains(data => data.SerialNumber == VisiteeSerialNumber))
+        {
+            ResourceManager.SetActive(CanvasLabel.C_AddFriendButton, false);
+        }
+        else
+        {
+            ResourceManager.SetActive(CanvasLabel.C_AddFriendButton, true);
+        }
+
+        ResourceManager.SetActive(CanvasLabel.C_Return, true);
+
+        GardenManager.InMinigameFlag = false;
+
+        #region Bird Tree Rainbow
+
+        if (!InVisit)
+        {
+            if (ResourceManager.Get(GardenLabel.BirdPivot).gameObject.activeSelf)
+            {
+                PlayerBirdFlag = true;
+            }
+
+            if (ResourceManager.Get(GardenLabel.GardenLeftTree).gameObject.activeSelf)
+            {
+                PlayerTreeFlag = true;
+            }
+
+            if (ResourceManager.Get(GardenLabel.GardenRainbow).gameObject.activeSelf)
+            {
+                PlayerRainbowFlag = true;
+            }
+        }
+
+        ResourceManager.SetActive(GardenLabel.BirdPivot, false);
+        ResourceManager.SetActive(GardenLabel.GardenLeftTree, false);
+        ResourceManager.SetActive(GardenLabel.GardenRightTree, false);
+        ResourceManager.SetActive(GardenLabel.GardenRainbow, false);
+
+        #endregion
+
+        #region Ability
+
+        VisiteeTotalSlot = GardenManager.DefaultUnlockSlot;
+        VisiteeTotalSlot += ConfigManager.GetIntFormConfig(PlayerConfigLabel.ExtraSlot);
+
+        if (!InVisit)
+        {
+            PlayerElfList = new List<ElfType>(GardenManager.ElfList);
+        }
+
+        GardenManager.ElfList = new List<ElfType>();
+
+        List<XmlAttributeCollection> attributeList = ConfigManager.GetSkillList(VisiteeRootNode);
+
+        for (int i = 0; i < attributeList.Count; i++)
+        {
+            if (!attributeList[i][0].Value.Contains("Ability"))
+            {
+                continue;
+            }
+
+            if (attributeList[i][0].Value == "Ability1")
+            {
+                VisiteeLevel = int.Parse(attributeList[i][3].Value);
+
+                ResourceManager.SetText(CanvasLabel.C_GardenLab, Language.GetStr(LanguageLabel.UI__C_GardenLab) + VisiteeLevel);
+
+                continue;
+            }
+
+            if (int.Parse(attributeList[i][3].Value) == 0)
+            {
+                continue;
+            }
+
+            if (attributeList[i][0].Value == "Ability2")
+            {
+                ResourceManager.Get(GardenLabel.GardenRainbow).GetTweenSr().InDestination = true;
+            }
+            else if (attributeList[i][0].Value == "Ability3")
+            {
+                ResourceManager.Get(GardenLabel.GardenLeftTree).GetTweenSr().InDestination = true;
+                ResourceManager.Get(GardenLabel.GardenRightTree).GetTweenSr().InDestination = true;
+            }
+            else if (attributeList[i][0].Value == "Ability4")
+            {
+                ResourceManager.Get(GardenLabel.BirdPivot).GetTweenSr().InDestination = true;
+            }
+            else if (attributeList[i][0].Value == "Ability5")
+            {
+                GardenManager.ElfList.Add(ElfType.Bee_Yellow);
+            }
+            else if (attributeList[i][0].Value == "Ability6")
+            {
+                VisiteeTotalSlot++;
+
+                GardenManager.ElfList.Add(ElfType.Bee_Purple);
+            }
+            else if (attributeList[i][0].Value == "Ability7")
+            {
+                VisiteeTotalSlot++;
+
+                GardenManager.ElfList.Add(ElfType.Bee_Blue);
+            }
+            else if (attributeList[i][0].Value == "Ability8")
+            {
+                VisiteeTotalSlot++;
+
+                GardenManager.ElfList.Add(ElfType.Bee_Red);
+            }
+            else if (attributeList[i][0].Value == "Ability9")
+            {
+                VisiteeTotalSlot++;
+
+                GardenManager.ElfList.Add(ElfType.Bee_White);
+            }
+            else if (attributeList[i][0].Value == "Ability10")
+            {
+                VisiteeTotalSlot++;
+
+                GardenManager.ElfList.Add(ElfType.Butterfly_Yellow);
+            }
+            else if (attributeList[i][0].Value == "Ability11")
+            {
+                VisiteeTotalSlot++;
+
+                GardenManager.ElfList.Add(ElfType.Butterfly_Purple);
+            }
+            else if (attributeList[i][0].Value == "Ability12")
+            {
+                VisiteeTotalSlot++;
+
+                GardenManager.ElfList.Add(ElfType.Butterfly_Blue);
+            }
+            else if (attributeList[i][0].Value == "Ability13")
+            {
+                VisiteeTotalSlot++;
+
+                GardenManager.ElfList.Add(ElfType.Butterfly_Red);
+            }
+            else if (attributeList[i][0].Value == "Ability14")
+            {
+                VisiteeTotalSlot++;
+
+                GardenManager.ElfList.Add(ElfType.Butterfly_White);
+            }
+            else if (attributeList[i][0].Value == "Ability15")
+            {
+                VisiteeTotalSlot++;
+
+                GardenManager.ElfList.Add(ElfType.Dragonfly_Yellow);
+            }
+            else if (attributeList[i][0].Value == "Ability16")
+            {
+                VisiteeTotalSlot++;
+
+                GardenManager.ElfList.Add(ElfType.Dragonfly_Purple);
+            }
+            else if (attributeList[i][0].Value == "Ability17")
+            {
+                VisiteeTotalSlot++;
+
+                GardenManager.ElfList.Add(ElfType.Dragonfly_Blue);
+            }
+            else if (attributeList[i][0].Value == "Ability18")
+            {
+                VisiteeTotalSlot++;
+
+                GardenManager.ElfList.Add(ElfType.Dragonfly_Red);
+            }
+            else if (attributeList[i][0].Value == "Ability19")
+            {
+                VisiteeTotalSlot++;
+
+                GardenManager.ElfList.Add(ElfType.Dragonfly_White);
+            }
+            else if (attributeList[i][0].Value == "Ability20")
+            {
+                VisiteeTotalSlot++;
+
+                GardenManager.ElfList.Add(ElfType.Beetle_Yellow);
+            }
+            else if (attributeList[i][0].Value == "Ability21")
+            {
+                VisiteeTotalSlot++;
+
+                GardenManager.ElfList.Add(ElfType.Beetle_Purple);
+            }
+            else if (attributeList[i][0].Value == "Ability22")
+            {
+                VisiteeTotalSlot++;
+
+                GardenManager.ElfList.Add(ElfType.Beetle_Blue);
+            }
+            else if (attributeList[i][0].Value == "Ability23")
+            {
+                VisiteeTotalSlot++;
+
+                GardenManager.ElfList.Add(ElfType.Beetle_Red);
+            }
+            else if (attributeList[i][0].Value == "Ability24")
+            {
+                VisiteeTotalSlot++;
+
+                GardenManager.ElfList.Add(ElfType.Beetle_White);
+            }
+        }
+        
+        #endregion
+
+        #region Garden
+
+        if (!InVisit)
+        {
+            PlayerPlantList = new List<Slot>(GardenManager.PlantSlotList);
+
+            ConfigManager.SaveDress();
+            ConfigManager.SavePlantList();
+        }
+
+        GardenManager.RetriveAllFlower();
+
+        for (int i = 0; i < GardenManager.SlotPageList.Count; i++)
+        {
+            ResourceManager.Save(GardenManager.SlotPageList[i]);
+        }
+
+        GardenManager.SlotPageList = new List<Transform>();
+
+        GardenManager.SlotList = new List<Slot>();
+        GardenManager.SlotPageList = new List<Transform>();
+
+
+        Garden.ResetPage();
+        Garden.PagePos = new List<Vector3>();
+
+        int pageAmt = GardenManager.DefaultSlotPage;
+
+        if (VisiteeTotalSlot >= GardenManager.CriticalSlotIndex)
+        {
+            pageAmt = (VisiteeTotalSlot - GardenManager.CriticalSlotIndex) / GardenManager.TotalSlotInOnePage + 3;
+        }
+
+        for (int i = 0; i < pageAmt; i++)
+        {
+            GardenManager.CreatePage();
+        }
+        
+        for (int i = 0; i < GardenManager.SlotList.Count; i++)
+        {
+            if (i < VisiteeTotalSlot)
+            {
+                GardenManager.SlotList[i].Lock = true;
+                GardenManager.SlotList[i].Available = true;
+            }
+            else
+            {
+                GardenManager.SlotList[i].Lock = false;
+                GardenManager.SlotList[i].Available = false;
+            }
+        }
+
+        List<KV<int, int>> plantList = ConfigManager.GetPlantList(VisiteeRootNode);
+
+        for (int i = 0; i < plantList.Count; i++)
+        {
+            GardenManager.PlantFlower(plantList[i].Key, plantList[i].Value);
+        }
+
+        #endregion
+
+        #region Player
+
+        if (selfPlayer == null)
+        {
+            selfPlayer = PlayerManager.Player;
+            selfPlayer.transform.position += new Vector3(Random.Range(-2.5f, 2.5f), 0, -0.01f);
+            selfPlayer.SetAllCollider(false);
+        }
+        else
+        {
+            Destroy(PlayerManager.Player.gameObject);
+        }
+
+        //DestroyImmediate(PlayerManager.Player.gameObject);
+        //ResourceManager.Save(PlayerManager.Player);
+
+        ResourceManager.TransformDictionary.Remove(PlayerLabel.Player);
+
+        VisiteePlayer = PlayerManager.Instance.GetPlayer(VisiteeRootNode);
+        VisiteePlayer.SetAllCollider(false);
+
+        Garden.PlayerPos = new List<Vector3>();
+
+        Garden.Player = ResourceManager.Get(PlayerLabel.Player);
+        Garden.PlayerPos.Add(PlayerManager.Player.ChildDic[PlayerLabel.RightPos].position);
+        Garden.PlayerPos.Add(PlayerManager.Player.ChildDic[PlayerLabel.LeftPos].position);
+
+        #endregion
+
+        #region Award
+        
+        if (Random.Range(0f,1f) <= CreateAwardRate)
+        {
+            if (GardenManager.PlantSlotList.Count > 0)
+            {
+                GardenManager.PlantSlotList.Random()[0].PlantFlower.HaveAward = true;
+            }
+        }
+
+        #endregion
+
+        ShowTip();
+
+        XmlNode nicknameNode = VisiteeDocument.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.NickName);
+        if (nicknameNode == null || string.IsNullOrEmpty(nicknameNode.Attributes[0].Value))
+        {
+            SetVisiteeNickName(Language.GetStr(LanguageLabel.UI__Unnamed));
+        }
+        else
+        {
+            SetVisiteeNickName(nicknameNode.Attributes[0].Value);
+        }
+
+        InVisit = true;
+    }
+
+    public static void ShowVisitFailPanelFromSelfGarden()
+    {
+        //Debug.Log(0);
+        Bubble.Show
+        (
+            null,
+            Language.GetStr(LanguageLabel.UI__C_VisitFail),
+            null,
+            null,
+            () =>
+            {
+                ResourceManager.Get(CanvasLabel.I_BlackMask).TweenForCG();
+                if (InVisit)
+                {
+                    ResourceManager.SetActive(CanvasLabel.C_Return, true);
+                }
+                else
+                {
+                    OnStartExitVisiteeGarden();
+                }
+            },
+            null,
+            false
+        );
+
+        Manager.AddCoin(VisitCost, StaticsManager.ItemID.获得金币, StaticsManager.ConsumeModule.VisitRefund);
+    }
+
+
+    public static void SetPlayerRankPanel()
+    {
+        SocialManager.RecoverRankPanel();
+    }
+
+
+    public static void SetPlayerPraise()
+    {
+        SocialManager.PraiseText.text = HttpManager.PraiseAmt.ToString();
+
+        SocialManager.PraiseButton.interactable = false;
+        SocialManager.PraiseButton.image.color = Color.white;
+        SocialManager.PraiseText.color =Lib.PraiseTextBlue;
+    }
+
+    public static void SetVisiteePraise(XmlDocument document)
+    {
+        SocialManager.PraiseText.text = VisiteePraiseAmt.ToString();
+        //Debug.Log(VisiteeSerialNumber);
+        HttpManager.CheckIsPraised
+        (
+            HttpManager.SerialNumber,
+            VisiteeSerialNumber,
+            jsonData =>
+            {
+                if (jsonData["i"].ToString() == "0")
+                {
+                    SocialManager.EnablePraise();
+                }
+                else if (jsonData["i"].ToString() == "1")
+                {
+                    SocialManager.DisablePraise();
+                }
+            }
+        );
+    }
+
+
+    public static void SetPlayerCommentPanel()
+    {
+        if (SocialManager.OpenCommentFlag)
+        {
+            SocialManager.RecoverCommentPanel();
+        }
+        else
+        {
+            //ManaSocial.UpdatePage(true);
+        }
+    }
+
+    public static void SetVisiteeCommentPanel()
+    {
+        SocialManager.ClearCommentPanel();
+
+        //ManaSocial.UpdatePage(false);
+    }
+
+
+    public static void SetPlayerNickName()
+    {
+        ResourceManager.SetText(CanvasLabel.C_NickNameLab, NickNameManager.NickName);
+    }
+
+    public static void SetVisiteeNickName(string nickname)
+    {
+        ResourceManager.SetText(CanvasLabel.C_NickNameLab, nickname);
+    }
+
+
+    public static void UpdateVisitCost()
+    {
+        if (Inited)
+        {
+            VisitCost = Mathf.FloorToInt((float)Auxiliary.FmlParse(VisitCostFml, "l", Manager.GardenLevel.ToString()));
+        }
+    }
+
+
+    public static void ReverseConfigData()
+    {
+        if (InVisit)
+        {
+            VisiteePlantList = new List<Slot>(GardenManager.PlantSlotList);
+
+            GardenManager.PlantSlotList = PlayerPlantList;
+        }
+    }
+
+    public static void RecoverConfigData()
+    {
+        if (InVisit)
+        {
+            GardenManager.PlantSlotList = VisiteePlantList;
+        }
+    }
+
+
+	public static void ShowTip()
+	{
+		ResourceManager.SetActive (CanvasLabel.C_Tip, true);
+
+        HudTarget hudTarget = ResourceManager.Get(CanvasLabel.C_Tip).GetComponent<HudTarget>();
+        hudTarget.PosTra = VisiteePlayer.ChildDic[PlayerLabel.EnterGameTra];
+
+        string languageID = LanguageLabel.Tip + Random.Range(1, MaxTipAmt);
+        ResourceManager.Get<Text> (CanvasLabel.C_TipLab).text = Language.GetStr (LanguageLabel.CombineLanguageLabel(LanguageLabel.Tip, languageID));
+    }
+
+	public static void HideTip()
+	{
+		ResourceManager.SetActive (CanvasLabel.C_Tip, false);
+	}
+
+
+    public static void Visit(ConfigSource configSource, string info = null)
+    {
+        if (Manager.SceneSwitchFlag)
+        {
+            return;
+        }
+
+        OnStartEnterVisiteeGarden();
+
+        Manager.Pay
+        (
+            "", 
+            VisitCost, 
+            Current.Coin,
+            () =>
+            {
+                ResourceManager.Get(CanvasLabel.I_BlackMask).GetTweenCG().Duration = 0.5f;
+
+                IsPullConfigComplete = false;
+                IsBlackMaskTweenComplete = false;
+
+                PullConfig(configSource, info);
+
+                AudioManager.PlayClip(AudioLabel.Bubble);
+
+                ResourceManager.SetActive(CanvasLabel.C_Return, false);
+
+                TweenRoot tween;
+
+                if (VisitCDTime != 0)
+                {
+                    ResourceManager.Get<Button>(CanvasLabel.C_Visit).interactable = false;
+
+                    tween = ResourceManager.Get(CanvasLabel.C_VisitLab).StreamReForScale();
+
+                    tween.AddEventOnetime
+                    (
+                        EventType.ForwardFinish,
+                        () =>
+                        {
+                            ResourceManager.Get<Button>(CanvasLabel.C_Visit).interactable = true;
+                        }
+                    );
+                }
+
+
+                tween = ResourceManager.Get(CanvasLabel.I_BlackMask).TweenBacCG();
+
+                tween.AddEventOnetime
+                (
+                    EventType.BackwardFinish,
+                    () =>
+                    {
+                        IsBlackMaskTweenComplete = true;
+
+                        EnterVisiteeGarden();
+                    }
+                );
+            },
+            StaticsManager.ItemID.参观花费,
+            StaticsManager.ConsumeModule.Shop,
+            false
+        );
+    }
+
+    public static void PullConfig(ConfigSource configSource, string info = null)
+    {
+        if (configSource == ConfigSource.SerialNumber)
+        {
+            HttpManager.GetTargetConfig
+            (
+                info,
+                data =>
+                {
+                    VisiteeSerialNumber = info;
+                    PullConfigCallback
+                    (
+                        data,
+                        ShowVisitFailPanelFromSelfGarden,
+                        (jData) =>
+                        {
+                            //Debug.Log(jData.ToJson());
+                            XmlDocument document = new XmlDocument();
+                            document.LoadXml(data["l"].ToString());
+                            EnterVisiteeGarden(new VisitData(jData, document));
+                        }
+                    );
+                }
+            );
+        }
+        else if (configSource == ConfigSource.Random)
+        {
+            if (UnusedDataList.Count > 0)
+            {
+                EnterVisiteeGarden(UnusedDataList[0]);
+
+                UsedDataList.Add(UnusedDataList[0]);
+                UnusedDataList.RemoveAt(0);
+            }
+            else if (UsedDataList.Count > 0)
+            {
+                EnterVisiteeGarden(UsedDataList.Random()[0]);
+            }
+            else
+            {
+                ShowVisitFailPanelFromSelfGarden();
+            }
+        }
+    }
+
+    public static void PullConfigCallback(JsonData jsonData, Action failed, Action<JsonData> succeed)
+    {
+        if (jsonData.Inst_Object.ContainsKey("l"))
+        {
+            if (succeed != null)
+                succeed.Invoke(jsonData);
+        }
+        else
+        {
+            if (failed != null)
+                failed.Invoke();
+        }
+    }
+
+    public static void SavePulledConfig(JsonData jsonData)
+    {
+        //Debug.Log(jsonData.ToJson());
+        XmlDocument document = new XmlDocument();
+        document.LoadXml(jsonData["l"].ToString());
+        //Debug.Log(1);
+        if (ConfigManager.GetGardenLevel(document) == 0)
+        {
+            return;
+        }
+        //Debug.Log(2);
+        XmlNode xmlNode = document.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.SerialNumber);
+        //UnusedDataList.Add(new VisitData(jsonData, document));
+        if (xmlNode != null && xmlNode.Attributes[0].Value != HttpManager.SerialNumber)
+        {
+            UnusedDataList.Add(new VisitData(jsonData, document));
+        }
+    }
+
+    public static string CreateFakeConfig()
+    {
+        XmlDocument doc = new XmlDocument();
+
+        doc.LoadXml(ConfigManager.ConfigDocument.OuterXml); //以自己的存档做模板进行修改
+
+        int newLevel = Random.Range(1, 450); //随机等级
+
+        #region 根据等级确定有多少土地解锁
+
+        int slot = 1; //解锁土地数量
+
+        XmlNodeList nodeList = doc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.SkillList).ChildNodes;
+
+        for (int i = 0; i < nodeList.Count; i++)
+        {
+            SkillType type = nodeList[i].Attributes[1].Value.ToEnum<SkillType>();
+
+            if (type == SkillType.Ability)
+            {
+                Ability ability = (Ability)Manager.SkillDictionary[nodeList[i].Attributes[0].Value];
+
+                int unlockLevel = ability.UnlockLv;
+
+                if (newLevel >= unlockLevel)
+                {
+                    if (ability.ID >= 6)
+                    {
+                        slot++;
+                    }
+
+                    nodeList[i].Attributes[2].Value = "Upgrade";
+                    nodeList[i].Attributes[3].Value = newLevel.ToString();
+                }
+                else
+                {
+                    nodeList[i].Attributes[2].Value = "Lock";
+                    nodeList[i].Attributes[3].Value = "0";
+                }
+            }
+        }
+
+        #endregion
+
+        #region 随机种一些花
+
+        bool fancy = Random.Range(0f, 1f) < FancyGardenRate; //fancy=True时 种的花比较多
+
+        List<int> flowerList = new List<int>();
+
+        for (int i = 1; i < 36; i++)
+        {
+            flowerList.Add(i);
+        }
+
+        int slotIndex = 0;
+        string plantList = "";
+
+        for (int i = 0; i < slot; i++)
+        {
+            if (fancy || Random.Range(0f, 1f) >= 0.35f)
+            {
+                int flowerID = slotIndex + 1;
+
+                plantList += string.Format("{0},{1} ", flowerID, slotIndex);
+
+                slotIndex++;
+            }
+        }
+
+        plantList = plantList.TrimEnd(' ');
+
+        doc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.PlantList).Attributes[0].Value = plantList;
+
+        #endregion
+
+        #region 随机一套服装 等级越高拥有的服装越多 再随机选几件穿上
+
+        XmlNode xmlNode = doc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.DressData);
+        xmlNode.Attributes[0].Value = "";
+
+
+        xmlNode.Attributes[0].Value = PlayerManager.CloseItemDictionary[Random.Range(2, (int)Mathf.Lerp(2, 30, newLevel / 449f) + 1)].ArmatureName;
+        xmlNode.Attributes[1].Value = PlayerManager.CloseItemDictionary[Random.Range(201, (int)Mathf.Lerp(201, 217, newLevel / 449f) + 1)].ArmatureName;
+        xmlNode.Attributes[2].Value = PlayerManager.CloseItemDictionary[Random.Range(401, (int)Mathf.Lerp(401, 415, newLevel / 449f) + 1)].ArmatureName;
+        xmlNode.Attributes[3].Value = PlayerManager.CloseItemDictionary[Random.Range(601, (int)Mathf.Lerp(601, 612, newLevel / 449f) + 1)].ArmatureName;
+        xmlNode.Attributes[4].Value = PlayerManager.CloseItemDictionary[Random.Range(801, (int)Mathf.Lerp(801, 817, newLevel / 449f) + 1)].ArmatureName;
+        xmlNode.Attributes[7].Value = PlayerManager.CloseItemDictionary[Random.Range(1001, (int)Mathf.Lerp(1001, 1003, newLevel / 449f) + 1)].ArmatureName;
+
+        #region 随机选一套眼睛嘴巴
+
+        float eyeMouseRate = Random.Range(0f, 1f);
+
+        if (eyeMouseRate <= 0.33f)
+        {
+            xmlNode.Attributes[5].Value = "眼睛1";
+            xmlNode.Attributes[6].Value = "嘴巴1";
+        }
+        else if (eyeMouseRate <= 0.66f)
+        {
+            xmlNode.Attributes[5].Value = "眼睛2";
+            xmlNode.Attributes[6].Value = "嘴巴2";
+        }
+        else
+        {
+            xmlNode.Attributes[5].Value = "眼睛3";
+            xmlNode.Attributes[6].Value = "嘴巴3";
+        }
+
+        #endregion
+
+        #endregion
+
+        return doc.OuterXml;
+    }
 }

+ 19 - 8
Assets/Script/Object/Player.cs

@@ -102,6 +102,11 @@ public class CloseItem
 
     #region Config
 
+    public string Name
+    {
+        get { return Language.GetStr(LanguageLabel.CombineLanguageLabel(LanguageLabel.DressRoom, FullID)); }
+    }
+
     public static string IDPrefix = "Armature";
 
     public string FullID
@@ -283,7 +288,7 @@ public class CloseItem
                     return;
                 }
 
-               ChangeDress(PlayerManager.Player);
+                ChangeDress(PlayerManager.Player);
             }
         );
     }
@@ -385,7 +390,7 @@ public class CloseItem
 
         if (type == 1)
         {
-            return CloseType.Hair; 
+            return CloseType.Hair;
         }
         else if (type == 2)
         {
@@ -509,9 +514,7 @@ public class CloseItem
     {
         if (Manager.Coin < VisitManager.VisitCost)
         {
-            Bubble.Show(null, null, null, Lib.GoldSprite);
-            Bubble.Lab3.text = Language.GetStr(LanguageLabel.Common__ShortCoin);
-            Bubble.Lab3.SetActive(true);
+            Bubble.Show(Language.GetStr(LanguageLabel.Common__ShortCoin), null, null, Lib.GoldSprite);
         }
         else
         {
@@ -719,7 +722,7 @@ public class CloseItem
         {
             return;
         }
-        
+
         if (BuyLevel <= Manager.GardenLevel)
         {
             BuyBtn.interactable = true;
@@ -1035,11 +1038,19 @@ public class Player : Regist , IPointerClickHandler
         }
     }
 
+    public Action onClick;
     public void OnPointerClick(PointerEventData eventData)
     {
-        AudioManager.PlayClip(AudioLabel.GetCurrent);
+        //AudioManager.PlayClip(AudioLabel.GetCurrent);
+
+        //PlayAnim(JumpAnimationName);
+
+        if (Manager.GardenLevel >= TutorialManager.ChangeMouseTutorialLevel)
+        {
+            ChangeMousePanel.Open();
+        }
 
-        PlayAnim(JumpAnimationName);
+        onClick.SafeInvoke();
     }
 
 

+ 189 - 188
Assets/Script/Social/FashionShowCommentPanel.cs

@@ -1,189 +1,190 @@
-using System.Collections;
-using System.Collections.Generic;
-
-using UnityEngine;
-using UnityEngine.UI;
-
-public class FashionShowCommentPanel : Regist
-{
-    #region Config
-
-    private static Text NicknameTitle;
-    private static Text ContentTitle;
-    private static Text Title;
-    private static Text CloseButtonText;
-    private static Text SendCommentButtonText;
-    private static Text Placeholder;
-    private static Button CloseButton;
-    private static Button SendCommentButton;
-    private static Transform Mask;
-    private static InputField commentInputField;
-    private static VirtualScrollRectPlus VirtualScrollRectPlus;
-
-    private static int currentCommentPage;
-    private static int currentCommentIndex;
-    private static bool requesting;
-    private static ShowCommentsHttp commentDataHttp;
-    private static GetFashionShowData showData;
-    private static List<ShowCommentData> commentDatas = new List<ShowCommentData>();
-    private static List<ShowComment> commentItems = new List<ShowComment>();
-
-    #endregion
-
-    public override void RegistReference()
-    {
-        base.RegistReference();
-
-        NicknameTitle = ResourceManager.Get<Text>(CanvasLabel.Ph_NicknameTitle);
-        ContentTitle = ResourceManager.Get<Text>(CanvasLabel.Ph_ContentTitle);
-        Title = ResourceManager.Get<Text>(CanvasLabel.Ph_Title);
-        CloseButtonText = ResourceManager.Get<Text>(CanvasLabel.Ph_CloseButtonText);
-        SendCommentButtonText = ResourceManager.Get<Text>(CanvasLabel.Ph_SendCommentButtonText);
-        Placeholder = ResourceManager.Get<Text>(CanvasLabel.Ph_Placeholder);
-        CloseButton = ResourceManager.Get<Button>(CanvasLabel.Ph_CloseButton);
-        SendCommentButton = ResourceManager.Get<Button>(CanvasLabel.Ph_SendCommentButton);
-        Mask = ResourceManager.Get(CanvasLabel.Ph_CommentMask);
-        commentInputField = ResourceManager.Get<InputField>(CanvasLabel.Ph_InputField);
-        VirtualScrollRectPlus = ResourceManager.Get<VirtualScrollRectPlus>(CanvasLabel.Ph_ScrollRect);
-
-        LanguageManager.Add(Title, new MulLanStr(LanguageLabel.UI__Ph_Tit));
-        LanguageManager.Add(NicknameTitle, new MulLanStr(LanguageLabel.UI__Ph_NicknameTitle));
-        LanguageManager.Add(ContentTitle, new MulLanStr(LanguageLabel.UI__Ph_ContentTitle));
-        LanguageManager.Add(CloseButtonText, new MulLanStr(LanguageLabel.UI__Ph_CloseLab));
-        LanguageManager.Add(SendCommentButtonText, new MulLanStr(LanguageLabel.UI__Ph_CommentLab));
-        LanguageManager.Add(Placeholder, new MulLanStr(LanguageLabel.UI__Ph_Placeholder));
-
-        Mask.CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        VirtualScrollRectPlus.Init(1, 1000000);
-        VirtualScrollRectPlus.OnGetNextItem += OnGetNextItem;
-        CloseButton.onClick.AddListener(OnCloseButtonClick);
-        SendCommentButton.onClick.AddListener(OnSendCommentButtonClick);
-    }
-
-
-    public static void ShowPanel(GetFashionShowData data)
-    {
-        ResetPanel(data);
-        Mask.TweenForCG();
-    }
-
-    private static void ResetPanel(GetFashionShowData data)
-    {
-        showData = data;
-        requesting = false;
-        currentCommentPage = 0;
-        currentCommentIndex = 0;
-        commentDatas = new List<ShowCommentData>();
-        foreach (var commentItem in commentItems)
-        {
-            DestroyImmediate(commentItem.gameObject);
-        }
-        commentItems = new List<ShowComment>();
-        commentInputField.text = "";
-        OnGetNextItem(0);
-    }
-
-    public static void HidePanel()
-    {
-        Mask.TweenBacCG();
-    }
-
-
-    private static void OnCloseButtonClick()
-    {
-        if (commentDataHttp != null)
-        {
-            commentDataHttp.disable = true;
-        }
-        AudioManager.PlayClip(ResourceLabel.CloseClip);
-        HidePanel();
-    }
-
-
-    private static VirtualScrollRectItem OnGetNextItem(int index)
-    {
-        if (commentDatas.Count > currentCommentIndex)
-        {
-            ShowCommentData data = commentDatas[currentCommentIndex];
-            ShowComment item = ResourceManager.GetShowComment(data);
-            commentItems.Add(item);
-            currentCommentIndex++;
-            return null;
-        }
-        else
-        {
-            GetCommentData();
-            return null;
-        }
-    }
-
-
-    private static void OnSendCommentButtonClick()
-    {
-        AudioManager.PlayClip(ResourceLabel.BtnClip);
-        SendComment();
-    }
-
-    private static void SendComment()
-    {
-        string comment = commentInputField.text;
-        if (StringFilter.ContainSensitiveWord(comment))
-        {
-            Bubble.Show(null, Language.GetStr(LanguageLabel.Common__ContainSensitiveWord));
-            return;
-        }
-        SendCommentButton.interactable = false;
-        long playerId = HttpManager.GetPlayerId();
-        CommentShowHttp.Comment(playerId, showData.showId, comment, 
-            OnSendCommentSuccees, OnSendCommentFail);
-    }
-
-    private static void OnSendCommentSuccees()
-    {
-        commentInputField.text = "";
-        SendCommentButton.interactable = true;
-        ResetPanel(showData);
-    }
-
-    private static void OnSendCommentFail()
-    {
-        SendCommentButton.interactable = true;
-    }
-
-
-    private static void GetCommentData()
-    {
-        if (requesting)
-        {
-            return;
-        }
-        requesting = true;
-        commentDataHttp = ShowCommentsHttp.Get(currentCommentPage, showData.showId, 
-            OnGetCommentDataSuccess, OnGetCommentDataFail);
-    }
-
-    private static void OnGetCommentDataSuccess(object obj)
-    {
-        requesting = false;
-        currentCommentPage++;
-        List<ShowCommentData> datas = (List<ShowCommentData>) obj;
-        foreach (var data in datas)
-        {
-            commentDatas.AddUnique(data, (data0, data1) => data0.id == data1.id);
-        }
-        if (commentItems.Count == 0)
-        {
-            OnGetNextItem(0);
-            OnGetNextItem(0);
-            OnGetNextItem(0);
-            OnGetNextItem(0);
-            OnGetNextItem(0);
-        }
-    }
-
-    private static void OnGetCommentDataFail()
-    {
-        requesting = false;
-    }
+using System.Collections;
+using System.Collections.Generic;
+
+using UnityEngine;
+using UnityEngine.UI;
+
+public class FashionShowCommentPanel : Regist
+{
+    #region Config
+
+    private static Text NicknameTitle;
+    private static Text ContentTitle;
+    private static Text Title;
+    private static Text CloseButtonText;
+    private static Text SendCommentButtonText;
+    private static Text Placeholder;
+    private static Button CloseButton;
+    private static Button SendCommentButton;
+    private static Transform Mask;
+    private static InputField commentInputField;
+    private static VirtualScrollRectPlus VirtualScrollRectPlus;
+
+    private static int currentCommentPage;
+    private static int currentCommentIndex;
+    private static bool requesting;
+    private static ShowCommentsHttp commentDataHttp;
+    private static GetFashionShowData showData;
+    private static List<ShowCommentData> commentDatas = new List<ShowCommentData>();
+    private static List<ShowComment> commentItems = new List<ShowComment>();
+
+    #endregion
+
+    public override void RegistReference()
+    {
+        base.RegistReference();
+
+        NicknameTitle = ResourceManager.Get<Text>(CanvasLabel.Ph_NicknameTitle);
+        ContentTitle = ResourceManager.Get<Text>(CanvasLabel.Ph_ContentTitle);
+        Title = ResourceManager.Get<Text>(CanvasLabel.Ph_Title);
+        CloseButtonText = ResourceManager.Get<Text>(CanvasLabel.Ph_CloseButtonText);
+        SendCommentButtonText = ResourceManager.Get<Text>(CanvasLabel.Ph_SendCommentButtonText);
+        Placeholder = ResourceManager.Get<Text>(CanvasLabel.Ph_Placeholder);
+        CloseButton = ResourceManager.Get<Button>(CanvasLabel.Ph_CloseButton);
+        SendCommentButton = ResourceManager.Get<Button>(CanvasLabel.Ph_SendCommentButton);
+        Mask = ResourceManager.Get(CanvasLabel.Ph_CommentMask);
+        commentInputField = ResourceManager.Get<InputField>(CanvasLabel.Ph_InputField);
+        VirtualScrollRectPlus = ResourceManager.Get<VirtualScrollRectPlus>(CanvasLabel.Ph_ScrollRect);
+
+        LanguageManager.Add(Title, new MulLanStr(LanguageLabel.UI__Ph_Tit));
+        LanguageManager.Add(NicknameTitle, new MulLanStr(LanguageLabel.UI__Ph_NicknameTitle));
+        LanguageManager.Add(ContentTitle, new MulLanStr(LanguageLabel.UI__Ph_ContentTitle));
+        LanguageManager.Add(CloseButtonText, new MulLanStr(LanguageLabel.UI__Ph_CloseLab));
+        LanguageManager.Add(SendCommentButtonText, new MulLanStr(LanguageLabel.UI__Ph_CommentLab));
+        LanguageManager.Add(Placeholder, new MulLanStr(LanguageLabel.UI__Ph_Placeholder));
+
+        Mask.CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        VirtualScrollRectPlus.Init(1, 1000000);
+        VirtualScrollRectPlus.OnGetNextItem += OnGetNextItem;
+        CloseButton.onClick.AddListener(OnCloseButtonClick);
+        SendCommentButton.onClick.AddListener(OnSendCommentButtonClick);
+    }
+
+
+    public static void ShowPanel(GetFashionShowData data)
+    {
+        ResetPanel(data);
+        Mask.TweenForCG();
+    }
+
+    private static void ResetPanel(GetFashionShowData data)
+    {
+        showData = data;
+        requesting = false;
+        currentCommentPage = 0;
+        currentCommentIndex = 0;
+        commentDatas = new List<ShowCommentData>();
+        foreach (var commentItem in commentItems)
+        {
+            DestroyImmediate(commentItem.gameObject);
+        }
+        commentItems = new List<ShowComment>();
+        commentInputField.text = "";
+        OnGetNextItem(0);
+    }
+
+    public static void HidePanel()
+    {
+        Mask.TweenBacCG();
+    }
+
+
+    private static void OnCloseButtonClick()
+    {
+        if (commentDataHttp != null)
+        {
+            commentDataHttp.disable = true;
+        }
+        AudioManager.PlayClip(ResourceLabel.CloseClip);
+        HidePanel();
+    }
+
+
+    private static VirtualScrollRectItem OnGetNextItem(int index)
+    {
+        if (commentDatas.Count > currentCommentIndex)
+        {
+            ShowCommentData data = commentDatas[currentCommentIndex];
+            ShowComment item = ResourceManager.GetShowComment(data);
+            commentItems.Add(item);
+            currentCommentIndex++;
+            return null;
+        }
+        else
+        {
+            GetCommentData();
+            return null;
+        }
+    }
+
+
+    private static void OnSendCommentButtonClick()
+    {
+        AudioManager.PlayClip(ResourceLabel.BtnClip);
+        SendComment();
+    }
+
+    private static void SendComment()
+    {
+        string comment = commentInputField.text;
+        if (StringFilter.ContainSensitiveWord(comment))
+        {
+            Bubble.Show(null, Language.GetStr(LanguageLabel.Common__ContainSensitiveWord));
+            return;
+        }
+        SendCommentButton.interactable = false;
+        long playerId = HttpManager.GetPlayerId();
+        CommentShowHttp.Comment(playerId, showData.showId, comment, 
+            OnSendCommentSuccees, OnSendCommentFail);
+    }
+
+    private static void OnSendCommentSuccees()
+    {
+        commentInputField.text = "";
+        SendCommentButton.interactable = true;
+        ResetPanel(showData);
+        CommentRewardManager.GetReward();
+    }
+
+    private static void OnSendCommentFail()
+    {
+        SendCommentButton.interactable = true;
+    }
+
+
+    private static void GetCommentData()
+    {
+        if (requesting)
+        {
+            return;
+        }
+        requesting = true;
+        commentDataHttp = ShowCommentsHttp.Get(currentCommentPage, showData.showId, 
+            OnGetCommentDataSuccess, OnGetCommentDataFail);
+    }
+
+    private static void OnGetCommentDataSuccess(object obj)
+    {
+        requesting = false;
+        currentCommentPage++;
+        List<ShowCommentData> datas = (List<ShowCommentData>) obj;
+        foreach (var data in datas)
+        {
+            commentDatas.AddUnique(data, (data0, data1) => data0.id == data1.id);
+        }
+        if (commentItems.Count == 0)
+        {
+            OnGetNextItem(0);
+            OnGetNextItem(0);
+            OnGetNextItem(0);
+            OnGetNextItem(0);
+            OnGetNextItem(0);
+        }
+    }
+
+    private static void OnGetCommentDataFail()
+    {
+        requesting = false;
+    }
 }

+ 270 - 260
Assets/Script/Tool/Anim/TweenVec.cs

@@ -1,261 +1,271 @@
-using UnityEngine;
-
-using System;
-using System.Collections;
-
-public class TweenVec : TweenRoot
-{
-    #region
-
-    public override bool InOrigin
-    {
-        get
-        {
-            if (Local)
-            {
-                if (Target.localPosition.Equal(Origin))
-                {
-                    InOrigin_ = true;
-                }
-                else
-                {
-                    InOrigin_ = false;
-                }
-            }
-            else
-            {
-                if (Target.position.Equal(Origin))
-                {
-                    InOrigin_ = true;
-                }
-                else
-                {
-                    InOrigin_ = false;
-                }
-            }
-
-            BackwardFinish();
-
-            return InOrigin_;
-        }
-        set
-        {
-            InOrigin_ = value;
-
-            InPause = false;
-            InForward = false;
-            InBackward = false;
-
-            if (InOrigin_)
-            {
-                if (Local)
-                {
-                    Target.localPosition = Origin;
-                }
-                else
-                {
-                    Target.position = Origin;
-                }
-
-                BackwardFinish();
-            }
-        }
-    }
-
-    public override bool InDestination
-    {
-        get
-        {
-            if (Local)
-            {
-                if (Target.localPosition.Equal(Destination))
-                {
-                    InDestination_ = true;
-                }
-                else
-                {
-                    InDestination_ = false;
-                }
-            }
-            else
-            {
-                if (Target.position.Equal(Destination))
-                {
-                    InDestination_ = true;
-                }
-                else
-                {
-                    InDestination_ = false;
-                }
-            }
-
-            ForwardFinish();
-
-            return InDestination_;
-        }
-        set
-        {
-            InDestination_ = value;
-
-            InPause = false;
-            InForward = false;
-            InBackward = false;
-
-            if (InDestination_)
-            {
-                if (Local)
-                {
-                    Target.localPosition = Destination;
-                }
-                else
-                {
-                    Target.position = Destination;
-                }
-
-                ForwardFinish();
-            }
-        }
-    }
-
-    public bool Local;
-    public Vector3 Delta;
-    public Vector3 Origin;
-    public Vector3 Destination;
-    public Transform Target;
-    public CurveFunctionV Func;
-
-    #endregion
-
-    public TweenVec(Transform target, Vector3 origin, Vector3 destination, float duration, bool local, bool originActive, bool destActive, Curve curve, bool cg = false) : base(cg, curve, target)
-    {
-        CanvasGroup = target.GetComponent<CanvasGroup>();
-
-        Curve = curve;
-        Func = AnimManager.CurveFuncDicV[curve];
-        Target = target;
-
-        InForward = false;
-        InBackward = false;
-
-        Local = local;
-        Delta = destination - origin;
-        Origin = origin;
-        Duration = duration;
-        DestActive = destActive;
-        Destination = destination;
-        OriginActive = originActive;
-    }
-
-
-    public override bool StartForward()
-    {
-        if (base.StartForward())
-        {
-            return true;
-        }
-
-        if (InBackward)
-        {
-            InBackward = false;
-
-            if (Local)
-            {
-                Timer = AnimManager.GetTimerVec(Target.localPosition, Duration, Origin, Delta, Curve);
-            }
-            else
-            {
-                Timer = AnimManager.GetTimerVec(Target.position, Duration, Origin, Delta, Curve);
-            }
-        }
-
-        return false;
-    }
-
-    public override bool StartBackward()
-    {
-        if (base.StartBackward())
-        {
-            return true;
-        }
-
-        if (InForward)
-        {
-            InForward = false;
-
-            if (Local)
-            {
-                Timer = AnimManager.GetTimerVec(Target.localPosition, Duration, Destination, -Delta, Curve);
-            }
-            else
-            {
-                Timer = AnimManager.GetTimerVec(Target.position, Duration, Destination, -Delta, Curve);
-            }
-        }
-
-        return false;
-    }
-
-    public override bool DoForward()
-    {
-        Timer += Time.deltaTime;
-
-        if (Timer > Duration)
-        {
-            InDestination = true;
-
-            if (OnForwardFinish != null)
-            {
-                OnForwardFinish.Invoke();
-            }
-
-            SetLoop(EventType.ForwardFinish);
-
-            return true;
-        }
-        else
-        {
-            if (Local)
-            {
-                Target.localPosition = Func(Timer, Duration, Origin, Delta);
-            }
-            else
-            {
-                Target.position = Func(Timer, Duration, Origin, Delta);
-            }
-
-            return false;
-        }
-    }
-
-    public override bool DoBackward()
-    {
-        Timer += Time.deltaTime;
-
-        if (Timer > Duration)
-        {
-            InOrigin = true;
-
-            if (OnBackwardFinish != null)
-            {
-                OnBackwardFinish.Invoke();
-            }
-
-            SetLoop(EventType.BackwardFinish);
-
-            return true;
-        }
-        else
-        {
-            if (Local)
-            {
-                Target.localPosition = Func(Timer, Duration, Destination, -Delta);
-            }
-            else
-            {
-                Target.position = Func(Timer, Duration, Destination, -Delta);
-            }
-
-            return false;
-        }
-    }
+using UnityEngine;
+
+using System;
+using System.Collections;
+
+public class TweenVec : TweenRoot
+{
+    #region
+
+    public override bool InOrigin
+    {
+        get
+        {
+            if (Local)
+            {
+                if (Target.localPosition.Equal(Origin))
+                {
+                    InOrigin_ = true;
+                }
+                else
+                {
+                    InOrigin_ = false;
+                }
+            }
+            else
+            {
+                if (Target.position.Equal(Origin))
+                {
+                    InOrigin_ = true;
+                }
+                else
+                {
+                    InOrigin_ = false;
+                }
+            }
+
+            BackwardFinish();
+
+            return InOrigin_;
+        }
+        set
+        {
+            InOrigin_ = value;
+
+            InPause = false;
+            InForward = false;
+            InBackward = false;
+
+            if (InOrigin_)
+            {
+                if (Local)
+                {
+                    Target.localPosition = Origin;
+                }
+                else
+                {
+                    Target.position = Origin;
+                }
+
+                BackwardFinish();
+            }
+        }
+    }
+
+    public override bool InDestination
+    {
+        get
+        {
+            if (Local)
+            {
+                if (Target.localPosition.Equal(Destination))
+                {
+                    InDestination_ = true;
+                }
+                else
+                {
+                    InDestination_ = false;
+                }
+            }
+            else
+            {
+                if (Target.position.Equal(Destination))
+                {
+                    InDestination_ = true;
+                }
+                else
+                {
+                    InDestination_ = false;
+                }
+            }
+
+            ForwardFinish();
+
+            return InDestination_;
+        }
+        set
+        {
+            InDestination_ = value;
+
+            InPause = false;
+            InForward = false;
+            InBackward = false;
+
+            if (InDestination_)
+            {
+                if (Local)
+                {
+                    Target.localPosition = Destination;
+                }
+                else
+                {
+                    Target.position = Destination;
+                }
+
+                ForwardFinish();
+            }
+        }
+    }
+
+    public bool Local;
+    public Vector3 Delta;
+    public Vector3 Origin;
+    public Vector3 Destination;
+    public Transform Target;
+    public CurveFunctionV Func;
+
+    #endregion
+
+    public TweenVec(Transform target, Vector3 origin, Vector3 destination, float duration, bool local, bool originActive, bool destActive, Curve curve, bool cg = false) : base(cg, curve, target)
+    {
+        CanvasGroup = target.GetComponent<CanvasGroup>();
+
+        Curve = curve;
+        Func = AnimManager.CurveFuncDicV[curve];
+        Target = target;
+
+        InForward = false;
+        InBackward = false;
+
+        Local = local;
+        Delta = destination - origin;
+        Origin = origin;
+        Duration = duration;
+        DestActive = destActive;
+        Destination = destination;
+        OriginActive = originActive;
+    }
+
+
+    public override bool StartForward()
+    {
+        if (base.StartForward())
+        {
+            return true;
+        }
+
+        if (InBackward)
+        {
+            InBackward = false;
+
+            if (Local)
+            {
+                Timer = AnimManager.GetTimerVec(Target.localPosition, Duration, Origin, Delta, Curve);
+            }
+            else
+            {
+                Timer = AnimManager.GetTimerVec(Target.position, Duration, Origin, Delta, Curve);
+            }
+        }
+
+        return false;
+    }
+
+    public override bool StartBackward()
+    {
+        if (base.StartBackward())
+        {
+            return true;
+        }
+
+        if (InForward)
+        {
+            InForward = false;
+
+            if (Local)
+            {
+                Timer = AnimManager.GetTimerVec(Target.localPosition, Duration, Destination, -Delta, Curve);
+            }
+            else
+            {
+                Timer = AnimManager.GetTimerVec(Target.position, Duration, Destination, -Delta, Curve);
+            }
+        }
+
+        return false;
+    }
+
+    public override bool DoForward()
+    {
+        if (Target  == null)
+        {
+            return true;
+        }
+
+        Timer += Time.deltaTime;
+
+        if (Timer > Duration)
+        {
+            InDestination = true;
+
+            if (OnForwardFinish != null)
+            {
+                OnForwardFinish.Invoke();
+            }
+
+            SetLoop(EventType.ForwardFinish);
+
+            return true;
+        }
+        else
+        {
+            if (Local)
+            {
+                Target.localPosition = Func(Timer, Duration, Origin, Delta);
+            }
+            else
+            {
+                Target.position = Func(Timer, Duration, Origin, Delta);
+            }
+
+            return false;
+        }
+    }
+
+    public override bool DoBackward()
+    {
+        if (Target == null)
+        {
+            return true;
+        }
+
+        Timer += Time.deltaTime;
+
+        if (Timer > Duration)
+        {
+            InOrigin = true;
+
+            if (OnBackwardFinish != null)
+            {
+                OnBackwardFinish.Invoke();
+            }
+
+            SetLoop(EventType.BackwardFinish);
+
+            return true;
+        }
+        else
+        {
+            if (Local)
+            {
+                Target.localPosition = Func(Timer, Duration, Destination, -Delta);
+            }
+            else
+            {
+                Target.position = Func(Timer, Duration, Destination, -Delta);
+            }
+
+            return false;
+        }
+    }
 }

+ 19 - 16
Assets/Script/Tool/Auxiliary.cs

@@ -155,22 +155,25 @@ public class Auxiliary : Regist
         //    RobotManager.DeactivateAllRobots(false);
         //}
 
-        //if (Input.GetKeyDown(KeyCode.Space))
-        //{
-        //    PlayerManager.Player.UAC.anim.Stop();
-        //    //Manager.Coin = 0;
-        //    //Manager.AddCoin(1000000000000, StaticsManager.ItemID.None, StaticsManager.ConsumeModule.None);
-        //    //DebugManager.ResetGardenLevel(50);
-        //    //HttpManager.GetTargetConfig
-        //    //(
-        //    //    "1801134288353834791",
-        //    //    data =>
-        //    //    {
-        //    //        VisitManager.VisiteeSerialNumber = "1801134288353834791";
-        //    //        VisitManager.SavePulledConfig(data);
-        //    //    }
-        //    //);
-        //}
+        if (Input.GetKeyDown(KeyCode.Space))
+        {
+            TutorialManager.changeMouseTutorial = true;
+            //PlayerManager.Player.UAC.anim.Stop();
+            //Manager.Coin = 0;
+            //Manager.Diamond = 0;
+            //CommentRewardManager.GetReward();
+            //Manager.AddCoin(1000000000000, StaticsManager.ItemID.None, StaticsManager.ConsumeModule.None);
+            //DebugManager.ResetGardenLevel(50);
+            //HttpManager.GetTargetConfig
+            //(
+            //    "1801134288353834791",
+            //    data =>
+            //    {
+            //        VisitManager.VisiteeSerialNumber = "1801134288353834791";
+            //        VisitManager.SavePulledConfig(data);
+            //    }
+            //);
+        }
 
         #endregion
 

+ 5 - 5
Assets/Script/Tool/Bundle.cs

@@ -827,12 +827,12 @@ public class Bundle : MonoBehaviour
                 //Debug.Log(localMD5);
                 //Debug.Log(HttpManager.Md5);
                 needUpdate = localMD5 != HttpManager.Md5;
-                Debug.LogWarning(string.Format("NeedUpdate : {0}", needUpdate));
+                //Debug.LogWarning(string.Format("NeedUpdate : {0}", needUpdate));
+            }
+            if (Application.isEditor || Application.isMobilePlatform)
+            {
+                needUpdate = false;
             }
-            //if (Application.isEditor || Application.isMobilePlatform)
-            //{
-            //    needUpdate = false;
-            //}
             AssetBundleUtility.OnDownloadOrUpdateFinish += FinishDownloadAndLoad;
             if (needUpdate)
             {

+ 58 - 55
Assets/Script/Tool/SceneMask.cs

@@ -1,56 +1,59 @@
-using UnityEngine;
-
-using System.Collections;
-using System.Collections.Generic;
-
-public class SceneMask : Regist
-{
-    #region 变量
-
-    public static Material Material;
-    public static BoxCollider2D BoxCollider;
-
-    #endregion
-
-    public override bool InitAtOnce()
-    {
-        if (base.InitAtOnce())
-        {
-            return true;
-        }
-
-        enabled = true;
-        Material = GetComponent<SpriteRenderer>().material;
-        BoxCollider = ResourceManager.Get<BoxCollider2D>("TutorialCollider");
-
-        return false;
-    }
-
-    public static void SetArea(Transform tra, Vector3 screenPos, float radiusX, float radiusY)
-    {
-        Material.SetFloat("_RadiusX", radiusX);
-        Material.SetFloat("_RadiusY", radiusY);
-        Material.SetVector("_Center", screenPos);
-
-        BoxCollider.transform.SetX(tra.position.x);
-        BoxCollider.transform.SetY(tra.position.y);
-
-        BoxCollider.size = new Vector2(36*radiusX, 20*radiusY);
-
-        ResourceManager.Get("TutorialMask").TweenForSr();
-    }
-
-    public static void ClearArea()
-    {
-        Material.SetFloat("_RadiusX", 0);
-        Material.SetFloat("_RadiusY", 0);
-        Material.SetVector("_Center", new Vector2(0, 0));
-
-        BoxCollider.transform.SetX(0);
-        BoxCollider.transform.SetY(0);
-
-        BoxCollider.size = new Vector2();
-
-        ResourceManager.Get("TutorialMask").TweenBacSr();
-    }
+using UnityEngine;
+
+using System.Collections;
+using System.Collections.Generic;
+
+public class SceneMask : Regist
+{
+    #region 变量
+
+    public static SceneMask inst;
+
+    public static Material Material;
+    public static BoxCollider2D BoxCollider;
+
+    #endregion
+
+    public override bool InitAtOnce()
+    {
+        if (base.InitAtOnce())
+        {
+            return true;
+        }
+
+        inst = this;
+        enabled = true;
+        Material = GetComponent<SpriteRenderer>().material;
+        BoxCollider = ResourceManager.Get<BoxCollider2D>("TutorialCollider");
+
+        return false;
+    }
+
+    public static void SetArea(Transform tra, Vector3 screenPos, float radiusX, float radiusY)
+    {
+        Material.SetFloat("_RadiusX", radiusX);
+        Material.SetFloat("_RadiusY", radiusY);
+        Material.SetVector("_Center", screenPos);
+
+        BoxCollider.transform.SetX(tra.position.x);
+        BoxCollider.transform.SetY(tra.position.y);
+
+        BoxCollider.size = new Vector2(36*radiusX, 20*radiusY);
+
+        ResourceManager.Get("TutorialMask").TweenForSr();
+    }
+
+    public static void ClearArea()
+    {
+        Material.SetFloat("_RadiusX", 0);
+        Material.SetFloat("_RadiusY", 0);
+        Material.SetVector("_Center", new Vector2(0, 0));
+
+        BoxCollider.transform.SetX(0);
+        BoxCollider.transform.SetY(0);
+
+        BoxCollider.size = new Vector2();
+
+        ResourceManager.Get("TutorialMask").TweenBacSr();
+    }
 }

+ 25 - 25
Assets/Script/Tool/UI/HudTarget.cs

@@ -1,26 +1,26 @@
-using UnityEngine;
-
-using System.Collections;
-
-public class HudTarget : MonoBehaviour 
-{
-    #region 变量
-
-    public Transform PosTra;
-
-    #endregion
-
-    private void Update()
-    {
-        SetPosition();
-    }
-
-    public void SetPosition()
-    {
-        if (PosTra == null)
-        {
-            return;
-        }
-        transform.position = Camera.main.WorldToScreenPoint(PosTra.position);
-    }
+using UnityEngine;
+
+using System.Collections;
+
+public class HudTarget : MonoBehaviour 
+{
+    #region 变量
+
+    public Transform PosTra;
+
+    #endregion
+
+    private void Update()
+    {
+        SetPosition();
+    }
+
+    public void SetPosition()
+    {
+        if (PosTra == null)
+        {
+            return;
+        }
+        transform.position = Camera.main.WorldToScreenPoint(PosTra.position);
+    }
 }

+ 1 - 0
ProjectSettings/GraphicsSettings.asset

@@ -39,6 +39,7 @@ GraphicsSettings:
   - {fileID: 4800000, guid: ac390d8200b91bd419e2d7b9e580d07d, type: 3}
   - {fileID: 4800000, guid: e73e8e8cfe7b2344abcbf572918e22a1, type: 3}
   - {fileID: 16000, guid: 0000000000000000f000000000000000, type: 0}
+  - {fileID: 16002, guid: 0000000000000000f000000000000000, type: 0}
   m_PreloadedShaders: []
   m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000,
     type: 0}

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