浏览代码

Merge branch 'master' of http://git.dashgame.com/gsgundam/garden_client

# Conflicts:
#	Assets/Resources/Sprite/Garden/Flower4.png.meta
LiuQilin 8 年之前
父节点
当前提交
983404a8da
共有 100 个文件被更改,包括 2637 次插入359 次删除
  1. 73 0
      .gitignore
  2. 9 0
      Assets/Plugins.meta
  3. 二进制
      Assets/Plugins/Debuger.dll
  4. 25 0
      Assets/Plugins/Debuger.dll.meta
  5. 二进制
      Assets/Plugins/LitJson.dll
  6. 25 0
      Assets/Plugins/LitJson.dll.meta
  7. 9 0
      Assets/Plugins/Xlsx.meta
  8. 二进制
      Assets/Plugins/Xlsx/Excel.dll
  9. 72 0
      Assets/Plugins/Xlsx/Excel.dll.meta
  10. 二进制
      Assets/Plugins/Xlsx/ICSharpCode.SharpZipLib.dll
  11. 72 0
      Assets/Plugins/Xlsx/ICSharpCode.SharpZipLib.dll.meta
  12. 二进制
      Assets/Plugins/Xlsx/System.Data.dll
  13. 70 0
      Assets/Plugins/Xlsx/System.Data.dll.meta
  14. 二进制
      Assets/Resources/Prefab/Object/Flower0.prefab
  15. 二进制
      Assets/Resources/Prefab/Object/Flower1.prefab
  16. 二进制
      Assets/Resources/Prefab/Object/Flower10.prefab
  17. 二进制
      Assets/Resources/Prefab/Object/Flower11.prefab
  18. 二进制
      Assets/Resources/Prefab/Object/Flower2.prefab
  19. 二进制
      Assets/Resources/Prefab/Object/Flower3.prefab
  20. 二进制
      Assets/Resources/Prefab/Object/Flower4.prefab
  21. 二进制
      Assets/Resources/Prefab/Object/Flower5.prefab
  22. 二进制
      Assets/Resources/Prefab/Object/Flower6.prefab
  23. 二进制
      Assets/Resources/Prefab/Object/Flower7.prefab
  24. 二进制
      Assets/Resources/Prefab/Object/Flower8.prefab
  25. 二进制
      Assets/Resources/Prefab/Object/Flower9.prefab
  26. 二进制
      Assets/Resources/Prefab/Object/Garden.prefab
  27. 二进制
      Assets/Resources/Prefab/Object/Player.prefab
  28. 二进制
      Assets/Resources/Prefab/PrefabUI/Canvas.prefab
  29. 二进制
      Assets/Resources/Prefab/PrefabUI/Fa_SkillItem.prefab
  30. 二进制
      Assets/Resources/Prefab/PrefabUI/Fc_StoreItem.prefab
  31. 0 68
      Assets/Resources/Sprite/Garden/Flower4.png.meta
  32. 二进制
      Assets/Resources/Sprite/SpriteUI/管理花园按钮.png
  33. 9 0
      Assets/Resources/XML/Config.meta
  34. 101 0
      Assets/Resources/XML/Config/ability_config.xml
  35. 3 3
      Assets/Resources/XML/Config/ability_config.xml.meta
  36. 31 0
      Assets/Resources/XML/Config/flower_config.xml
  37. 8 0
      Assets/Resources/XML/Config/flower_config.xml.meta
  38. 75 0
      Assets/Resources/XML/Config/pack_config.xml
  39. 8 0
      Assets/Resources/XML/Config/pack_config.xml.meta
  40. 118 0
      Assets/Resources/XML/Config/skill_config.xml
  41. 8 0
      Assets/Resources/XML/Config/skill_config.xml.meta
  42. 8 8
      Assets/Resources/XML/Data.xml
  43. 9 0
      Assets/Resources/XML/lan.meta
  44. 6 0
      Assets/Resources/XML/lan/ChineseSimplified.xml
  45. 8 0
      Assets/Resources/XML/lan/ChineseSimplified.xml.meta
  46. 6 0
      Assets/Resources/XML/lan/English.xml
  47. 8 0
      Assets/Resources/XML/lan/English.xml.meta
  48. 二进制
      Assets/Scene1.unity
  49. 5 0
      Assets/Script/Editor/EditorAuxiliary.cs
  50. 403 0
      Assets/Script/Editor/EditorConfigExporter.cs
  51. 12 0
      Assets/Script/Editor/EditorConfigExporter.cs.meta
  52. 435 0
      Assets/Script/Editor/EditorLanguageExport.cs
  53. 12 0
      Assets/Script/Editor/EditorLanguageExport.cs.meta
  54. 1 0
      Assets/Script/Manage/Initializer.cs
  55. 2 6
      Assets/Script/Manage/ManaGarden.cs
  56. 1 15
      Assets/Script/Manage/ManaLog.cs
  57. 0 4
      Assets/Script/Manage/ManaMessage.cs
  58. 0 9
      Assets/Script/Manage/ManaMiniGame.cs
  59. 3 3
      Assets/Script/Manage/ManaPlayer.cs
  60. 74 219
      Assets/Script/Manage/ManaReso.cs
  61. 0 4
      Assets/Script/Manage/ManaTween.cs
  62. 0 4
      Assets/Script/Manage/ManaUI.cs
  63. 6 2
      Assets/Script/Object/Flower.cs
  64. 0 4
      Assets/Script/Object/Garden.cs
  65. 2 4
      Assets/Script/Object/Player.cs
  66. 35 0
      Assets/Script/Tool/Auxiliary.cs
  67. 21 3
      Assets/Script/Tool/Data.cs
  68. 220 0
      Assets/Script/Tool/Language.cs
  69. 12 0
      Assets/Script/Tool/Language.cs.meta
  70. 33 0
      Assets/Script/Tool/TweenVector.cs
  71. 9 0
      Assets/Script/Utils.meta
  72. 96 0
      Assets/Script/Utils/DGFileUtil.cs
  73. 12 0
      Assets/Script/Utils/DGFileUtil.cs.meta
  74. 41 0
      Assets/Script/Utils/JsonUtil.cs
  75. 12 0
      Assets/Script/Utils/JsonUtil.cs.meta
  76. 79 0
      Assets/Script/Utils/MD5Util.cs
  77. 12 0
      Assets/Script/Utils/MD5Util.cs.meta
  78. 160 0
      Assets/Script/Utils/NumberUtil.cs
  79. 12 0
      Assets/Script/Utils/NumberUtil.cs.meta
  80. 110 0
      Assets/Script/Utils/StringUtil.cs
  81. 12 0
      Assets/Script/Utils/StringUtil.cs.meta
  82. 9 0
      Assets/XlsxSource.meta
  83. 二进制
      Assets/XlsxSource/ability_config.xlsx
  84. 2 2
      Assets/XlsxSource/ability_config.xlsx.meta
  85. 二进制
      Assets/XlsxSource/flower_config.xlsx
  86. 8 0
      Assets/XlsxSource/flower_config.xlsx.meta
  87. 二进制
      Assets/XlsxSource/language_config.xlsx
  88. 8 0
      Assets/XlsxSource/language_config.xlsx.meta
  89. 二进制
      Assets/XlsxSource/pack_config.xlsx
  90. 8 0
      Assets/XlsxSource/pack_config.xlsx.meta
  91. 二进制
      Assets/XlsxSource/skill_config.xlsx
  92. 8 0
      Assets/XlsxSource/skill_config.xlsx.meta
  93. 二进制
      Library/AnnotationManager
  94. 二进制
      Library/AssetServerCacheV3
  95. 二进制
      Library/AssetVersioning.db
  96. 二进制
      Library/CurrentLayout.dwlt
  97. 二进制
      Library/CurrentMaximizeLayout.dwlt
  98. 二进制
      Library/EditorUserBuildSettings.asset
  99. 二进制
      Library/InspectorExpandedItems.asset
  100. 1 1
      Library/LastSceneManagerSetup.txt

+ 73 - 0
.gitignore

@@ -0,0 +1,73 @@
+**/[Ll]ibrary/
+**/[Tt]emp/
+**/[Oo]bj/
+**/[Bb]uild/
+**/[Bb]uilds/
+**/[Ii]OS/
+**/Assets/StreamingAssets/
+**/Assets/AssetStoreTools*
+
+# Autogenerated VS/MD solution and project files
+ExportedObj/
+*.csproj
+*.unityproj
+*.sln
+*.suo
+*.tmp
+*.user
+*.userprefs
+*.pidb
+*.booproj
+*.svd
+
+**/Assets/tolua/Source/Generate/
+# Unity3D generated meta files
+*.pidb.meta
+
+# Unity3D Generated File On Crash Reports
+sysinfo.txt
+
+# Builds
+*.apk
+*.unitypackage
+*.zip
+*.7z
+*.rar
+.DS_Store
+
+*.DS_Store
+*.orig.meta
+*.orig
+*/.DS_Store
+[Bb]undle/*
+
+*/.DS_Store
+*/\~\$*
+*/~$*
+
+
+*.tmp
+
+# Word temporary
+~$*.doc*
+
+# Excel temporary
+~$*.xls*
+
+# Excel Backup File
+*.xlk
+
+# PowerPoint temporary
+~$*.ppt*
+
+# Visio autosave temporary files
+*.~vsdx
+**/.DS_Store
+[Bb]undle/
+[Bb]undle.meta
+[Ll]og/
+[Ss]treamingAssets/
+[Ss]treamingAssets.meta
+UnityVS
+
+Fight/fight.txt

+ 9 - 0
Assets/Plugins.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: e81904ae23498ec4d848400bd6e23d29
+folderAsset: yes
+timeCreated: 1487574346
+licenseType: Pro
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

二进制
Assets/Plugins/Debuger.dll


+ 25 - 0
Assets/Plugins/Debuger.dll.meta

@@ -0,0 +1,25 @@
+fileFormatVersion: 2
+guid: 8d0d99797c400f14497caa0b7959eb15
+timeCreated: 1487574612
+licenseType: Pro
+PluginImporter:
+  serializedVersion: 1
+  iconMap: {}
+  executionOrder: {}
+  isPreloaded: 0
+  isOverridable: 0
+  platformData:
+    Any:
+      enabled: 1
+      settings: {}
+    Editor:
+      enabled: 0
+      settings:
+        DefaultValueInitialized: true
+    WindowsStoreApps:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

二进制
Assets/Plugins/LitJson.dll


+ 25 - 0
Assets/Plugins/LitJson.dll.meta

@@ -0,0 +1,25 @@
+fileFormatVersion: 2
+guid: f9c5a7972ae437940994c8fc73755bb1
+timeCreated: 1487574512
+licenseType: Pro
+PluginImporter:
+  serializedVersion: 1
+  iconMap: {}
+  executionOrder: {}
+  isPreloaded: 0
+  isOverridable: 0
+  platformData:
+    Any:
+      enabled: 1
+      settings: {}
+    Editor:
+      enabled: 0
+      settings:
+        DefaultValueInitialized: true
+    WindowsStoreApps:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 9 - 0
Assets/Plugins/Xlsx.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 5fa93de68772d5f459727961c6d042f3
+folderAsset: yes
+timeCreated: 1487574351
+licenseType: Pro
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

二进制
Assets/Plugins/Xlsx/Excel.dll


+ 72 - 0
Assets/Plugins/Xlsx/Excel.dll.meta

@@ -0,0 +1,72 @@
+fileFormatVersion: 2
+guid: 567d5cc0423785e47a30bc72b55d295e
+timeCreated: 1433401754
+licenseType: Pro
+PluginImporter:
+  serializedVersion: 1
+  iconMap: {}
+  executionOrder: {}
+  isPreloaded: 0
+  platformData:
+    Android:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+    Any:
+      enabled: 0
+      settings: {}
+    Editor:
+      enabled: 1
+      settings:
+        CPU: AnyCPU
+        DefaultValueInitialized: true
+        OS: AnyOS
+    Linux:
+      enabled: 0
+      settings:
+        CPU: x86
+    Linux64:
+      enabled: 0
+      settings:
+        CPU: x86_64
+    OSXIntel:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+    OSXIntel64:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+    SamsungTV:
+      enabled: 0
+      settings:
+        STV_MODEL: STANDARD_13
+    WP8:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+        DontProcess: False
+        PlaceholderPath: 
+    Win:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+    Win64:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+    WindowsStoreApps:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+        DontProcess: False
+        PlaceholderPath: 
+        SDK: AnySDK
+    iOS:
+      enabled: 0
+      settings:
+        CompileFlags: 
+        FrameworkDependencies: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

二进制
Assets/Plugins/Xlsx/ICSharpCode.SharpZipLib.dll


+ 72 - 0
Assets/Plugins/Xlsx/ICSharpCode.SharpZipLib.dll.meta

@@ -0,0 +1,72 @@
+fileFormatVersion: 2
+guid: d4703fe77746f7241aa5dadd75e5c311
+timeCreated: 1433401755
+licenseType: Pro
+PluginImporter:
+  serializedVersion: 1
+  iconMap: {}
+  executionOrder: {}
+  isPreloaded: 0
+  platformData:
+    Android:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+    Any:
+      enabled: 0
+      settings: {}
+    Editor:
+      enabled: 1
+      settings:
+        CPU: AnyCPU
+        DefaultValueInitialized: true
+        OS: AnyOS
+    Linux:
+      enabled: 0
+      settings:
+        CPU: x86
+    Linux64:
+      enabled: 0
+      settings:
+        CPU: x86_64
+    OSXIntel:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+    OSXIntel64:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+    SamsungTV:
+      enabled: 0
+      settings:
+        STV_MODEL: STANDARD_13
+    WP8:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+        DontProcess: False
+        PlaceholderPath: 
+    Win:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+    Win64:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+    WindowsStoreApps:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+        DontProcess: False
+        PlaceholderPath: 
+        SDK: AnySDK
+    iOS:
+      enabled: 0
+      settings:
+        CompileFlags: 
+        FrameworkDependencies: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

二进制
Assets/Plugins/Xlsx/System.Data.dll


+ 70 - 0
Assets/Plugins/Xlsx/System.Data.dll.meta

@@ -0,0 +1,70 @@
+fileFormatVersion: 2
+guid: f793feb5b35df4d18b87616d42104af3
+PluginImporter:
+  serializedVersion: 1
+  iconMap: {}
+  executionOrder: {}
+  isPreloaded: 0
+  platformData:
+    Android:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+    Any:
+      enabled: 0
+      settings: {}
+    Editor:
+      enabled: 1
+      settings:
+        CPU: AnyCPU
+        DefaultValueInitialized: true
+        OS: AnyOS
+    Linux:
+      enabled: 0
+      settings:
+        CPU: x86
+    Linux64:
+      enabled: 0
+      settings:
+        CPU: x86_64
+    OSXIntel:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+    OSXIntel64:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+    SamsungTV:
+      enabled: 0
+      settings:
+        STV_MODEL: STANDARD_13
+    WP8:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+        DontProcess: False
+        PlaceholderPath: 
+    Win:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+    Win64:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+    WindowsStoreApps:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+        DontProcess: False
+        PlaceholderPath: 
+        SDK: AnySDK
+    iOS:
+      enabled: 0
+      settings:
+        CompileFlags: 
+        FrameworkDependencies: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

二进制
Assets/Resources/Prefab/Object/Flower0.prefab


二进制
Assets/Resources/Prefab/Object/Flower1.prefab


二进制
Assets/Resources/Prefab/Object/Flower10.prefab


二进制
Assets/Resources/Prefab/Object/Flower11.prefab


二进制
Assets/Resources/Prefab/Object/Flower2.prefab


二进制
Assets/Resources/Prefab/Object/Flower3.prefab


二进制
Assets/Resources/Prefab/Object/Flower4.prefab


二进制
Assets/Resources/Prefab/Object/Flower5.prefab


二进制
Assets/Resources/Prefab/Object/Flower6.prefab


二进制
Assets/Resources/Prefab/Object/Flower7.prefab


二进制
Assets/Resources/Prefab/Object/Flower8.prefab


二进制
Assets/Resources/Prefab/Object/Flower9.prefab


二进制
Assets/Resources/Prefab/Object/Garden.prefab


二进制
Assets/Resources/Prefab/Object/Player.prefab


二进制
Assets/Resources/Prefab/PrefabUI/Canvas.prefab


二进制
Assets/Resources/Prefab/PrefabUI/Fa_SkillItem.prefab


二进制
Assets/Resources/Prefab/PrefabUI/Fc_StoreItem.prefab


+ 0 - 68
Assets/Resources/Sprite/Garden/Flower4.png.meta

@@ -1,68 +0,0 @@
-fileFormatVersion: 2
-guid: 59961b1c1adea1747af8b4c94b982c54
-timeCreated: 1486900934
-licenseType: Pro
-TextureImporter:
-  fileIDToRecycleName: {}
-  serializedVersion: 4
-  mipmaps:
-    mipMapMode: 0
-    enableMipMap: 0
-    sRGBTexture: 1
-    linearTexture: 0
-    fadeOut: 0
-    borderMipMap: 0
-    mipMapFadeDistanceStart: 1
-    mipMapFadeDistanceEnd: 3
-  bumpmap:
-    convertToNormalMap: 0
-    externalNormalMap: 0
-    heightScale: 0.25
-    normalMapFilter: 0
-  isReadable: 0
-  grayScaleToAlpha: 0
-  generateCubemap: 6
-  cubemapConvolution: 0
-  seamlessCubemap: 0
-  textureFormat: 1
-  maxTextureSize: 2048
-  textureSettings:
-    filterMode: -1
-    aniso: -1
-    mipBias: -1
-    wrapMode: 1
-  nPOTScale: 0
-  lightmap: 0
-  compressionQuality: 50
-  spriteMode: 1
-  spriteExtrude: 1
-  spriteMeshType: 1
-  alignment: 0
-  spritePivot: {x: 0.5, y: 0.5}
-  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
-  spritePixelsToUnits: 100
-  alphaUsage: 1
-  alphaIsTransparency: 1
-  spriteTessellationDetail: -1
-  textureType: 8
-  textureShape: 1
-  maxTextureSizeSet: 0
-  compressionQualitySet: 0
-  textureFormatSet: 0
-  platformSettings:
-  - buildTarget: DefaultTexturePlatform
-    maxTextureSize: 2048
-    textureFormat: -1
-    textureCompression: 1
-    compressionQuality: 50
-    crunchedCompression: 0
-    allowsAlphaSplitting: 0
-    overridden: 0
-  spriteSheet:
-    serializedVersion: 2
-    sprites: []
-    outline: []
-  spritePackingTag: 
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

二进制
Assets/Resources/Sprite/SpriteUI/管理花园按钮.png


+ 9 - 0
Assets/Resources/XML/Config.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 35d48b1ba6c53aa42bedca9552bb8c96
+folderAsset: yes
+timeCreated: 1487574636
+licenseType: Pro
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 101 - 0
Assets/Resources/XML/Config/ability_config.xml

@@ -0,0 +1,101 @@
+<data>
+  <item id="1" name="花园" class="1" class_id="1" coin_person="10" person="0.1" skill_cd="" unlock_lv="" unlock_ahead_cur="" unlock_ahead_amt="" unlock_cur="" unlock_amnt="" unlock_pos="" upgrade_cur="1" upgrade_amnt="200" upgrade_fml="a*1.07" upgrade_plus="10" upgrade_person="0.1" upgrade_cd="" desc="每人次收入 金币%coin_person%" icon="" anim="" label="" />
+  <item id="2" name="炼金石" class="1" class_id="5" coin_person="" person="0.3" skill_cd="" unlock_lv="300" unlock_ahead_cur="2" unlock_ahead_amt="200" unlock_cur="" unlock_amnt="" unlock_pos="" upgrade_cur="2" upgrade_amnt="300" upgrade_fml="a" upgrade_plus="" upgrade_person="1" upgrade_cd="" desc="" icon="" anim="" label="" />
+  <item id="3" name="神秘灌木" class="1" class_id="6" coin_person="1" person="" skill_cd="" unlock_lv="500" unlock_ahead_cur="2" unlock_ahead_amt="300" unlock_cur="" unlock_amnt="" unlock_pos="" upgrade_cur="2" upgrade_amnt="300" upgrade_fml="a" upgrade_plus="0.5" upgrade_person="" upgrade_cd="" desc="" icon="" anim="" label="" />
+  <item id="4" name="滴哩哩的小黄鹂" class="1" class_id="7" coin_person="" person="" skill_cd="0.05" unlock_lv="500" unlock_ahead_cur="2" unlock_ahead_amt="500" unlock_cur="" unlock_amnt="" unlock_pos="" upgrade_cur="2" upgrade_amnt="300" upgrade_fml="a" upgrade_plus="" upgrade_person="" upgrade_cd="0.05" desc="" icon="" anim="" label="" />
+  <item id="5" name="黄色小蜜蜂" class="2" class_id="1" coin_person="10" person="" skill_cd="" unlock_lv="" unlock_ahead_cur="" unlock_ahead_amt="" unlock_cur="" unlock_amnt="" unlock_pos="" upgrade_cur="1" upgrade_amnt="1600" upgrade_fml="a*1.07" upgrade_plus="10" upgrade_person="" upgrade_cd="" desc="" icon="" anim="" label="" />
+  <item id="6" name="紫色小蜜蜂" class="2" class_id="2" coin_person="10" person="" skill_cd="" unlock_lv="" unlock_ahead_cur="" unlock_ahead_amt="" unlock_cur="" unlock_amnt="" unlock_pos="1" upgrade_cur="1" upgrade_amnt="86400" upgrade_fml="a*1.07" upgrade_plus="10" upgrade_person="" upgrade_cd="" desc="" icon="" anim="" label="" />
+  <item id="7" name="蓝色小蜜蜂" class="2" class_id="3" coin_person="10" person="" skill_cd="" unlock_lv="" unlock_ahead_cur="" unlock_ahead_amt="" unlock_cur="" unlock_amnt="" unlock_pos="1" upgrade_cur="1" upgrade_amnt="22118000" upgrade_fml="a*1.07" upgrade_plus="10" upgrade_person="" upgrade_cd="" desc="" icon="" anim="" label="" />
+  <item id="8" name="红色小蜜蜂" class="2" class_id="4" coin_person="10" person="" skill_cd="" unlock_lv="" unlock_ahead_cur="" unlock_ahead_amt="" unlock_cur="" unlock_amnt="" unlock_pos="1" upgrade_cur="1" upgrade_amnt="16588000000" upgrade_fml="a*1.07" upgrade_plus="10" upgrade_person="" upgrade_cd="" desc="" icon="" anim="" label="" />
+  <item id="9" name="白色小蜜蜂" class="2" class_id="5" coin_person="10" person="" skill_cd="" unlock_lv="" unlock_ahead_cur="" unlock_ahead_amt="" unlock_cur="" unlock_amnt="" unlock_pos="1" upgrade_cur="1" upgrade_amnt="28665000000000" upgrade_fml="a*1.07" upgrade_plus="10" upgrade_person="" upgrade_cd="" desc="" icon="" anim="" label="" />
+  <item id="10" name="黄色小蝴蝶" class="2" class_id="6" coin_person="20" person="" skill_cd="" unlock_lv="300" unlock_ahead_cur="2" unlock_ahead_amt="100" unlock_cur="" unlock_amnt="" unlock_pos="1" upgrade_cur="1" upgrade_amnt="28665000000000" upgrade_fml="a*1.07" upgrade_plus="20" upgrade_person="" upgrade_cd="" desc="" icon="" anim="" label="" />
+  <item id="11" name="紫色小蝴蝶" class="2" class_id="7" coin_person="20" person="" skill_cd="" unlock_lv="300" unlock_ahead_cur="2" unlock_ahead_amt="100" unlock_cur="" unlock_amnt="" unlock_pos="1" upgrade_cur="1" upgrade_amnt="28665000000000" upgrade_fml="a*1.07" upgrade_plus="20" upgrade_person="" upgrade_cd="" desc="" icon="" anim="" label="" />
+  <item id="12" name="蓝色小蝴蝶" class="2" class_id="8" coin_person="20" person="" skill_cd="" unlock_lv="300" unlock_ahead_cur="2" unlock_ahead_amt="100" unlock_cur="" unlock_amnt="" unlock_pos="1" upgrade_cur="1" upgrade_amnt="28665000000000" upgrade_fml="a*1.07" upgrade_plus="20" upgrade_person="" upgrade_cd="" desc="" icon="" anim="" label="" />
+  <item id="13" name="红色小蝴蝶" class="2" class_id="9" coin_person="20" person="" skill_cd="" unlock_lv="300" unlock_ahead_cur="2" unlock_ahead_amt="100" unlock_cur="" unlock_amnt="" unlock_pos="1" upgrade_cur="1" upgrade_amnt="28665000000000" upgrade_fml="a*1.07" upgrade_plus="20" upgrade_person="" upgrade_cd="" desc="" icon="" anim="" label="" />
+  <item id="14" name="白色小蝴蝶" class="2" class_id="10" coin_person="20" person="" skill_cd="" unlock_lv="300" unlock_ahead_cur="2" unlock_ahead_amt="100" unlock_cur="" unlock_amnt="" unlock_pos="1" upgrade_cur="1" upgrade_amnt="28665000000000" upgrade_fml="a*1.07" upgrade_plus="20" upgrade_person="" upgrade_cd="" desc="" icon="" anim="" label="" />
+  <comment>
+    <id>
+id
+</id>
+    <name>
+名称
+</name>
+    <class>
+所属类别
+</class>
+    <class_id>
+所属
+类别序号
+</class_id>
+    <coin_person>
+每人次收入
+基础值
+</coin_person>
+    <person>
+每秒参观数
+基础值
+</person>
+    <skill_cd>
+技能冷却
+</skill_cd>
+    <unlock_lv>
+解锁等级
+</unlock_lv>
+    <unlock_ahead_cur>
+提前解锁
+消耗货币
+</unlock_ahead_cur>
+    <unlock_ahead_amt>
+提前解锁
+消耗数值
+</unlock_ahead_amt>
+    <unlock_cur>
+解锁
+消耗货币
+</unlock_cur>
+    <unlock_amnt>
+解锁
+消耗数值
+</unlock_amnt>
+    <unlock_pos>
+解锁
+开启位置数
+</unlock_pos>
+    <upgrade_cur>
+升级
+消耗货币
+</upgrade_cur>
+    <upgrade_amnt>
+升级
+消耗基础值
+</upgrade_amnt>
+    <upgrade_fml>
+升级
+消耗公式
+</upgrade_fml>
+    <upgrade_plus>
+升级
+收入加成
+</upgrade_plus>
+    <upgrade_person>
+升级
+参观数加成
+</upgrade_person>
+    <upgrade_cd>
+升级
+冷却加成
+</upgrade_cd>
+    <desc>
+描述
+</desc>
+    <icon>
+图标
+</icon>
+    <anim>
+场景物件
+</anim>
+    <label>
+标签
+</label>
+  </comment>
+</data>

+ 3 - 3
Assets/Resources/Prefab/PrefabUI/Fa_SkillItem.prefab.meta → Assets/Resources/XML/Config/ability_config.xml.meta

@@ -1,8 +1,8 @@
 fileFormatVersion: 2
-guid: 8cc682d14bfe4704db78616f3bedfca1
-timeCreated: 1487144251
+guid: 32f961525833aec4bbbb7f2aaec0a968
+timeCreated: 1487574636
 licenseType: Pro
-NativeFormatImporter:
+TextScriptImporter:
   userData: 
   assetBundleName: 
   assetBundleVariant: 

+ 31 - 0
Assets/Resources/XML/Config/flower_config.xml

@@ -0,0 +1,31 @@
+<data>
+  <item id="1" name="粉色小花" desc="粉色小花的描述" icon="" anim="" />
+  <item id="2" name="紫色小花" desc="紫色小花的描述" icon="" anim="" />
+  <item id="3" name="波斯菊(粉)" desc="波斯菊(粉)的描述" icon="" anim="" />
+  <item id="4" name="康乃馨(红)" desc="康乃馨(红)的描述" icon="" anim="" />
+  <item id="5" name="铃兰(白)" desc="铃兰(白)的描述" icon="" anim="" />
+  <item id="6" name="马蹄莲(白)" desc="马蹄莲(白)的描述" icon="" anim="" />
+  <item id="7" name="蒲公英" desc="蒲公英的描述" icon="" anim="" />
+  <item id="8" name="牵牛花(蓝)" desc="牵牛花(蓝)的描述" icon="" anim="" />
+  <item id="9" name="三色堇(紫)" desc="三色堇(紫)的描述" icon="" anim="" />
+  <item id="10" name="三叶草(粉)" desc="三叶草(粉)的描述" icon="" anim="" />
+  <item id="11" name="向日葵" desc="向日葵的描述" icon="" anim="" />
+  <item id="12" name="郁金香(粉)" desc="郁金香(粉)的描述" icon="" anim="" />
+  <comment>
+    <id>
+id
+</id>
+    <name>
+名称
+</name>
+    <desc>
+描述
+</desc>
+    <icon>
+图标
+</icon>
+    <anim>
+场景物件
+</anim>
+  </comment>
+</data>

+ 8 - 0
Assets/Resources/XML/Config/flower_config.xml.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 8c9a971a3238b1e41bdc2ca883e20a4c
+timeCreated: 1487574638
+licenseType: Pro
+TextScriptImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 75 - 0
Assets/Resources/XML/Config/pack_config.xml

@@ -0,0 +1,75 @@
+<data>
+  <item id="1" name="金币大礼包" class="3" class_id="2" coin_person="" person="" skill_cd="" upgrade_plus="" coin="1000" diamond="" flower="" use_lv="" use_cur="2" use_amnt="200" desc="立即获得金币 %coin%" icon="" anim="" label="" />
+  <item id="2" name="天赐大礼包" class="3" class_id="3" coin_person="" person="" skill_cd="" upgrade_plus="" coin="5000" diamond="" flower="" use_lv="" use_cur="2" use_amnt="400" desc="立即获得金币 %coin%" icon="" anim="" label="" />
+  <item id="3" name="花神大礼包" class="3" class_id="4" coin_person="" person="" skill_cd="" upgrade_plus="" coin="15000" diamond="" flower="" use_lv="" use_cur="2" use_amnt="800" desc="立即获得金币 %coin%" icon="" anim="" label="" />
+  <item id="4" name="新手礼包" class="4" class_id="1" coin_person="" person="" skill_cd="" upgrade_plus="1.1" coin="" diamond="500" flower="10" use_lv="50,150" use_cur="3" use_amnt="6" desc="获得%flower%,%diamond%钻石&#xA;所有金币产出提升%upgrade_plus%,永久有效" icon="" anim="" label="" />
+  <item id="5" name="中级礼包" class="4" class_id="2" coin_person="" person="" skill_cd="" upgrade_plus="1.1" coin="" diamond="2000" flower="11" use_lv="" use_cur="3" use_amnt="30" desc="获得%flower%,%diamond%钻石&#xA;所有金币产出提升%upgrade_plus%,永久有效" icon="" anim="" label="" />
+  <item id="6" name="高级礼包" class="4" class_id="3" coin_person="" person="" skill_cd="" upgrade_plus="1.1" coin="" diamond="4000" flower="12" use_lv="" use_cur="3" use_amnt="68" desc="获得%flower%,%diamond%钻石&#xA;所有金币产出提升%upgrade_plus%,永久有效" icon="" anim="" label="" />
+  <item id="7" name="钻石100" class="4" class_id="4" coin_person="" person="" skill_cd="" upgrade_plus="" coin="" diamond="100" flower="" use_lv="" use_cur="3" use_amnt="6" desc="购买 %diamond%钻石" icon="" anim="" label="" />
+  <item id="8" name="钻石500 赠送50" class="4" class_id="5" coin_person="" person="" skill_cd="" upgrade_plus="" coin="" diamond="550" flower="" use_lv="" use_cur="3" use_amnt="30" desc="共计 %diamond%钻石" icon="" anim="" label="热卖" />
+  <item id="9" name="钻石2000 赠送500" class="4" class_id="6" coin_person="" person="" skill_cd="" upgrade_plus="" coin="" diamond="2500" flower="" use_lv="" use_cur="3" use_amnt="68" desc="共计 %diamond%钻石" icon="" anim="" label="超值" />
+  <item id="10" name="钻石6000 赠送600" class="4" class_id="7" coin_person="" person="" skill_cd="" upgrade_plus="" coin="" diamond="6600" flower="" use_lv="" use_cur="3" use_amnt="128" desc="共计 %diamond%钻石" icon="" anim="" label="" />
+  <item id="11" name="钻石10000 赠送2000" class="4" class_id="8" coin_person="" person="" skill_cd="" upgrade_plus="" coin="" diamond="12000" flower="" use_lv="" use_cur="3" use_amnt="328" desc="共计 %diamond%钻石" icon="" anim="" label="" />
+  <comment>
+    <id>
+id
+</id>
+    <name>
+名称
+</name>
+    <class>
+所属类别
+</class>
+    <class_id>
+所属
+类别序号
+</class_id>
+    <coin_person>
+每人次收入
+基础值
+</coin_person>
+    <person>
+每秒参观数
+基础值
+</person>
+    <skill_cd>
+技能冷却
+</skill_cd>
+    <upgrade_plus>
+升级
+收入加成
+</upgrade_plus>
+    <coin>
+获得金币
+</coin>
+    <diamond>
+获得钻石
+</diamond>
+    <flower>
+获得花朵
+</flower>
+    <use_lv>
+使用等级
+</use_lv>
+    <use_cur>
+使用
+消耗货币
+</use_cur>
+    <use_amnt>
+使用
+消耗数值
+</use_amnt>
+    <desc>
+描述
+</desc>
+    <icon>
+图标
+</icon>
+    <anim>
+场景物件
+</anim>
+    <label>
+标签
+</label>
+  </comment>
+</data>

+ 8 - 0
Assets/Resources/XML/Config/pack_config.xml.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 30eb6480196a45d4bb13ef7ce16a2e9e
+timeCreated: 1487574639
+licenseType: Pro
+TextScriptImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 118 - 0
Assets/Resources/XML/Config/skill_config.xml

@@ -0,0 +1,118 @@
+<data>
+  <item id="1" name="人潮涌动" class="1" class_id="2" coin_person="" person="0.1" coin_once="" diamond_once="" duration="300" cd="1800" unlock_lv="" unlock_ahead_cur="" unlock_ahead_amt="" unlock_cur="" unlock_amnt="" unlock_pos="" use__cur="" use_amnt="" upgrade_cur="1" upgrade_amnt="200" upgrade_fml="a" upgrade_plus="" upgrade_person="" upgrade_coin_once="" upgrade_duration="60" upgrade_cd="" desc="" icon="" anim="" label="" />
+  <item id="2" name="大亨光临" class="1" class_id="3" coin_person="" person="" coin_once="500" diamond_once="" duration="" cd="3600" unlock_lv="100" unlock_ahead_cur="2" unlock_ahead_amt="200" unlock_cur="" unlock_amnt="" unlock_pos="" use__cur="" use_amnt="" upgrade_cur="2" upgrade_amnt="300" upgrade_fml="a" upgrade_plus="" upgrade_person="" upgrade_coin_once="50" upgrade_duration="" upgrade_cd="" desc="" icon="" anim="" label="" />
+  <item id="3" name="花之祝福" class="1" class_id="4" coin_person="5" person="" coin_once="" diamond_once="" duration="300" cd="3600" unlock_lv="300" unlock_ahead_cur="2" unlock_ahead_amt="300" unlock_cur="" unlock_amnt="" unlock_pos="" use__cur="" use_amnt="" upgrade_cur="2" upgrade_amnt="300" upgrade_fml="a" upgrade_plus="" upgrade_person="" upgrade_coin_once="" upgrade_duration="60" upgrade_cd="" desc="" icon="" anim="" label="" />
+  <item id="4" name="繁花似锦" class="4" class_id="1" coin_person="" person="" coin_once="" diamond_once="" duration="900" cd="900" unlock_lv="100" unlock_ahead_cur="2" unlock_ahead_amt="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="" icon="" anim="" label="" />
+  <item id="5" name="免费获取金币" class="3" class_id="0" coin_person="" person="" coin_once="5" diamond_once="" duration="" cd="900" unlock_lv="" unlock_ahead_cur="" unlock_ahead_amt="" 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="" anim="" label="" />
+  <item id="6" name="免费获取钻石" class="4" class_id="0" coin_person="" person="" coin_once="" diamond_once="10" duration="" cd="900" unlock_lv="" unlock_ahead_cur="" unlock_ahead_amt="" 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="" anim="" label="" />
+  <comment>
+    <id>
+id
+</id>
+    <name>
+名称
+</name>
+    <class>
+所属类别
+</class>
+    <class_id>
+所属
+类别序号
+</class_id>
+    <coin_person>
+每人次收入
+基础值
+</coin_person>
+    <person>
+每秒参观数
+基础值
+</person>
+    <coin_once>
+一次获得金币
+</coin_once>
+    <diamond_once>
+一次获得钻石
+</diamond_once>
+    <duration>
+持续时间
+</duration>
+    <cd>
+冷却时间
+</cd>
+    <unlock_lv>
+解锁等级
+</unlock_lv>
+    <unlock_ahead_cur>
+提前解锁
+消耗货币
+</unlock_ahead_cur>
+    <unlock_ahead_amt>
+提前解锁
+消耗数值
+</unlock_ahead_amt>
+    <unlock_cur>
+解锁
+消耗货币
+</unlock_cur>
+    <unlock_amnt>
+解锁
+消耗数值
+</unlock_amnt>
+    <unlock_pos>
+解锁
+开启位置数
+</unlock_pos>
+    <use__cur>
+使用
+消耗货币
+</use__cur>
+    <use_amnt>
+使用
+消耗数值
+</use_amnt>
+    <upgrade_cur>
+升级
+消耗货币
+</upgrade_cur>
+    <upgrade_amnt>
+升级
+消耗基础值
+</upgrade_amnt>
+    <upgrade_fml>
+升级
+消耗公式
+</upgrade_fml>
+    <upgrade_plus>
+升级
+收入加成
+</upgrade_plus>
+    <upgrade_person>
+升级
+参观数加成
+</upgrade_person>
+    <upgrade_coin_once>
+升级
+一次获得金币
+</upgrade_coin_once>
+    <upgrade_duration>
+升级
+持续时间加成
+</upgrade_duration>
+    <upgrade_cd>
+升级
+冷却加成
+</upgrade_cd>
+    <desc>
+描述
+</desc>
+    <icon>
+图标
+</icon>
+    <anim>
+场景物件
+</anim>
+    <label>
+标签
+</label>
+  </comment>
+</data>

+ 8 - 0
Assets/Resources/XML/Config/skill_config.xml.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e2ad3c2808e87e24cb00385dd07a17a0
+timeCreated: 1487574640
+licenseType: Pro
+TextScriptImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 8
Assets/Resources/XML/Data.xml

@@ -7,20 +7,20 @@
       </Prefab>
     </Url>
 
+    <Text>
+      <A>
+        <A_Lab>您在离开期间一共获得了100金币</A_Lab>
+      </A>
+    </Text>
+
     <Color>
       <Message>255 0 0 0</Message>
     </Color>
 
     <Value>
-      <Garden>
+      <Ability>
         <SlideSpeed>0.25</SlideSpeed>
-      </Garden>
+      </Ability>
     </Value>
 
-    <Chinese>
-      <A>
-        <A_Lab>您在离开期间一共获得了100金币</A_Lab>
-      </A>
-    </Chinese>
-    
   </Data>

+ 9 - 0
Assets/Resources/XML/lan.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: f2349382e91d4b048b6141207b9e2a00
+folderAsset: yes
+timeCreated: 1487576405
+licenseType: Pro
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 6 - 0
Assets/Resources/XML/lan/ChineseSimplified.xml

@@ -0,0 +1,6 @@
+<lan>
+  <Public>
+    <connect_server_exception desc=""><![CDATA[服务器异常,连接服务器失败!]]></connect_server_exception>
+    <current_version desc=""><![CDATA[当前版本:{0}]]></current_version>
+  </Public>
+</lan>

+ 8 - 0
Assets/Resources/XML/lan/ChineseSimplified.xml.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: bb6fbcd0fca396443b2820f0a8dbbba6
+timeCreated: 1487576407
+licenseType: Pro
+TextScriptImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 6 - 0
Assets/Resources/XML/lan/English.xml

@@ -0,0 +1,6 @@
+<lan>
+  <Public>
+    <connect_server_exception desc=""><![CDATA[connect server exception]]></connect_server_exception>
+    <current_version desc=""><![CDATA[Current version {0}]]></current_version>
+  </Public>
+</lan>

+ 8 - 0
Assets/Resources/XML/lan/English.xml.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: d8a0e07981e41914aa4d318c8c28ff6c
+timeCreated: 1487576405
+licenseType: Pro
+TextScriptImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

二进制
Assets/Scene1.unity


+ 5 - 0
Assets/Script/Editor/EditorAuxiliary.cs

@@ -24,6 +24,11 @@ public class EditorAuxiliary : Editor
     {
         base.OnInspectorGUI();
 
+        if (GUILayout.Button("ChangeFont"))
+        {
+            Auxiliary.ChangeFont(Script.TempGoList, Script.TempFont);
+        }
+
         if (GUILayout.Button("PrintBounds"))
         {
             Auxiliary.PrintBounds(Script.TempGo);

+ 403 - 0
Assets/Script/Editor/EditorConfigExporter.cs

@@ -0,0 +1,403 @@
+using UnityEditor;
+using UnityEngine;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using Excel;
+using System.Data;
+
+using System.Xml;
+
+public class EditorConfigExporter : EditorWindow
+{
+    [MenuItem("DashGame/Design Tools/Export Config")]
+    public static void AddWindow()
+    {
+        Rect wr = new Rect(0, 0, 350, 220);
+        EditorConfigExporter window = (EditorConfigExporter)EditorWindow.GetWindowWithRect(typeof(EditorConfigExporter), wr, false, "Export Config");
+        window.Show();
+
+    }
+
+    public List<string> nameArray = new List<string>();
+
+    private string defaultPath;
+    private bool shouldDelete = true, ignoreSameVersion = true;
+    private bool isSuccess;
+    private string text;
+    private List<string> idArr;
+    private Dictionary<string, string> md5Dict;
+
+    void Awake()
+    {
+        defaultPath = Application.dataPath + @"/XlsxSource";
+        if (!Directory.Exists(defaultPath))
+            Directory.CreateDirectory(defaultPath);
+        GetObjectNameToArray<string>(defaultPath, "xlsx");
+    }
+
+    void OnGUI()
+    {
+        EditorGUI.LabelField(new Rect(90, 50, 200, 16), new GUIContent("导出所有配置文件到xml目录"));
+
+        shouldDelete = EditorGUI.Toggle(new Rect(90, 80, 200, 16), new GUIContent("覆盖已有文件"), shouldDelete);
+
+        ignoreSameVersion = EditorGUI.Toggle(new Rect(90, 100, 200, 16), new GUIContent("忽略相同版本"), ignoreSameVersion);
+
+        EditorGUI.LabelField(new Rect(2, 200, 350, 16), new GUIContent("Chongqing DashGame Tech. Co.,Ltd, gsgundam, v0.1.0"));
+
+        if (GUI.Button(new Rect(50, 135, 250, 40), "立即导出"))
+            CreateAllXml();
+
+    }
+
+    /// <summary>
+    /// Return all files' name in target path in Assets//
+    /// </summary>
+    /// <returns>File name in array</returns>
+    /// <param name="path">Assets sublevel path</param>
+    /// <param name="pattern">File type filter</param>
+    /// <typeparam name="T">Class name</typeparam>
+    void GetObjectNameToArray<T>(string path, string pattern, string subDirectory = "")
+    {
+        try
+        {
+            //return file name by array in target folder & subfolder, it can be null
+            string[] files = Directory.GetFiles(path);
+
+            for (int i = 0; i < files.Length; i++)
+            {
+                string p = files[i];
+
+                //file
+                int index = p.LastIndexOf("\\");
+                //string folder = p.Substring(0, index + 1); //todo 取消注释
+                string fileName = p.Substring(index + 1);
+
+                //if directoryEntries is not null, tempPaths cannot be null after splited
+                if (fileName.EndsWith(".meta"))
+                    continue;
+
+                string[] pathSplit = StringExtention.SplitWithString(fileName, ".");
+
+                if (pathSplit.Length > 1)
+                {
+                    nameArray.Add(subDirectory + "\\" + pathSplit[0]);
+                }
+            }
+
+            //recursion
+            string[] folders = Directory.GetDirectories(path);
+            for (int i = 0; i < folders.Length; i++)
+            {
+                string p = folders[i];
+                GetObjectNameToArray<T>(p, pattern, p.Substring(defaultPath.Length));
+            }
+        }
+        catch (System.IO.DirectoryNotFoundException)
+        {
+            Debug.Log("The path encapsulated in the " + path + "Directory object does not exist.");
+        }
+    }
+
+    /// <summary>
+    /// custom split string function
+    /// </summary>
+    private class StringExtention
+    {
+
+        public static string[] SplitWithString(string sourceString, string splitString)
+        {
+            //string tempSourceString = sourceString; //todo 取消注释
+            List<string> arrayList = new List<string>();
+            string s = string.Empty;
+            while (sourceString.IndexOf(splitString) > -1)  //split
+            {
+                s = sourceString.Substring(0, sourceString.IndexOf(splitString));
+                sourceString = sourceString.Substring(sourceString.IndexOf(splitString) + splitString.Length);
+                arrayList.Add(s);
+            }
+            arrayList.Add(sourceString);
+            return arrayList.ToArray();
+        }
+    }
+
+    private void CreateAllXml()
+    {
+        foreach (string str in nameArray)
+        {
+            Debug.Log(str);
+            if (str.Contains("xlsx_md5") || str.Contains("language"))
+                continue;
+            if (ignoreSameVersion)
+            {
+                GetMd5Xml(str);
+                if (!CheckVersion(str))
+                {
+                    CreateXml(str);
+                }
+            }
+            else
+            {
+                CreateXml(str);
+            }
+        }
+
+        if (isSuccess)
+        {
+            ShowNotification(new GUIContent( "已成功导出!"));
+            DirectoryInfo di = new DirectoryInfo(defaultPath);
+            DirectoryInfo[] diArr = di.GetDirectories();
+            for (int i = 0; i < diArr.Length; i++)
+                CreateMd5XML(diArr[i].ToString() + "/");
+            AssetDatabase.Refresh();
+        }
+        else
+            ShowNotification(new GUIContent("文件有错误!"));
+    }
+
+    private void CreateXml(string fileName)
+    {
+        idArr = new List<string>();
+
+//        string filepath = Application.dataPath + @"/Resources/XML/Config" + fileName + ".xml";
+		string filepath = Application.dataPath + @"/Resources/XML/Config" + fileName + ".xml";
+        text = "";
+
+        filepath = filepath.Replace("\\", "/");
+        string[] pathArr = filepath.Split('/');
+        string tempPath = "";
+        for(int i = 0; i < pathArr.Length; i++)
+        {
+            tempPath += pathArr[i] + "/";
+            if (i > 1 && i < pathArr.Length - 1)
+            {
+                if (!Directory.Exists(tempPath))
+                {
+                    Directory.CreateDirectory(tempPath);
+                }
+            }
+        }
+
+        if ((!File.Exists(filepath) && !shouldDelete) || shouldDelete)
+        {
+            List<string> labels = new List<string>(); //comments = new List<string>(); //todo 取消注释
+
+            XmlDocument xmlDoc = new XmlDocument();
+
+            try
+            {
+                FileStream stream = File.Open(Application.dataPath + @"/XlsxSource" + fileName + ".xlsx", FileMode.Open, FileAccess.Read);
+                IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
+
+                text += "\nexcelReader.ResultsCount is" + excelReader.ResultsCount + "\n";
+
+                text += "start excelReader. \n";
+
+                DataSet result = excelReader.AsDataSet();
+
+                text += "get result successful? result[" + result + "]";
+
+                text += "result columns count is " + result.Tables[0].Columns.Count;
+
+                int columns = result.Tables[0].Columns.Count;
+                int rows = result.Tables[0].Rows.Count;
+
+                //start create xml
+                XmlElement root = xmlDoc.CreateElement("data");
+                XmlElement comment = xmlDoc.CreateElement("comment");
+                for (int i = 0; i < rows; i++)
+                {
+                    XmlElement item = xmlDoc.CreateElement("item");
+                    if (i == 0)
+                    {
+                        continue;
+                    }
+
+                    for (int j = 0; j < columns; j++)
+                    {
+                        string nvalue = result.Tables[0].Rows[i][j].ToString();
+
+                        if (i == 1)
+                        {
+                            if (nvalue != null && nvalue != "")
+                                labels.Add(nvalue);
+                        }
+                        else if (i == 2)
+                        {
+                            if (j < labels.Count)
+                            {
+                                XmlElement commentItem = xmlDoc.CreateElement(labels[j]);
+                                commentItem.InnerText = "\n" + nvalue + "\n";
+                                comment.AppendChild(commentItem);
+                            }
+                        }
+                        else if (j < labels.Count)
+                        {
+                            if (fileName.Contains("shop_config"))
+                                nvalue = nvalue.Replace("\n", "");
+                            item.SetAttribute(labels[j], nvalue);
+
+                            if(j == 0 && !StringUtil.Empty(nvalue))
+                            {
+                                //check duplicate
+                                CheckDuplicate(fileName, nvalue);
+                                idArr.Add(nvalue);
+                            }
+
+                            //Debug.Log("labels[j] is " + labels[j] + ", nvalue is " + nvalue);
+                        }
+                        //Debug.Log(nvalue);
+                    }
+
+                    if (i > 2 && item.GetAttribute("id") != "")
+                    {
+                        root.AppendChild(item);
+                    }
+
+                }
+
+                root.AppendChild(comment);
+                xmlDoc.AppendChild(root);
+				xmlDoc.Save(filepath);
+				AssetDatabase.Refresh(ImportAssetOptions.ForceUpdate);
+//				AssetDatabase.ImportAsset(@"Assets/Resources/XML/Config" + fileName + ".xml", ImportAssetOptions.ForceUpdate);
+                //Debug.Log(fileName + ".xml is saved to " + filepath + ", count is " + idArr.Count);
+
+                isSuccess = true;
+            }
+            catch (Exception e)
+            {
+                text += "Exception " + e.Message;
+                Debug.Log("Exception " + e.Message);
+            }
+        }
+    }
+
+    private void CheckDuplicate(string fileName, string id)
+    {
+        if (idArr.Count < 1)
+            return;
+
+        for (int i = 0; i < idArr.Count; i++)
+        {
+            if (idArr[i] == id)
+                Debug.LogError(id + " in " + fileName + " is a duplicate id.");
+        }
+    }
+
+    private void HideNotification()
+    {
+        this.RemoveNotification();
+    }
+
+    private void CreateMd5XML(string sourcePath)
+    {
+        DirectoryInfo directoryInfo = new DirectoryInfo(sourcePath);
+        List<string> pathList = DGFileUtil.GetAllFiles(directoryInfo, ".meta");
+        XmlDocument xml = CreateMd5XmlDocument(pathList, sourcePath, null, null);
+        string xmlSavePath = sourcePath + "xlsx_md5.xml";
+        xml.Save(xmlSavePath);
+        Debug.Log("Create xlsx xml : " + xmlSavePath);
+
+        AssetDatabase.Refresh(ImportAssetOptions.ForceUpdate);
+    }
+
+
+    private XmlDocument CreateMd5XmlDocument(List<string> pathList, string pathRoot, List<string> exceptList, string exceptRoot)
+    {
+        XmlDocument xml = new XmlDocument();
+
+        XmlElement root = xml.CreateElement("xlsx");
+        xml.AppendChild(root);
+
+        for (int i = 0; i < pathList.Count; i++)
+        {
+            string assetPath = pathList[i];
+            string md5 = MD5Util.GetFileHash(assetPath);
+            string p = assetPath.Substring(pathRoot.Length);
+
+            pathList[i] = p;
+
+            XmlElement e = xml.CreateElement("a");
+            XmlAttribute attr = xml.CreateAttribute("p");
+            attr.Value = p;
+            e.Attributes.Append(attr);
+
+            attr = xml.CreateAttribute("m");
+            attr.Value = md5;
+            e.Attributes.Append(attr);
+
+            root.AppendChild(e);
+        }
+        return xml;
+    }
+
+    private bool CheckVersion(string fileName)
+    {
+        if (md5Dict == null || md5Dict.Count < 1)
+            return false;
+        else
+        {
+            string[] pathArr = StringExtention.SplitWithString(fileName, "\\");
+            if (pathArr.Length < 3)
+                return false;
+            string str = pathArr[2] + ".xlsx";
+            string md5 = MD5Util.GetFileHash(defaultPath + fileName + ".xlsx");
+            if (md5Dict.ContainsKey(str) && md5Dict[str] == md5)
+            {
+                Debug.Log(pathArr[2] + ".xlsx" + " has same version, ignored");
+                return true;
+            }
+            else
+            {
+                if(md5Dict.ContainsKey(str))
+                    Debug.Log(fileName + ": [xml]" + md5Dict[str] + ", [xlsx]" + md5);
+                else
+                    Debug.Log(fileName + "is new xlsx file, [xlsx]" + md5);
+            }
+
+            return false;
+        }
+    }
+
+    private void GetMd5Xml(string fileName)
+    {
+        string[] pathArr = StringExtention.SplitWithString(fileName, "\\");
+        string parent = pathArr[1];
+        string xmlPath = defaultPath + "/" + parent + "/xlsx_md5.xml";
+        if (!File.Exists(xmlPath))
+        {
+            return;
+        }
+
+        StreamReader sr = File.OpenText(xmlPath);
+        string data = sr.ReadToEnd();
+        sr.Close();
+        sr.Dispose();
+
+        XmlDocument xml = new XmlDocument();
+        xml.LoadXml(data);
+        md5Dict = new Dictionary<string, string>();
+        XmlNode mapNode = xml.SelectSingleNode("xlsx");
+        XmlNodeList nodeList = mapNode.SelectNodes("a");
+        for (int i = 0; i < nodeList.Count; i++)
+        {
+            XmlNode node = nodeList[i];
+            string path = node.Attributes["p"].Value;
+            string md5 = node.Attributes["m"].Value;
+            md5Dict.Add(path, md5);
+        }
+    }
+
+    void OnInspectorUpdate()
+    {
+        this.Repaint();
+    }
+
+    void OnDestory()
+    {
+        EditorUtility.UnloadUnusedAssetsImmediate();
+    }
+
+}

+ 12 - 0
Assets/Script/Editor/EditorConfigExporter.cs.meta

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

+ 435 - 0
Assets/Script/Editor/EditorLanguageExport.cs

@@ -0,0 +1,435 @@
+using UnityEditor;
+using UnityEngine;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using Excel;
+using System.Data;
+
+using System.Xml;
+using System.Threading;
+
+public class EditorLanguageExport : EditorWindow
+{
+    [MenuItem("DashGame/Design Tools/Export Language")]
+    public static void AddWindow()
+    {
+        EditorLanguageExport window = (EditorLanguageExport)EditorWindow.GetWindow(typeof(EditorLanguageExport), false, "Export Language");
+        window.Show();
+
+    }
+
+    public List<string> nameArray = new List<string>();
+
+    private string defaultPath;
+    private bool shouldDelete = true;
+    private bool isSuccess;
+    private string text;
+    private Dictionary<string, XmlNode> parentNodeDict;
+
+	private string[] avaliableLan = new string[] { "English", "ChineseSimplified", "ChineseTraditional"};
+		
+
+    void Awake()
+    {
+		defaultPath = Application.dataPath + @"/XlsxSource/language_config.xlsx";
+    }
+
+    void OnGUI()
+    {
+        GUILayout.Label(new GUIContent("导出文件到xml目录"));
+
+        shouldDelete = GUILayout.Toggle(shouldDelete, new GUIContent("覆盖已有文件"));
+
+        if (GUILayout.Button("立即导出", GUILayout.Height(30)))
+            CreateAllXml();
+    }
+
+    /// <summary>
+    /// custom split string function
+    /// </summary>
+    private class StringExtention
+    {
+
+        public static string[] SplitWithString(string sourceString, string splitString)
+        {
+           // string tempSourceString = sourceString;
+            List<string> arrayList = new List<string>();
+            string s = string.Empty;
+            while (sourceString.IndexOf(splitString) > -1)  //split
+            {
+                s = sourceString.Substring(0, sourceString.IndexOf(splitString));
+                sourceString = sourceString.Substring(sourceString.IndexOf(splitString) + splitString.Length);
+                arrayList.Add(s);
+            }
+            arrayList.Add(sourceString);
+            return arrayList.ToArray();
+        }
+    }
+
+    private void CreateAllXml()
+    {
+//        foreach (string str in nameArray)
+//        {
+//            if (!str.Contains("language"))
+//                continue;
+//
+//            CreateXml(str);
+//        }
+
+		foreach( string s in avaliableLan) {
+			CreateXml(s);
+		}
+
+        if (isSuccess)
+        {
+            ShowNotification(new GUIContent( "已成功导出!"));
+            //DirectoryInfo di = new DirectoryInfo(defaultPath);
+            //DirectoryInfo[] diArr = di.GetDirectories();
+            isSuccess = false;
+            AssetDatabase.Refresh();
+        }
+        else
+            ShowNotification(new GUIContent("文件有错误!"));
+    }
+
+	private void CreateXml(string lan)
+    {
+        parentNodeDict = new Dictionary<string, XmlNode>();
+
+        string filepath = Application.dataPath + @"/Resources/xml/lan/" + lan + ".xml";
+	    text = "";
+
+        filepath = filepath.Replace("\\", "/");
+        string[] pathArr = filepath.Split('/');
+        string tempPath = "";
+        for(int i = 0; i < pathArr.Length; i++)
+        {
+            tempPath += pathArr[i] + "/";
+            if (i > 1 && i < pathArr.Length - 1)
+            {
+                if (!Directory.Exists(tempPath))
+                {
+                    Directory.CreateDirectory(tempPath);
+                }
+            }
+        }
+
+        if ((!File.Exists(filepath) && !shouldDelete) || shouldDelete)
+        {
+            XmlDocument xmlDoc = new XmlDocument();
+
+            try
+            {
+				FileStream stream = File.Open(defaultPath, FileMode.Open, FileAccess.Read);
+                IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
+
+                text += "\nexcelReader.ResultsCount is" + excelReader.ResultsCount + "\n";
+
+                text += "start excelReader. \n";
+
+                DataSet result = excelReader.AsDataSet();
+
+                text += "get result successful? result[" + result + "]";
+
+                text += "result columns count is " + result.Tables[0].Columns.Count;
+
+                int columns = result.Tables[0].Columns.Count;
+                int rows = result.Tables[0].Rows.Count;
+
+                //start create xml
+                XmlElement root = xmlDoc.CreateElement("lan");
+                XmlNode currentChildNode = null;
+                string parentNodeName = "";
+				int parentidex = -1;
+				int nameindex = -1;
+				int contentindex = -1;
+				int descindex = -1;
+
+				// get column index
+				for (int j = 0; j < columns; ++j) {
+					string nvalue = result.Tables[0].Rows[1][j].ToString();
+					if (string.Equals(nvalue, "parent")) {
+						parentidex = j;
+					} else if (string.Equals(nvalue, "desc")) {
+						descindex = j;
+					} else if (string.Equals(nvalue, "name")) {
+						nameindex = j;
+					} else if (string.Equals(nvalue, lan)) {
+						contentindex = j;
+					}
+				}
+
+				if (contentindex < 0) {
+					throw new Exception("language " + lan + " is not exist in the excel");
+				}
+
+                for (int i = 3; i < rows; i++)
+                {
+   					// parent
+					string nvalue = result.Tables[0].Rows[i][parentidex].ToString();
+					if (!parentNodeDict.ContainsKey(nvalue))
+					{
+						XmlNode node = xmlDoc.CreateElement(nvalue);
+						parentNodeDict.Add(nvalue, node);
+					}
+					parentNodeName = nvalue;
+
+					// name
+					nvalue = result.Tables[0].Rows[i][nameindex].ToString();
+					currentChildNode = xmlDoc.CreateElement(nvalue);
+					parentNodeDict[parentNodeName].AppendChild(currentChildNode);
+
+					// content
+					nvalue = result.Tables[0].Rows[i][contentindex].ToString();
+					XmlCDataSection cData = xmlDoc.CreateCDataSection(nvalue);
+					currentChildNode.AppendChild(cData);
+
+					// desc
+					nvalue = result.Tables[0].Rows[i][descindex].ToString();
+					XmlAttribute comment = xmlDoc.CreateAttribute("desc");
+					comment.Value = nvalue;
+					currentChildNode.Attributes.Append(comment);
+
+//                    for (int j = 0; j < columns; j++)
+//                    {
+//                        string nvalue = result.Tables[0].Rows[i][j].ToString();
+//
+//                            switch (j)
+//                            {
+//                                case 0:
+//                                    if (!parentNodeDict.ContainsKey(nvalue))
+//                                    {
+//                                        XmlNode node = xmlDoc.CreateElement(nvalue);
+//                                        parentNodeDict.Add(nvalue, node);
+//                                    }
+//                                    parentNodeName = nvalue;
+//                                break;
+//                                case 1:
+//                                    currentChildNode = xmlDoc.CreateElement(nvalue);
+//                                    parentNodeDict[parentNodeName].AppendChild(currentChildNode);
+//                                break;
+//                                case 2:
+//                                    XmlCDataSection cData = xmlDoc.CreateCDataSection(nvalue);
+//                                    currentChildNode.AppendChild(cData);
+//                                    break;
+//                                case 3:
+//                                    XmlAttribute comment = xmlDoc.CreateAttribute("desc");
+//                                    comment.Value = nvalue;
+//                                    currentChildNode.Attributes.Append(comment);
+//                                    break;
+//                            }
+//
+//                            //Debug.Log("labels[j] is " + labels[j] + ", nvalue is " + nvalue);
+//                        //Debug.Log(nvalue);
+//                    }
+
+                }
+
+                foreach(KeyValuePair<string, XmlNode> keyValue in parentNodeDict)
+                    root.AppendChild(keyValue.Value);
+
+                xmlDoc.AppendChild(root);
+				xmlDoc.Save(filepath);
+				AssetDatabase.Refresh(ImportAssetOptions.ForceUpdate);
+//				AssetDatabase.ImportAsset(@"Assets/Resources/XML/Config" + fileName + ".xml", ImportAssetOptions.ForceUpdate);
+                //Debug.Log(fileName + ".xml is saved to " + filepath + ", count is " + idArr.Count);
+
+                isSuccess = true;
+            }
+            catch (Exception e)
+            {
+                text += "Exception " + e.Message;
+                Debug.Log("Exception " + e.Message);
+            }
+        }
+    }
+
+    private void CreateAllPhp()
+    {
+        foreach (string str in nameArray)
+        {
+            if (!str.Contains("language"))
+                continue;
+
+            CreatePhp(str);
+        }
+
+        if (isSuccess)
+        {
+            ShowNotification(new GUIContent("已成功导出!"));
+            //DirectoryInfo di = new DirectoryInfo(defaultPath);
+            //DirectoryInfo[] diArr = di.GetDirectories();
+            isSuccess = false;
+        }
+        else
+            ShowNotification(new GUIContent("文件有错误!"));
+    }
+
+    private void CreatePhp(string fileName)
+    {
+        string realName = StringExtention.SplitWithString(fileName, "\\")[1];
+        string filepath = defaultPath + "/" + realName + ".php";
+        text = "";
+
+        filepath = filepath.Replace("\\", "/");
+        string[] pathArr = filepath.Split('/');
+        string tempPath = "";
+        for (int i = 0; i < pathArr.Length; i++)
+        {
+            tempPath += pathArr[i] + "/";
+            if (i > 1 && i < pathArr.Length - 1)
+            {
+                if (!Directory.Exists(tempPath))
+                {
+                    Directory.CreateDirectory(tempPath);
+                }
+            }
+        }
+
+        if ((!File.Exists(filepath) && !shouldDelete) || shouldDelete)
+        {
+            try
+            {
+                string fullText = "<?php\n";
+
+                FileStream stream = File.Open(Application.dataPath + @"/XlsxSource" + fileName + ".xlsx", FileMode.Open, FileAccess.Read);
+                IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
+
+                text += "\nexcelReader.ResultsCount is" + excelReader.ResultsCount + "\n";
+
+                text += "start excelReader. \n";
+
+                DataSet result = excelReader.AsDataSet();
+
+                text += "get result successful? result[" + result + "]";
+
+                text += "result columns count is " + result.Tables[0].Columns.Count;
+
+                int columns = result.Tables[0].Columns.Count;
+                int rows = result.Tables[0].Rows.Count;
+
+                //start create xml
+                for (int i = 0; i < rows; i++)
+                {
+                    if (i == 0)
+                    {
+                        continue;
+                    }
+
+                    for (int j = 0; j < columns; j++)
+                    {
+                        string nvalue = result.Tables[0].Rows[i][j].ToString();
+
+                        if (i > 2)
+                        {
+                            switch (j)
+                            {
+                                case 0:
+                                    fullText += "$LANG['" + nvalue + "|";
+                                    break;
+                                case 1:
+                                    fullText += nvalue + "'] = '";
+                                    break;
+                                case 2:
+                                    nvalue = nvalue.Replace("\'", "\\\'");
+                                    fullText += nvalue + "\';\n";
+                                    break;
+                            }
+
+                        }
+                    }
+
+                }
+
+                fullText += "?>";
+                StreamWriter sw = new StreamWriter(filepath);
+                string w = fullText;
+                sw.Write(w);
+                sw.Close();
+                AssetDatabase.Refresh(ImportAssetOptions.ForceUpdate);
+
+                isSuccess = true;
+            }
+            catch (Exception e)
+            {
+                text += "Exception " + e.Message;
+                Debug.Log("Exception " + e.Message);
+            }
+        }
+    }
+
+    private void HideNotification()
+    {
+        this.RemoveNotification();
+    }
+
+    void OnInspectorUpdate()
+    {
+        this.Repaint();
+    }
+
+    void OnDestory()
+    {
+        EditorUtility.UnloadUnusedAssetsImmediate();
+    }
+
+}
+
+public class LanguageUploadData
+{
+    public string sourcePath;
+    public string targetUrl;
+
+    public string GetCmd()
+    {
+        string command = "@echo off\r\n" +
+            "echo open " + targetUrl + ">ftp.up\r\n" +
+            "echo gaoyuqin>>ftp.up\r\n" +
+            "echo Gaoyuqin123654>>ftp.up\r\n" +
+            //"echo Cd .\\User >>ftp.up\r\n" +
+            "echo binary>>ftp.up\r\n" +
+            "echo lcd \"" + sourcePath + "\">>ftp.up\r\n" +
+            "echo prompt>>ftp.up\r\n" +
+            "echo mkdir qwsk/lang/>>ftp.up\r\n" +
+            "echo cd qwsk/lang/>>ftp.up\r\n" +
+            "echo mput *.php>>ftp.up\r\n" +
+            "echo bye>>ftp.up\r\n" +
+            "FTP -s:ftp.up\r\n" +
+            "del ftp.up /q\r\n" +
+            "pause\r\n";
+
+        return command;
+    }
+}
+
+public class LanguageUploadFiles
+{
+    private Dictionary<string, LanguageUploadData> data;
+
+    private Thread s;
+    public LanguageUploadFiles(Dictionary<string, LanguageUploadData> data)
+    {
+        this.data = data;
+        s = new Thread(Run);
+        s.Start();
+    }
+
+    private void Run()
+    {
+        foreach (string key in data.Keys)
+        {
+            LanguageUploadData uploadData = data[key];
+            RunCmd(key, uploadData.GetCmd());
+            Debug.Log("【RunCmd】" + uploadData.sourcePath + " upload to----  【  " + uploadData.targetUrl + " 】");
+        }
+        s.Abort();
+    }
+
+    private void RunCmd(string key, string command)
+    {
+        Debug.Log(command);
+        File.WriteAllText(key + "-upload-language.bat", command, System.Text.Encoding.GetEncoding(936));
+        System.Diagnostics.Process.Start(key + "-upload-language.bat");
+    }
+}

+ 12 - 0
Assets/Script/Editor/EditorLanguageExport.cs.meta

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

+ 1 - 0
Assets/Script/Manage/Initializer.cs

@@ -15,6 +15,7 @@ public class Initializer : MonoBehaviour
         gameObject.AddComponent<ManaMiniGame>();
 
         gameObject.AddComponent<ManaLog>();
+        gameObject.AddComponent<ManaData>();
         gameObject.AddComponent<ManaMessage>();
 
         ManaReso.Regist();

+ 2 - 6
Assets/Script/Manage/ManaGarden.cs

@@ -12,8 +12,6 @@ public class ManaGarden : MonoBehaviour
 {
     #region 变量
 
-    public static ManaGarden Ins;
-
     public static Flower SelFlower;
     public static Transform SelFlowerTra;
     public static List<Sprite> FlowerIconList;
@@ -25,8 +23,6 @@ public class ManaGarden : MonoBehaviour
 
     private void Awake()
     {
-        Ins = this;
-
         ManaReso.Get("Garden", Folder.Object, transform).AddComponent<Garden>();
     }
 
@@ -112,11 +108,11 @@ public class ManaGarden : MonoBehaviour
         }
         else if (spriteName == "Flower10")
         {
-            ManaReso.SetText("H_Lab", "无名花1");
+            ManaReso.SetText("H_Lab", "粉色小花");
         }
         else if (spriteName == "Flower11")
         {
-            ManaReso.SetText("H_Lab", "无名花2");
+            ManaReso.SetText("H_Lab", "紫色小花");
         }
         else
         {

+ 1 - 15
Assets/Script/Manage/ManaLog.cs

@@ -12,32 +12,18 @@ public class ManaLog : MonoBehaviour
 {
     #region 变量
 
-    private static int LogCount;
     private static Text Lab;
 
-    public static ManaLog Ins;
-
     #endregion
 
     private void Awake()
     {
-        Ins = this;
-
         Lab = ManaReso.Get<Text>("E_Lab");
-        LogCount = 0;
     }
 
 
     public static void Log(string message)
     {
-        if (LogCount >= 10)
-        {
-            Lab.text.Split('\n')[0] = message;
-        }
-        else
-        {
-            Lab.text = Lab.text.Insert(0, message + '\n');
-            LogCount++;
-        }
+        Lab.text = Lab.text + '\n' + message;
     }
 }

+ 0 - 4
Assets/Script/Manage/ManaMessage.cs

@@ -10,14 +10,10 @@ public class ManaMessage : MonoBehaviour
     private static float StayTimer;
     private static Text MessageLab;
 
-    public static ManaMessage Ins;
-
     #endregion
 
     private void Awake()
     {
-        Ins = this;
-
         MessageLab = ManaReso.Get<Text>("Message");
     }
 

+ 0 - 9
Assets/Script/Manage/ManaMiniGame.cs

@@ -106,14 +106,10 @@ public class ManaMiniGame : MonoBehaviour
 
     #endregion
 
-    public static ManaMiniGame Ins;
-
     #endregion
 
     private void Awake()
     {
-        Ins = this;
-
         #region MyRegion
 
         TimerBk2 = ManaReso.Get<Image>("D_TimerBk2");
@@ -257,11 +253,6 @@ public class ManaMiniGame : MonoBehaviour
 
     public static void GameBeginA()
     {
-        if (!ManaReso.Get("D_MiniGameA").IsForwardFinish(TweenType.Position))
-        {
-            return;
-        }
-
         ManaReso.Get("D_Rip").SetActive(true);
         ManaReso.Get("D_Water").SetActive(true);
         ManaReso.Get("D_Fertilize").SetActive(true);

+ 3 - 3
Assets/Script/Manage/ManaPlayer.cs

@@ -2,6 +2,8 @@
 using UnityEngine.UI;
 
 using System;
+using System.Xml;
+using System.Text;
 using System.Collections;
 using System.Collections.Generic;
 
@@ -9,14 +11,12 @@ public class ManaPlayer : MonoBehaviour
 {
     #region 变量
 
-    public static ManaPlayer Ins;
+
 
     #endregion
 
     private void Awake()
     {
-        Ins = this;
-        
         ManaReso.Get("Player", Folder.Object, transform).AddComponent<Player>();
     }
 }

+ 74 - 219
Assets/Script/Manage/ManaReso.cs

@@ -43,8 +43,6 @@ public class ManaReso : MonoBehaviour
 {
     #region 变量
 
-    public static ManaReso Ins;
-
     private static Dictionary<string, Transform> TraDic;
     private static Dictionary<ObjType, GameObject> PrefabDic;
     private static Dictionary<ObjType, List<GameObject>> ObjectPool;
@@ -53,8 +51,6 @@ public class ManaReso : MonoBehaviour
 
     private void Awake()
     {
-        Ins = this;
-
         TraDic = new Dictionary<string, Transform>();
         PrefabDic = new Dictionary<ObjType, GameObject>();
         ObjectPool = new Dictionary<ObjType, List<GameObject>>();
@@ -284,7 +280,7 @@ public class ManaReso : MonoBehaviour
             {
                 SetActive("C_Main", false);
                 SetActive("F_Manage", true);
-                
+
                 Get("F_Manage").Forward(TweenType.Position);
             }
         );
@@ -367,11 +363,6 @@ public class ManaReso : MonoBehaviour
             "D_Quit",
             () =>
             {
-                if (!Get("D_MiniGameA").IsForwardFinish(TweenType.Position))
-                {
-                    return;
-                }
-
                 SetText("Da_Tit", "退出游戏");
                 SetText("Da_Lab", "打理完花园可能获得如下奖励,确定要退出?");
                 SetActive("Da_Quit", true);
@@ -548,7 +539,7 @@ public class ManaReso : MonoBehaviour
 
         #region F_Manage
 
-        Get("F_Manage").CreateTween(Get("F_PosTra1").position, 0.5f, false, true, TweenCurve.Linear);
+        Get("F_Manage").CreateTween(Get("F_PosTra").position, 0.5f, false, true, TweenCurve.Linear);
 
         #endregion
 
@@ -570,6 +561,9 @@ public class ManaReso : MonoBehaviour
 
         #endregion
 
+
+        #region Skill
+
         #region F_SkillA/B/C/D
 
         SetButtonEvent
@@ -630,220 +624,43 @@ public class ManaReso : MonoBehaviour
 
         #endregion
 
+        #region Fa Garden
 
-        #region Fa
-
-        #region Fa_Grid
-
-        GetGridItem("Fa_SkillItem", "Fa_Grid", " (0)");
-        GetGridItem("Fa_SkillItem", "Fa_Grid", " (1)");
-        GetGridItem("Fa_SkillItem", "Fa_Grid", " (2)");
-        GetGridItem("Fa_SkillItem", "Fa_Grid", " (3)");
-
-        SetButtonEvent
-        (
-            "Fa_SkillBtn (0)",
-            () =>
-            {
-                SetText("Fe_Lab1", "人潮涌动 升级");
-                SetText("Fe_Lab2", "持续5分钟\n每分钟增加6人参观");
-                SetText("Fe_Lab3", "持续5分钟\n每分钟增加6人参观");
-                SetText("Fe_BtnLab", "升级\n(钻石)100");
-
-                Get("Fe_ManageInfo").Forward(TweenType.Alpha);
-            }
-        );
-
-        SetButtonEvent
-        (
-            "Fa_SkillBtn (1)",
-            () =>
-            {
-                SetText("Fe_Lab1", "人潮涌动 升级");
-                SetText("Fe_Lab2", "持续5分钟\n每分钟增加6人参观");
-                SetText("Fe_Lab3", "持续5分钟\n每分钟增加6人参观");
-                SetText("Fe_BtnLab", "升级\n(钻石)100");
-
-                Get("Fe_ManageInfo").Forward(TweenType.Alpha);
-            }
-        );
-
-        SetButtonEvent
-        (
-            "Fa_SkillBtn (2)",
-            () =>
-            {
-                SetText("Fe_Lab1", "人潮涌动 升级");
-                SetText("Fe_Lab2", "持续5分钟\n每分钟增加6人参观");
-                SetText("Fe_Lab3", "持续5分钟\n每分钟增加6人参观");
-                SetText("Fe_BtnLab", "升级\n(钻石)100");
-
-                Get("Fe_ManageInfo").Forward(TweenType.Alpha);
-            }
-        );
-
-        SetButtonEvent
-        (
-            "Fa_SkillBtn (3)",
-            () =>
-            {
-                SetText("Fe_Lab1", "人潮涌动 升级");
-                SetText("Fe_Lab2", "持续5分钟\n每分钟增加6人参观");
-                SetText("Fe_Lab3", "持续5分钟\n每分钟增加6人参观");
-                SetText("Fe_BtnLab", "升级\n(钻石)100");
-                
-                Get("Fe_ManageInfo").Forward(TweenType.Alpha);
-            }
-        );
-
-        #endregion
+        for (int i = 0; i < ManaData.GardenSkillList.Count; i++)
+        {
+            GetSkillItem(string.Format(" ({0})", i), ManaData.GardenSkillList[i]);
+        }
 
         #endregion
 
-        #region Fb
+        #region Fb Magic
 
-        GetGridItem("Fb_MagicItem", "Fb_Grid", " (0)");
-        GetGridItem("Fb_MagicItem", "Fb_Grid", " (1)");
-        GetGridItem("Fb_MagicItem", "Fb_Grid", " (2)");
-        GetGridItem("Fb_MagicItem", "Fb_Grid", " (3)");
+        for (int i = 0; i < ManaData.MagicSkillList.Count; i++)
+        {
+            GetSkillItem(string.Format(" ({0})", i), ManaData.MagicSkillList[i]);
+        }
 
         #endregion
 
-        #region Fc
-
-        #region Fc_Grid
-
-        GetGridItem("Fc_StoreItem", "Fc_Grid", " (0)");
-        GetGridItem("Fc_StoreItem", "Fc_Grid", " (1)");
-        GetGridItem("Fc_StoreItem", "Fc_Grid", " (2)");
-        GetGridItem("Fc_StoreItem", "Fc_Grid", " (3)");
-
-        SetButtonEvent
-        (
-            "Fc_StoreBtn (0)",
-            () =>
-            {
-                SetText("Fe_Lab1", "新手礼包");
-                SetText("Fe_Lab2", "150级内有效");
-                SetText("Fe_Lab3", "获得某种特殊花朵,500钻石\n所有金币产出提升110%,永久有效");
-                SetText("Fe_BtnLab", "购买\n¥6");
-
-                Get("Fe_ManageInfo").Forward(TweenType.Alpha);
-            }
-        );
-
-        SetButtonEvent
-        (
-            "Fc_StoreBtn (1)",
-            () =>
-            {
-                SetText("Fe_Lab1", "新手礼包");
-                SetText("Fe_Lab2", "150级内有效");
-                SetText("Fe_Lab3", "获得某种特殊花朵,500钻石\n所有金币产出提升110%,永久有效");
-                SetText("Fe_BtnLab", "购买\n¥6");
-                
-                Get("Fe_ManageInfo").Forward(TweenType.Alpha);
-            }
-        );
-
-        SetButtonEvent
-        (
-            "Fc_StoreBtn (2)",
-            () =>
-            {
-                SetText("Fe_Lab1", "新手礼包");
-                SetText("Fe_Lab2", "150级内有效");
-                SetText("Fe_Lab3", "获得某种特殊花朵,500钻石\n所有金币产出提升110%,永久有效");
-                SetText("Fe_BtnLab", "购买\n¥6");
-                
-                Get("Fe_ManageInfo").Forward(TweenType.Alpha);
-            }
-        );
-
-        SetButtonEvent
-        (
-            "Fc_StoreBtn (3)",
-            () =>
-            {
-                SetText("Fe_Lab1", "新手礼包");
-                SetText("Fe_Lab2", "150级内有效");
-                SetText("Fe_Lab3", "获得某种特殊花朵,500钻石\n所有金币产出提升110%,永久有效");
-                SetText("Fe_BtnLab", "购买\n¥6");
-                
-                Get("Fe_ManageInfo").Forward(TweenType.Alpha);
-            }
-        );
+        #region Fc Store
 
-        #endregion
+        for (int i = 0; i < ManaData.StoreSkillList.Count; i++)
+        {
+            GetSkillItem(string.Format(" ({0})", i), ManaData.StoreSkillList[i]);
+        }
 
         #endregion
 
-        #region Fd
-
-        #region Fd_Grid
-
-        GetGridItem("Fd_ElfItem", "Fd_Grid", " (0)");
-        GetGridItem("Fd_ElfItem", "Fd_Grid", " (1)");
-        GetGridItem("Fd_ElfItem", "Fd_Grid", " (2)");
-        GetGridItem("Fd_ElfItem", "Fd_Grid", " (3)");
+        #region Fd Elf
 
-        SetButtonEvent
-        (
-            "Fd_ElfBtn (0)",
-            () =>
-            {
-                SetText("Fe_Lab1", "蓝色小蜜蜂 未解锁");
-                SetText("Fe_Lab2", "");
-                SetText("Fe_Lab3", "每人次参观获得10金币");
-                SetText("Fe_BtnLab", "解锁\n(钻石)100");
-                
-                Get("Fe_ManageInfo").Forward(TweenType.Alpha);
-            }
-        );
+        for (int i = 0; i < ManaData.ElfSkillList.Count; i++)
+        {
+            GetSkillItem(string.Format(" ({0})", i), ManaData.ElfSkillList[i]);
+        }
 
-        SetButtonEvent
-        (
-            "Fd_ElfBtn (1)",
-            () =>
-            {
-                SetText("Fe_Lab1", "蓝色小蜜蜂 未解锁");
-                SetText("Fe_Lab2", "");
-                SetText("Fe_Lab3", "每人次参观获得10金币");
-                SetText("Fe_BtnLab", "解锁\n(钻石)100");
-                
-                Get("Fe_ManageInfo").Forward(TweenType.Alpha);
-            }
-        );
+#endregion
 
-        SetButtonEvent
-        (
-            "Fd_ElfBtn (2)",
-            () =>
-            {
-                SetText("Fe_Lab1", "蓝色小蜜蜂 未解锁");
-                SetText("Fe_Lab2", "");
-                SetText("Fe_Lab3", "每人次参观获得10金币");
-                SetText("Fe_BtnLab", "解锁\n(钻石)100");
-                
-                Get("Fe_ManageInfo").Forward(TweenType.Alpha);
-            }
-        );
-
-        SetButtonEvent
-        (
-            "Fd_ElfBtn (3)",
-            () =>
-            {
-                SetText("Fe_Lab1", "蓝色小蜜蜂 未解锁");
-                SetText("Fe_Lab2", "");
-                SetText("Fe_Lab3", "每人次参观获得10金币");
-                SetText("Fe_BtnLab", "解锁\n(钻石)100");
-                
-                Get("Fe_ManageInfo").Forward(TweenType.Alpha);
-            }
-        );
-
-        #endregion
+        ManaData.UpdateSkillStatus();
 
         #endregion
 
@@ -1076,7 +893,7 @@ public class ManaReso : MonoBehaviour
             new Vector3(-12, tempTra.position.y, tempTra.position.z),
             100, false, true, TweenCurve.Linear
         );
-        
+
         tempTween.OnForwardFinish += () =>
         {
             tempTra.Forward(TweenType.Position);
@@ -1090,7 +907,7 @@ public class ManaReso : MonoBehaviour
 
         tempTween = Get("GardenSrC").CreateTween
         (
-            Garden.Ins.transform.position,
+            Get("GardenPosTra").position, 
             1f, false, true, TweenCurve.Linear
         );
 
@@ -1101,18 +918,16 @@ public class ManaReso : MonoBehaviour
 
         tempTween.OnForwardFinish += () =>
         {
-            Player.Ins.SetActive(false);
-
+            SetActive("Player", false);
             SetActive("GardenSr1", false);
             SetActive("GardenSrA", false);
         };
 
         tempTween.OnBackwardStart += () =>
         {
-            Player.Ins.SetActive(true);
-
-            Get("GardenSr1").SetActive(true);
-            Get("GardenSrA").SetActive(true);
+            SetActive("Player", true);
+            SetActive("GardenSr1", true);
+            SetActive("GardenSrA", true);
         };
 
         tempTween.OnBackwardFinish += () =>
@@ -1469,6 +1284,46 @@ public class ManaReso : MonoBehaviour
         return tempTra;
     }
 
+    public static Transform GetSkillItem(string suffix, SkillRoot skillRoot)
+    {
+        Transform tempTra;
+
+        if (skillRoot.Class == SkillClass.Elf)
+        {
+            tempTra = GetGridItem("Fd_ElfItem", "Fd_Grid", suffix);
+        }
+        else if (skillRoot.Class == SkillClass.Store)
+        {
+            tempTra = GetGridItem("Fc_StoreItem", "Fc_Grid", suffix);
+        }
+        else if (skillRoot.Class == SkillClass.Magic)
+        {
+            tempTra = GetGridItem("Fb_MagicItem", "Fb_Grid", suffix);
+        }
+        else if (skillRoot.Class == SkillClass.Garden)
+        {
+            tempTra = GetGridItem("Fa_GardenItem", "Fa_Grid", suffix);
+        }
+        else if (skillRoot.Class == SkillClass.Activity)
+        {
+            throw new Exception();
+        }
+        else
+        {
+            throw new Exception();
+        }
+
+        skillRoot.Tit = tempTra.GetChild(1).GetComponent<Text>();
+        skillRoot.Lab = tempTra.GetChild(1).GetChild(0).GetComponent<Text>();
+        skillRoot.BtnLab = tempTra.GetChild(0).GetChild(0).GetComponent<Text>();
+
+        skillRoot.Tit.text = skillRoot.Name;
+        skillRoot.Lab.text = skillRoot.Desc;
+        skillRoot.BtnLab.text = skillRoot.ClassId.ToString();
+
+        return tempTra;
+    }
+
     public static Transform GetGridItem(string prefabName, string parentName, string suffix)
     {
         Transform tempTra = Get(prefabName, Folder.PrefabUI, Get(parentName));
@@ -1497,7 +1352,7 @@ public class ManaReso : MonoBehaviour
 
             SaveToDic(transforms[i]);
         }
-
+        
         Image image = tempTra.GetComponent<Image>();
         image.sprite = Load<Sprite>(objType.ToString(), Folder.Garden);
 

+ 0 - 4
Assets/Script/Manage/ManaTween.cs

@@ -20,8 +20,6 @@ public class ManaTween : MonoBehaviour
 {
     #region 变量
 
-    public static ManaTween Ins;
-
     private static List<Tween> ForwardTweenList;
     private static List<Tween> BackwardTweenList;
     private static Dictionary<Transform, Tween> TweenPosDictionary;
@@ -31,8 +29,6 @@ public class ManaTween : MonoBehaviour
 
     private void Awake()
     {
-        Ins = this;
-
         TweenPosDictionary = new Dictionary<Transform, Tween>();
         TweenAlphaDictionary = new Dictionary<Transform, Tween>();
         ForwardTweenList = new List<Tween>();

+ 0 - 4
Assets/Script/Manage/ManaUI.cs

@@ -116,14 +116,10 @@ public class ManaUI : MonoBehaviour
         }
     }
 
-    public static ManaUI Ins;
-
     #endregion
 
     private void Awake()
     {
-        Ins = this;
-
         Transform root = ManaReso.Get("Canvas", Folder.PrefabUI).transform;
         ManaReso.Get("MainCamera", Folder.Object);
         ManaReso.Get("EventSystem", Folder.PrefabUI);

+ 6 - 2
Assets/Script/Object/Flower.cs

@@ -38,15 +38,17 @@ public class Flower : ObjRoot, IPointerClickHandler
 
     #endregion
 
-    private Dictionary<string, Transform> ChildDic;
-
     public Sprite Sprite;
     public Transform PosTra;
 
+    private Dictionary<string, Transform> ChildDic;
+
     #endregion
 
     private void Awake()
     {
+        #region MyRegion
+
         ChildDic = new Dictionary<string, Transform>();
         Transform[] transforms = GetComponentsInChildren<Transform>(true);
 
@@ -60,6 +62,8 @@ public class Flower : ObjRoot, IPointerClickHandler
         OperateSr = ChildDic["OperateSr"].GetComponent<SpriteRenderer>();
         PhaseTexm = ChildDic["PhaseTexm"].GetComponent<TextMesh>();
         OperateTexm = ChildDic["OperateTexm"].GetComponent<TextMesh>();
+
+        #endregion
     }
 
 

+ 0 - 4
Assets/Script/Object/Garden.cs

@@ -14,14 +14,10 @@ public class Garden : MonoBehaviour , IDragHandler, IPointerClickHandler
     private SpriteRenderer GardenSrB;
     private SpriteRenderer GardenSrA;
 
-    public static Garden Ins;
-
     #endregion
 
     private void Awake()
     {
-        Ins = this;
-
         #region MyRegion
 
         Transform[] transforms = GetComponentsInChildren<Transform>(true);

+ 2 - 4
Assets/Script/Object/Player.cs

@@ -7,8 +7,6 @@ public class Player : MonoBehaviour
 {
     #region 变量
 
-    public static Player Ins;
-
     #region MyRegion
 
     private SpriteRenderer EyeSr;
@@ -36,13 +34,13 @@ public class Player : MonoBehaviour
 
     private void Awake()
     {
-        Ins = this;
-
         #region MyRegion
 
         ChildDic = new Dictionary<string, Transform>();
         Transform[] transforms = GetComponentsInChildren<Transform>(true);
 
+        ManaReso.SaveToDic(transforms[0]);
+
         for (int i = 0; i < transforms.Length; i++)
         {
             ChildDic.Add(transforms[i].name, transforms[i]);

+ 35 - 0
Assets/Script/Tool/Auxiliary.cs

@@ -10,6 +10,7 @@ public class Auxiliary : MonoBehaviour
     #region 变量
 
     public string TempString;
+    public Font TempFont;
     public GameObject TempGo;
     public List<GameObject> TempGoList;
 
@@ -20,6 +21,14 @@ public class Auxiliary : MonoBehaviour
         
     }
 
+    private void Update()
+    {
+        if (Input.GetKeyDown(KeyCode.P))
+        {
+            ManaData.Level += 10;
+        }
+    }
+
     private void FixedUpdate()
     {
         
@@ -65,6 +74,32 @@ public class Auxiliary : MonoBehaviour
     }
 
 
+    public static void ChangeFont(List<GameObject> goList, Font font)
+    {
+        for (int j = 0; j < goList.Count; j++)
+        {
+            Transform[] transforms = goList[j].GetComponentsInChildren<Transform>(true);
+
+            for (int i = 0; i < transforms.Length; i++)
+            {
+                Text text = transforms[i].GetComponent<Text>();
+                TextMesh textMesh = transforms[i].GetComponent<TextMesh>();
+
+                if (text != null)
+                {
+                    text.font = font;
+                    text.fontStyle = FontStyle.Normal;
+                }
+
+                if (textMesh != null)
+                {
+                    textMesh.font = font;
+                    textMesh.fontStyle = FontStyle.Normal;
+                }
+            }
+        }
+    }
+
     public static void PrintBounds(GameObject go)
     {
         Bounds bounds = go.GetComponent<Renderer>().bounds;

+ 21 - 3
Assets/Script/Tool/Data.cs

@@ -2,6 +2,7 @@
 
 using System.Xml;
 using System.Collections;
+using System.Collections.Generic;
 
 public class Data : MonoBehaviour
 {
@@ -39,16 +40,16 @@ public class Data : MonoBehaviour
         return UrlNode.SelectSingleNode(cate).SelectSingleNode(name).InnerText;
     }
 
-    public static string GetLan(string cate, string name)
+    public static string GetText(string cate, string name)
     {
         if (ChineseNode == null)
         {
             XmlDocument xmlDoc = new XmlDocument();
             xmlDoc.Load(@"Assets\Resources\XML\Data.xml");
 
-            ChineseNode = xmlDoc.SelectSingleNode("Data").SelectSingleNode("Chinese");
+            ChineseNode = xmlDoc.SelectSingleNode("Data").SelectSingleNode("Text");
         }
-
+        
         return ChineseNode.SelectSingleNode(cate).SelectSingleNode(name).InnerText;
     }
 
@@ -64,4 +65,21 @@ public class Data : MonoBehaviour
 
         return ValueNode.SelectSingleNode(cate).SelectSingleNode(name).InnerText;
     }
+
+    public static List<XmlNodeList> GetSkillConfig()
+    {
+        XmlDocument xmlDoc = new XmlDocument();
+        List<XmlNodeList> xmlNodeLists = new List<XmlNodeList>();
+
+        xmlDoc.Load(@"Assets\Resources\XML\Config\pack_config.xml");
+        xmlNodeLists.Add(xmlDoc.SelectSingleNode("data").SelectNodes("item"));
+
+        xmlDoc.Load(@"Assets\Resources\XML\Config\skill_config.xml");
+        xmlNodeLists.Add(xmlDoc.SelectSingleNode("data").SelectNodes("item"));
+
+        xmlDoc.Load(@"Assets\Resources\XML\Config\ability_config.xml");
+        xmlNodeLists.Add(xmlDoc.SelectSingleNode("data").SelectNodes("item"));
+
+        return xmlNodeLists;
+    }
 }

+ 220 - 0
Assets/Script/Tool/Language.cs

@@ -0,0 +1,220 @@
+using UnityEngine;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Xml;
+
+public class Language
+{
+	public enum Enabled:int
+    {
+		ChineseSimplified = 0,
+		English = 1,
+		ChineseTraditional = 2,
+    }
+
+	public enum LangType
+	{
+		Public
+	}
+
+	public static string[] availableArr = new string[]{Enabled.ChineseSimplified.ToString(), Enabled.English.ToString(), Enabled.ChineseTraditional.ToString() };
+
+	private static SystemLanguage defaultLan = SystemLanguage.English;
+	private static XmlDocument xml;
+
+	public static string lan = SystemLanguage.English.ToString();
+    public static string lanForUI = SystemLanguage.English.ToString();
+
+    //	public static void Init (string lan)
+    //	{
+    //		Debug.Log("Init Language "+lan);
+    //
+    //        Language.lan = lan;
+    //
+    //		string path = "XML/Language/";
+    //        TextAsset textAsset = ResourcesUtil.GetInstance().GetTextAsset("XML/Language/" + lan);
+    //		if(textAsset == null)
+    //		{
+    //			Debug.LogError("Can not find language use default "+defaultLan);
+    //			textAsset = ResourcesUtil.GetInstance().GetTextAsset("XML/Language/"+defaultLan.ToString());
+    //			Language.lan = defaultLan.ToString();
+    //		}
+    //
+    //		if(xml == null)
+    //			xml = new XmlDocument();
+    //		xml.LoadXml(text);
+    //	}
+
+    public static bool initialized
+	{
+		get{
+			return xml != null;
+		}
+	}
+
+	public static void LoadFromResource()
+	{
+		//TextAsset textasset = ResourcesManager.Instance.LoadConfig("xml/lan", lan);
+		xml = new XmlDocument ();
+		//xml.LoadXml (textasset.text);
+	}
+
+	public static void Load(System.Action callBack)
+	{
+		//Language.lan = GetSpecifiedLang();
+//		ResourcesManager.Instance.LoadAsset<TextAsset> ("xml/lan", lan, (objs) => {
+//			if (objs != null && objs.Length > 0 && objs[0] != null) {
+//				xml = new XmlDocument ();
+//				xml.LoadXml ((objs[0] as TextAsset).text);
+////				Debug.LogError("bundleLoad-->"+(objs[0] as TextAsset).text);
+//			} else {
+//				TextAsset textasset = ResourcesManager.Instance.LoadConfig("xml/lan", lan);
+//				xml = new XmlDocument ();
+//				xml.LoadXml (textasset.text);
+////				Debug.LogError("resourceLoad-->"+(textasset.text));
+//			} 
+//			callBack();
+//		});
+
+
+//		AssetBundleLoader.Load(path, lan.ToString(), typeof(TextAsset), (object asset)=>{
+//			xml = new XmlDocument();
+//			xml.LoadXml((asset as TextAsset).text);
+////			AssetBundleUtil.GetInstance().GetFont(AssetBundleUtil.Url.Font, lan.ToString(), (Font assetFont)=>{
+////				font = assetFont;
+////			});
+//			font = ResourcesUtil.GetInstance().GetFont(ResourcesUtil.Url.Font, lan);
+////			font = ResourcesUtil.GetInstance().GetFont(ResourcesUtil.Url.Font, Enabled.Chinese.ToString());
+//			callBack();
+//		}, true);
+	}
+	/// <summary>
+	/// 替换字符获取新的字符串
+	/// </summary>
+	/// <param name="old">需要替换的字符串</param>
+	/// <param name="_replace">替换的数组</param>
+	/// <returns></returns>
+	public static string GetReplacedText(string old, params System.Object[] _replace)
+	{
+		if (old == "" || old == null) return "";
+		string replaceStr = old;
+		int length = _replace.Length;
+		for (int i = 0; i < length; i++)
+		{
+			replaceStr = replaceStr.Replace("_$" + i + "_", _replace[i].ToString());
+		}
+		return replaceStr;
+	}
+
+	public static string GetStr(string id,LangType type = LangType.Public)
+	{
+		return GetStr (type.ToString(),id);
+	}
+	
+	public static string GetStr(string page, string id)
+	{
+		if(xml == null) 
+		{
+			Debug.LogError("Language not init");
+			return "Language not init";
+        }
+
+        try
+		{
+			XmlNode pageNode = xml.SelectSingleNode("lan/"+page);
+			XmlNode node = pageNode.SelectSingleNode(id);
+			if(node != null)
+				return node.InnerText.Replace("\\n", "\n");
+		}
+		catch(Exception e)
+		{
+			Debug.LogException(e);
+		}
+
+		string error = "Topic missing page["+page+"] id["+id+"]";
+		Debug.LogError(error);
+		return error;
+	}
+
+	private static Font defaultFont;
+	public static Font font; //todo Public改为private
+
+    public static Font GetFont()
+    {
+		if (xml == null || font == null)
+        {
+			if(defaultFont == null)
+			{
+				Debug.LogError("Language not init");
+                defaultFont = Font.CreateDynamicFontFromOSFont("Arial", 20);
+            }
+            return defaultFont;
+        }
+		return font;
+        //return "Fonts/" + SystemLanguage.ChineseTraditional.ToString();
+        //return "Fonts/" + SystemLanguage.Chinese.ToString();
+    }
+
+    public static Font GetFont(Enabled font)
+    {
+		return null;
+        //return ResourcesUtil.GetInstance().GetFont(ResourcesUtil.Url.Font, font.ToString());
+    }
+
+    public static Font GetSystemFont()
+    {
+        return Font.CreateDynamicFontFromOSFont("Arial", 20);
+    }
+
+    public static Font GetNumberFont()
+    {
+		return null;
+        //return ResourcesUtil.GetInstance().GetFont(ResourcesUtil.Url.Font, "Number");
+    }
+
+	public static string GetSpecifiedLang1()
+    {
+        string language = "";
+        if (Application.systemLanguage.ToString() == SystemLanguage.ChineseSimplified.ToString())
+            language = SystemLanguage.Chinese.ToString();
+        else
+            language = Application.systemLanguage.ToString();
+
+        if (!isInEnabled(language))
+            language = defaultLan.ToString();
+
+#if UNITY_EDITOR || UNITY_STANDALONE
+        language = SystemLanguage.English.ToString();
+#endif
+
+//		language = SystemLanguage.Chinese.ToString();
+		language = SystemLanguage.English.ToString();
+
+        return language;
+
+    }
+
+    private static bool isInEnabled(string value)
+    {
+        bool isIn = false;
+        foreach (string name in Enum.GetNames(typeof(Enabled)))
+        {
+            if (value == name)
+                return true;
+        }
+        return isIn;
+    }
+
+    public static bool IsLanguageInit()
+    {
+        return (xml == null) ? false : true;
+    }
+
+    public static string GetLanguagePath()
+    {
+        return "XML/lan/" + lan;
+    }
+
+}
+

+ 12 - 0
Assets/Script/Tool/Language.cs.meta

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

+ 33 - 0
Assets/Script/Tool/TweenVector.cs

@@ -11,6 +11,7 @@ public class TweenVector : Tween
     protected Vector3 Variation;
     protected Vector3 Destination;
     protected Transform Target;
+    protected CanvasGroup CanvasGroup;
 
     private TweenFunc Func;
 
@@ -26,16 +27,28 @@ public class TweenVector : Tween
         Variation = destination - origin;
         Destination = destination;
 
+        CanvasGroup = Target.GetComponent<CanvasGroup>();
+
         OnForwardStart += () => Target.SetActive(true);
         OnForwardFinish += () =>
         {
             Target.SetActive(DestActive);
+
+            if (CanvasGroup != null)
+            {
+                CanvasGroup.interactable = DestActive;
+            }
         };
 
         OnBackwardStart += () => Target.SetActive(true);
         OnBackwardFinish += () =>
         {
             Target.SetActive(OriginActive);
+
+            if (CanvasGroup != null)
+            {
+                CanvasGroup.interactable = OriginActive;
+            }
         };
 
         if (tweenCurve == TweenCurve.Linear)
@@ -92,4 +105,24 @@ public class TweenVector : Tween
             return false;
         }
     }
+
+    public override void StartForward()
+    {
+        base.StartForward();
+
+        if (CanvasGroup != null)
+        {
+            CanvasGroup.interactable = false;
+        }
+    }
+
+    public override void StartBackward()
+    {
+        base.StartBackward();
+
+        if (CanvasGroup != null)
+        {
+            CanvasGroup.interactable = false;
+        }
+    }
 }

+ 9 - 0
Assets/Script/Utils.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 6a269fb17ce25b94ebbae0562f492919
+folderAsset: yes
+timeCreated: 1487574459
+licenseType: Pro
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 96 - 0
Assets/Script/Utils/DGFileUtil.cs

@@ -0,0 +1,96 @@
+using UnityEngine;
+using System.Collections;
+using System.Collections.Generic;
+using System.IO;
+
+public class DGFileUtil
+{
+
+	public static List<string> GetAllFiles(DirectoryInfo dir, string except=null)
+	{
+		List<string> fileList = new List<string>();
+		if(!Directory.Exists(dir.FullName) && !File.Exists(dir.FullName))
+		{
+			Debug.LogError("Directory not exists : "+dir.FullName);
+			return fileList;
+		}
+		
+		FileInfo[] allFile = dir.GetFiles();
+		for(int i=0; i<allFile.Length; i++)
+		{
+			FileInfo fi = allFile[i];
+			if(except != null && fi.Name.IndexOf(except) != -1)
+			{
+				continue;
+			}
+			fileList.Add(fi.FullName);
+		}
+		
+		DirectoryInfo[] allDir= dir.GetDirectories();
+		foreach (DirectoryInfo d in allDir)
+		{
+			if(d.FullName == dir.FullName)
+			{
+				continue;
+			}
+			fileList.AddRange(GetAllFiles(d, except));
+		}
+		return fileList;
+	}
+
+	public static List<string> GetChildrenDirectory(DirectoryInfo dir)
+	{
+		List<string> fileList = new List<string>();
+		if(!Directory.Exists(dir.FullName) && !File.Exists(dir.FullName))
+		{
+			Debug.LogError("Directory not exists : "+dir.FullName);
+			return fileList;
+		}
+		
+		DirectoryInfo[] allDir= dir.GetDirectories();
+		foreach (DirectoryInfo d in allDir)
+		{
+			if(d.FullName == dir.FullName)
+			{
+				continue;
+			}
+			fileList.Add(d.FullName);
+		}
+		return fileList;
+	}
+
+	public static void CreateDirectoryWhenNotExists(string destination)
+	{
+		destination = destination.Replace("\\", "/");
+		string dir = destination.Substring(0, destination.LastIndexOf("/"));
+		if(!Directory.Exists(dir))
+		{
+			Directory.CreateDirectory(dir);
+		}
+	}
+
+	public static void CopyFile(string source, string destination)
+	{
+		CreateDirectoryWhenNotExists(destination);
+		File.Copy(source, destination);
+	}
+
+	public static void CopyFileOrDirectory(string source, string destination, string except=null)
+	{
+		List<string> list = DGFileUtil.GetAllFiles(new DirectoryInfo(source), except);
+		for(int i=0; i<list.Count; i++)
+		{
+			string path = list[i];
+			string destPath = destination + path.Substring(source.Length);
+			DGFileUtil.CopyFile(path, destPath);
+		}
+	}
+
+
+	public static string GetFileNameByPath(string path)
+	{
+		path = path.Replace("\\", "/");
+		return path.Substring(path.LastIndexOf("/")+1);
+	}
+}
+

+ 12 - 0
Assets/Script/Utils/DGFileUtil.cs.meta

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

+ 41 - 0
Assets/Script/Utils/JsonUtil.cs

@@ -0,0 +1,41 @@
+using UnityEngine;
+using System.Collections;
+using LitJson;
+
+public class JsonUtil
+{
+
+	public static bool ContainKey(JsonData data, string key)
+	{
+		if(data == null || data.Inst_Object == null)
+			return false;
+		return data.Inst_Object.ContainsKey(key);
+	}
+
+	public static int ToInt(JsonData data)
+	{
+		if(data.IsString)
+		{
+			return StringUtil.ToInt((string)data);
+		}
+		else if(data.IsInt)
+		{
+			return (int)data;
+		}
+		return 0;
+	}
+
+	public static bool ToBool(JsonData data)
+	{
+		if(data.IsString)
+		{
+			return StringUtil.ToBool((string)data);
+		}
+		else if(data.IsBoolean)
+		{
+			return (bool)data;
+		}
+		return false;
+	}
+}
+

+ 12 - 0
Assets/Script/Utils/JsonUtil.cs.meta

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

+ 79 - 0
Assets/Script/Utils/MD5Util.cs

@@ -0,0 +1,79 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     此代码由工具生成。
+//     运行时版本:4.0.30319.1
+//
+//     对此文件的更改可能会导致不正确的行为,并且如果
+//     重新生成代码,这些更改将会丢失。
+// </auto-generated>
+//------------------------------------------------------------------------------
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Security.Cryptography;
+using System.IO;
+
+public class MD5Util
+{
+	public static string Encrypt(string input)
+	{
+		MD5 md5 = MD5.Create(); 
+		byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(input); 
+		byte[] hash = md5.ComputeHash(inputBytes); 
+		StringBuilder sb = new StringBuilder(); 
+		for (int i = 0; i < hash.Length; i++) 
+		{
+			sb.Append(hash[i].ToString("x2"));//x2 lowercase, X2 uppercase
+		}
+		return sb.ToString();
+	}
+
+
+	public static string GetFileHash(string filePath)
+	{           
+		try
+		{
+			FileStream fs = File.Open(filePath, FileMode.Open);
+			int len = (int)fs.Length;
+			byte[] data = new byte[len];
+			fs.Read(data, 0, len);
+			fs.Close();
+			fs.Dispose();
+			MD5 md5 = new MD5CryptoServiceProvider();
+			byte[] result = md5.ComputeHash(data);
+			string fileMD5 = "";
+			foreach (byte b in result)
+			{
+				fileMD5 += Convert.ToString(b, 16);
+			}
+			return fileMD5;
+		}
+		catch (Exception e)
+		{
+			Debuger.LogException(e);
+			return "";
+		}
+	}
+
+	public static string GetFileHash(byte[] data)
+	{           
+		try
+		{
+			MD5 md5 = new MD5CryptoServiceProvider();
+			byte[] result = md5.ComputeHash(data);
+			string fileMD5 = "";
+			foreach (byte b in result)
+			{
+				fileMD5 += Convert.ToString(b, 16);
+			}
+			return fileMD5;
+		}
+		catch (Exception e)
+		{
+			Debuger.LogException(e);
+			return "";
+		}
+	}
+
+}
+

+ 12 - 0
Assets/Script/Utils/MD5Util.cs.meta

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

+ 160 - 0
Assets/Script/Utils/NumberUtil.cs

@@ -0,0 +1,160 @@
+using System;
+using UnityEngine;
+using System.Collections;
+using System.Collections.Generic;
+
+public class NumberUtil
+{
+
+	public static float angleToRadian(float angle)
+	{
+		return angle/180*Mathf.PI;
+	}
+	
+	public static float radianToAngle(float radian)
+	{
+		return radian/Mathf.PI*180;
+	}
+
+	public static float getRadianByATan(float targetX, float targetY, float originX, float originY)
+	{
+		float dx = targetX-originX;
+		float dy = targetY-originY;
+		return Mathf.Atan2(dy, dx);
+	}
+
+	public static float forceBetween(float origin, float min, float max)
+	{
+		if(origin < min) return min;
+		if(origin > max) return max;
+		return origin;
+	}
+
+	public static int forceBetween(int origin, int min, int max)
+	{
+		if(origin < min) return min;
+		if(origin > max) return max;
+		return origin;
+	}
+	
+	public static float getCloseToTargetAngle(float origin, float target, float step)
+	{
+		origin = corverAngleBetween(origin, -180f, 180f);
+		target = corverAngleBetween(target, -180f, 180f);
+		float deltaAngle = Mathf.Abs(target - origin);
+		if(deltaAngle<=step || deltaAngle >= (360f-step))
+		{
+			origin = target;
+		}
+		else if(target > origin)
+		{
+			if(target-origin > 180f)
+			{
+				origin -= step;
+			}
+			else
+			{
+				origin += step;
+			}
+		}
+		else
+		{
+			if(origin-target > 180f)
+			{
+				origin += step;
+			}
+			else
+			{
+				origin -= step;
+			}
+		}
+		return origin;
+	}
+
+	public static float corverAngleBetween(float angle, float min, float max)
+	{
+		if(angle < min)
+		{
+			while(angle < min)
+			{
+				angle += 360f;
+			}
+		}
+		else if(angle > max)
+		{
+			while(angle > max)
+			{
+				angle -= 360f;
+			}
+		}
+		return angle;
+	}
+
+	public static float distanceVector2(Vector2 origin, Vector2 target)
+	{
+		return Vector2.Distance(origin, target);
+	}
+
+	public static float distanceVector3(Vector3 origin, Vector3 target, bool ignoreY=false)
+	{
+		if(ignoreY)
+			origin.y = target.y = 0;
+		return Vector3.Distance(origin, target);
+	}
+
+	public static string getTimeString(float seconds, bool enableHour=true)
+	{
+		bool isNegative = false;
+		if(seconds < 0)
+		{
+			isNegative = true;
+			seconds = -seconds;
+		}
+
+		int sec = (int)seconds;
+
+		int h = enableHour?sec/(60*60):0;
+		int tempSec = enableHour?sec%(60*60):sec;
+		int m = tempSec/60;
+		tempSec = tempSec%60;
+		int s = tempSec;
+
+		string hStr = enableHour?("00"+h):"";
+		string mStr = "00"+m;
+		string sStr = "00"+s;
+
+		string str = "";
+		if(enableHour)
+			str = hStr.Substring(hStr.Length-2, 2)+":"+mStr.Substring(mStr.Length-2, 2)+":"+sStr.Substring(sStr.Length-2, 2);
+		else
+			str = mStr.Substring(mStr.Length-2, 2)+":"+sStr.Substring(sStr.Length-2, 2);
+
+		if(isNegative)
+			str = "-"+str;
+		return str;
+	}
+
+
+	public static string GetPercentText(double value, int digits)
+	{
+		string str = Math.Round((double)(value * 100), digits).ToString();
+		return str + "%";
+	}
+
+	public static string AddThousandSplit(int value)
+	{
+		List<string> list = new List<string>();
+		do{
+			int num = value%1000;
+			value = value/1000;
+			if(value > 0)
+				list.Insert(0, StringUtil.FillZero(num, 3));
+			else
+				list.Insert(0, num.ToString());
+		}
+		while(value != 0);
+
+		return StringUtil.Join(list, " ");
+	}
+}
+

+ 12 - 0
Assets/Script/Utils/NumberUtil.cs.meta

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

+ 110 - 0
Assets/Script/Utils/StringUtil.cs

@@ -0,0 +1,110 @@
+using UnityEngine;
+using System.Collections;
+using System.Collections.Generic;
+
+public class StringUtil
+{
+	public static string[] Split(string str, char c)
+	{
+		if(Empty(str))
+			return new string[0];
+
+		return str.Split(new char[]{c});
+	}
+
+	public static int[] SplitToInt(string str, char c)
+	{
+		if(Empty(str))
+			return new int[0];
+
+		string[] strArr = Split(str, c);
+		int[] intArr = new int[strArr.Length];
+		for(int i=0; i<strArr.Length; i++)
+		{
+			intArr[i] = ToInt(strArr[i]);
+		}
+		return intArr;
+	}
+
+	public static float[] SplitToFloat(string str, char c)
+	{
+		if(Empty(str))
+			return new float[0];
+
+		string[] strArr = Split(str, c);
+		float[] floatArr = new float[strArr.Length];
+		for(int i=0; i<strArr.Length; i++)
+		{
+			floatArr[i] = ToFloat(strArr[i]);
+		}
+		return floatArr;
+	}
+
+	public static bool Empty(string str)
+	{
+		return str == null || str == "";
+	}
+
+	public static string FillZero(string str, int count)
+	{
+		str = "0000000000000000"+str;
+		str = str.Substring(str.Length-count, count);
+		return str;
+	}
+
+	public static string FillZero(int value, int count)
+	{
+		return FillZero(value.ToString(), count);
+	}
+
+	public static int ToInt(string str)
+	{
+		if(StringUtil.Empty(str))
+		{
+			return 0;
+		}
+		return int.Parse(str);
+	}
+
+	public static float ToFloat(string str)
+	{
+		if(StringUtil.Empty(str))
+		{
+			return 0;
+		}
+		return float.Parse(str);
+	}
+
+	public static bool ToBool(string str)
+	{
+		str = str.ToLower();
+		if(str == "true")
+		{
+			return true;
+		}
+		else if(str == "false")
+		{
+			return false;
+		}
+
+		int value = ToInt(str);
+		if(value > 0)
+			return true;
+		return false;
+	}
+
+
+	public static string Join(List<string> list, string separator)
+	{
+		string str = "";
+		for (int i = 0; i < list.Count; i++)
+		{
+			str += list[i];
+			if (i < list.Count - 1)
+				str += separator;
+		}
+		return str;
+	}
+}
+
+

+ 12 - 0
Assets/Script/Utils/StringUtil.cs.meta

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

+ 9 - 0
Assets/XlsxSource.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 50d11f91d6aba8a428d438edad22cadc
+folderAsset: yes
+timeCreated: 1487720918
+licenseType: Pro
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

二进制
Assets/XlsxSource/ability_config.xlsx


+ 2 - 2
Assets/Scene1.unity.meta → Assets/XlsxSource/ability_config.xlsx.meta

@@ -1,6 +1,6 @@
 fileFormatVersion: 2
-guid: 5266d90dfe302254cac43c718f90033d
-timeCreated: 1486102711
+guid: d43b8022b825b36488364746337c4f3f
+timeCreated: 1487574297
 licenseType: Pro
 DefaultImporter:
   userData: 

二进制
Assets/XlsxSource/flower_config.xlsx


+ 8 - 0
Assets/XlsxSource/flower_config.xlsx.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 39ca717b185476d4b93e7350767ef009
+timeCreated: 1487574297
+licenseType: Pro
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

二进制
Assets/XlsxSource/language_config.xlsx


+ 8 - 0
Assets/XlsxSource/language_config.xlsx.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 2ccfb608b4fbf4048b0b7d51f4e9901f
+timeCreated: 1487576148
+licenseType: Pro
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

二进制
Assets/XlsxSource/pack_config.xlsx


+ 8 - 0
Assets/XlsxSource/pack_config.xlsx.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: bc8c01859f7133242a347a95d585169e
+timeCreated: 1487574297
+licenseType: Pro
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

二进制
Assets/XlsxSource/skill_config.xlsx


+ 8 - 0
Assets/XlsxSource/skill_config.xlsx.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: d4c84899ba660bc4d96f6cb5880fa6af
+timeCreated: 1487574297
+licenseType: Pro
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

二进制
Library/AnnotationManager


二进制
Library/AssetServerCacheV3


二进制
Library/AssetVersioning.db


二进制
Library/CurrentLayout.dwlt


二进制
Library/CurrentMaximizeLayout.dwlt


二进制
Library/EditorUserBuildSettings.asset


二进制
Library/InspectorExpandedItems.asset


+ 1 - 1
Library/LastSceneManagerSetup.txt

@@ -1,4 +1,4 @@
 sceneSetups:
-- path: Assets/Scene1.unity
+- path: Assets/Resources/Scene.unity
   isLoaded: 1
   isActive: 1

部分文件因为文件数量过多而无法显示