jet há 8 anos atrás
pai
commit
bc8569087e
47 ficheiros alterados com 3027 adições e 232 exclusões
  1. 2 2
      Assets/Advertisements/Editor/Resources/Android.meta
  2. 9 0
      Assets/Advertisements/Editor/Resources/Android/builds.meta
  3. 0 0
      Assets/Resource/Animations/人物动画/Closet_ske.json
  4. 1 1
      Assets/Resource/Animations/人物动画/Closet_ske.json.meta
  5. 0 0
      Assets/Resource/Animations/人物动画/Closet_tex.json
  6. 1 1
      Assets/Resource/Animations/人物动画/Closet_tex.json.meta
  7. BIN
      Assets/Resource/Animations/人物动画/Closet_texture.png
  8. 1196 38
      Assets/Resource/Animations/人物动画/Closet_texture.png.meta
  9. 1 1
      Assets/Resource/Animations/人物动画/stand_ske.json.meta
  10. 1 1
      Assets/Resource/Animations/人物动画/stand_tex.json.meta
  11. 174 22
      Assets/Resource/Animations/人物动画/stand_texture.png.meta
  12. 0 0
      Assets/Resource/Animations/人物动画/备份/Closet_ske.json
  13. 0 0
      Assets/Resource/Animations/人物动画/备份/Closet_tex.json
  14. BIN
      Assets/Resource/Animations/人物动画/备份/Closet_tex.png
  15. BIN
      Assets/Resource/Animations/人物动画/备份/Closet_texture.png
  16. 2 2
      Assets/Resource/Animations/人物动画/备份/Closet_texture.png.meta
  17. BIN
      Assets/Resource/Logo.unity
  18. BIN
      Assets/Resource/Prefab/Object/DebugMode.prefab
  19. BIN
      Assets/Resource/Prefab/PrefabUI/GroupC.prefab
  20. 38 3
      Assets/Resource/XML/Config/dressRoom_config.xml
  21. 35 0
      Assets/Resource/XML/lan/ChineseSimplified.xml
  22. 35 0
      Assets/Resource/XML/lan/ChineseTraditional.xml
  23. 35 0
      Assets/Resource/XML/lan/English.xml
  24. BIN
      Assets/Resource/Xlsx/dressRoom_config.xlsx
  25. BIN
      Assets/Resource/Xlsx/language_config.xlsx
  26. 45 0
      Assets/Script/Editor/EditorAuxiliary.cs
  27. 0 83
      Assets/Script/Extension/ExtensionList.cs
  28. 47 14
      Assets/Script/Manage/ManaPlayer.cs
  29. 1 1
      Assets/Script/Object/Garden.cs
  30. 33 16
      Assets/Script/Object/Player.cs
  31. 2 2
      Assets/Script/Object/Skill/Ability.cs
  32. 34 34
      Assets/Script/Tool/Anim/StreamScale.cs
  33. 9 0
      Assets/Script/Tool/AtlasUtil.meta
  34. 41 0
      Assets/Script/Tool/AtlasUtil/AtlasUtil.cs
  35. 2 2
      Assets/Script/Tool/AtlasUtil/AtlasUtil.cs.meta
  36. 9 0
      Assets/Script/Tool/AtlasUtil/Editor.meta
  37. 1023 0
      Assets/Script/Tool/AtlasUtil/Editor/EdAtlasUtil.cs
  38. 12 0
      Assets/Script/Tool/AtlasUtil/Editor/EdAtlasUtil.cs.meta
  39. 35 0
      Assets/Script/Tool/AtlasUtil/ExMath.cs
  40. 12 0
      Assets/Script/Tool/AtlasUtil/ExMath.cs.meta
  41. 172 0
      Assets/Script/Tool/AtlasUtil/ExtList.cs
  42. 12 0
      Assets/Script/Tool/AtlasUtil/ExtList.cs.meta
  43. 4 2
      Assets/Script/Tool/Auxiliary.cs
  44. 0 1
      Assets/Script/Tool/Bundle.cs
  45. 3 3
      Assets/Script/Tool/UI/TextPlus.cs
  46. BIN
      ProjectSettings/GraphicsSettings.asset
  47. 1 3
      ToList.txt

+ 2 - 2
Assets/Extension.meta → Assets/Advertisements/Editor/Resources/Android.meta

@@ -1,7 +1,7 @@
 fileFormatVersion: 2
-guid: b948198483a8b93419206e81215060f3
+guid: 34f35527a1d66ca48a1c8a28dec93f5b
 folderAsset: yes
-timeCreated: 1496150477
+timeCreated: 1494301205
 licenseType: Pro
 DefaultImporter:
   userData: 

+ 9 - 0
Assets/Advertisements/Editor/Resources/Android/builds.meta

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

Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
Assets/Resource/Animations/人物动画/Closet_ske.json


+ 1 - 1
Assets/Resource/Animations/人物动画/Closet_ske.json.meta

@@ -1,6 +1,6 @@
 fileFormatVersion: 2
 guid: 0cad47e5fe7664c4889face32561e5f3
-timeCreated: 1492571900
+timeCreated: 1500270729
 licenseType: Pro
 TextScriptImporter:
   userData: 

Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
Assets/Resource/Animations/人物动画/Closet_tex.json


+ 1 - 1
Assets/Resource/Animations/人物动画/Closet_tex.json.meta

@@ -1,6 +1,6 @@
 fileFormatVersion: 2
 guid: cf10bfe715240ea4e87102475ca55678
-timeCreated: 1492571900
+timeCreated: 1500270729
 licenseType: Pro
 TextScriptImporter:
   userData: 

BIN
Assets/Resource/Animations/人物动画/Closet_texture.png


+ 1196 - 38
Assets/Resource/Animations/人物动画/Closet_texture.png.meta

@@ -1,9 +1,94 @@
 fileFormatVersion: 2
-guid: 773f123d5662f934bbbc06578c4aa120
-timeCreated: 1492583280
+guid: 8d523bac11c2f3742ab88a2cbd71bf39
+timeCreated: 1500285524
 licenseType: Pro
 TextureImporter:
-  fileIDToRecycleName: {}
+  fileIDToRecycleName:
+    21300000: "\u4E0A\u88632"
+    21300002: "\u4E0A\u88633"
+    21300004: "\u773C\u775B2"
+    21300006: "\u773C\u775B3"
+    21300008: "\u8111\u58F32"
+    21300010: "\u88D9\u5B503"
+    21300012: "\u5634\u5DF42"
+    21300014: "\u5634\u5DF43"
+    21300016: "\u978B\u5B502"
+    21300018: "\u978B\u5B503"
+    21300020: "\u5934\u9970\u54C12"
+    21300022: "\u5934\u9970\u54C13"
+    21300024: "\u88D9\u5B502"
+    21300026: "\u5934\u53D15\uFF08\u68D5\u8272\uFF09"
+    21300028: "\u5934\u53D15\uFF08\u7EA2\u8272\uFF09"
+    21300030: "\u5934\u53D15\uFF08\u9EC4\u8272\uFF09"
+    21300032: "\u5934\u53D16+\u4E0B\uFF08\u68D5\uFF09"
+    21300034: "\u5934\u53D16+\u4E0A\uFF08\u68D5\uFF09"
+    21300036: "\u5934\u53D16+\u4E0A\uFF08\u7EFF\uFF09"
+    21300038: "\u5934\u53D16+\u4E0B\uFF08\u9EC4\uFF09"
+    21300040: "\u5934\u53D16+\u4E0A\uFF08\u9EC4\uFF09"
+    21300042: "\u5934\u53D16+\u4E0B\uFF08\u7C89\uFF09"
+    21300044: "\u5934\u53D16+\u4E0A\uFF08\u7C89\uFF09"
+    21300046: "\u5934\u53D18(\u7C89)"
+    21300048: "\u5934\u53D18(\u7D2B)"
+    21300050: "\u5934\u53D18(\u7EFF)"
+    21300052: "\u5934\u53D18(\u9ED1)"
+    21300054: "\u8111\u58F31(\u68D5\u8272)"
+    21300056: "\u8111\u58F31(\u7C89\u8272)"
+    21300058: "\u8111\u58F32(\u7C89\u8272)"
+    21300060: "\u8111\u58F32(\u9EC4\u8272)"
+    21300062: "\u8111\u58F32+\u4E0B\uFF08\u68D5\u8272\uFF09\u53E6\u4E00\u79CD\u53D1\u578B"
+    21300064: "\u8111\u58F32+\u4E0B\uFF08\u7C89\u8272\uFF09\u53E6\u4E00\u79CD\u53D1\u578B"
+    21300066: "\u8111\u58F33+\u4E0B\uFF08\u9EC4\u8272\uFF09\u8111\u58F32\u2014\u2014\u4E0B"
+    21300068: "\u8111\u58F33+\u4E0B\uFF08\u7C89\u8272\uFF09"
+    21300070: "\u8111\u58F33+\u4E0A\uFF08\u7C89\u8272\uFF09"
+    21300072: "\u8111\u58F33+\u4E0B\uFF08\u7D2B\u8272\uFF09"
+    21300074: "\u8111\u58F33+\u4E0A\uFF08\u7D2B\u8272\uFF09"
+    21300076: "\u8111\u58F33+\u4E0A\uFF08\u9EC4\u8272\uFF09"
+    21300078: "\u5934\u53D14\uFF08\u7C89\u8272\uFF09"
+    21300080: "\u5934\u53D14\uFF08\u84DD\u8272\uFF09"
+    21300082: "\u5934\u53D14\uFF08\u7EFF\u8272\uFF09"
+    21300084: "\u5934\u53D16+\u4E0B\uFF08\u7EFF\uFF09"
+    21300086: "\u5934\u53D17(\u6A59)"
+    21300088: "\u5934\u53D17(\u7C73\u767D)"
+    21300090: "\u5934\u53D17(\u84DD\u8272)"
+    21300092: "\u88D9\u5B5010(\u9EC4)"
+    21300094: "\u8863\u670D10\uFF08\u9EC4\uFF09"
+    21300096: "\u8863\u670D10"
+    21300098: "\u88D9\u5B5010"
+    21300100: "\u8863\u670D11(\u7C89)"
+    21300102: "\u88D9\u5B5011(\u7C89)"
+    21300104: "\u8863\u670D11"
+    21300106: "\u88D9\u5B5011"
+    21300108: "\u88D9\u5B504"
+    21300110: "\u88D9\u5B505"
+    21300112: "\u88D9\u5B506"
+    21300114: "\u88D9\u5B507\uFF08\u7C89\uFF09"
+    21300116: "\u88D9\u5B507"
+    21300118: "\u88D9\u5B508"
+    21300120: "\u88D9\u5B509"
+    21300122: "\u88D9\u5B5012"
+    21300124: "\u88D9\u5B5013"
+    21300126: "\u88D9\u5B5013(\u7D2B)"
+    21300128: 2
+    21300130: 3
+    21300132: 4
+    21300134: 5
+    21300136: 6
+    21300138: 7
+    21300140: 8
+    21300142: 9
+    21300144: 10
+    21300146: 11
+    21300148: 12
+    21300150: 13
+    21300152: "\u5934\u99704"
+    21300154: "\u5934\u99705"
+    21300156: "\u5934\u99706"
+    21300158: "\u5934\u99707"
+    21300160: "\u5934\u99708"
+    21300162: "\u5934\u99709"
+    21300164: "\u5934\u997010"
+    21300166: "\u5934\u997011"
+    21300168: "\u5934\u997012"
   serializedVersion: 4
   mipmaps:
     mipMapMode: 0
@@ -19,7 +104,7 @@ TextureImporter:
     externalNormalMap: 0
     heightScale: 0.25
     normalMapFilter: 0
-  isReadable: 0
+  isReadable: 1
   grayScaleToAlpha: 0
   generateCubemap: 6
   cubemapConvolution: 0
@@ -34,7 +119,7 @@ TextureImporter:
   nPOTScale: 0
   lightmap: 0
   compressionQuality: 50
-  spriteMode: 1
+  spriteMode: 2
   spriteExtrude: 1
   spriteMeshType: 1
   alignment: 0
@@ -66,22 +151,6 @@ TextureImporter:
     crunchedCompression: 0
     allowsAlphaSplitting: 0
     overridden: 0
-  - buildTarget: iPhone
-    maxTextureSize: 2048
-    textureFormat: -1
-    textureCompression: 1
-    compressionQuality: 50
-    crunchedCompression: 0
-    allowsAlphaSplitting: 0
-    overridden: 0
-  - buildTarget: tvOS
-    maxTextureSize: 2048
-    textureFormat: -1
-    textureCompression: 1
-    compressionQuality: 50
-    crunchedCompression: 0
-    allowsAlphaSplitting: 0
-    overridden: 0
   - buildTarget: Android
     maxTextureSize: 4096
     textureFormat: -1
@@ -90,25 +159,1114 @@ TextureImporter:
     crunchedCompression: 0
     allowsAlphaSplitting: 0
     overridden: 0
-  - buildTarget: Windows Store Apps
-    maxTextureSize: 2048
-    textureFormat: -1
-    textureCompression: 1
-    compressionQuality: 50
-    crunchedCompression: 0
-    allowsAlphaSplitting: 0
-    overridden: 0
-  - buildTarget: WebGL
-    maxTextureSize: 2048
-    textureFormat: -1
-    textureCompression: 1
-    compressionQuality: 50
-    crunchedCompression: 0
-    allowsAlphaSplitting: 0
-    overridden: 0
   spriteSheet:
     serializedVersion: 2
-    sprites: []
+    sprites:
+    - serializedVersion: 2
+      name: "\u4E0A\u88632"
+      rect:
+        serializedVersion: 2
+        x: 1078
+        y: 16
+        width: 165
+        height: 111
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u4E0A\u88633"
+      rect:
+        serializedVersion: 2
+        x: 1351
+        y: 18
+        width: 165
+        height: 111
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u773C\u775B2"
+      rect:
+        serializedVersion: 2
+        x: 2740
+        y: 2017
+        width: 231
+        height: 77
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u773C\u775B3"
+      rect:
+        serializedVersion: 2
+        x: 774
+        y: 37
+        width: 220
+        height: 78
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u8111\u58F32"
+      rect:
+        serializedVersion: 2
+        x: 3048
+        y: 2478
+        width: 548
+        height: 424
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u88D9\u5B503"
+      rect:
+        serializedVersion: 2
+        x: 2090
+        y: 4
+        width: 203
+        height: 135
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u5634\u5DF42"
+      rect:
+        serializedVersion: 2
+        x: 343
+        y: 213
+        width: 56
+        height: 35
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u5634\u5DF43"
+      rect:
+        serializedVersion: 2
+        x: 2973
+        y: 2004
+        width: 54
+        height: 20
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u978B\u5B502"
+      rect:
+        serializedVersion: 2
+        x: 996
+        y: 17
+        width: 39
+        height: 48
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u978B\u5B503"
+      rect:
+        serializedVersion: 2
+        x: 3012
+        y: 2168
+        width: 26
+        height: 30
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u5934\u9970\u54C12"
+      rect:
+        serializedVersion: 2
+        x: 1281
+        y: 1126
+        width: 194
+        height: 160
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u5934\u9970\u54C13"
+      rect:
+        serializedVersion: 2
+        x: 708
+        y: 316
+        width: 383
+        height: 159
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u88D9\u5B502"
+      rect:
+        serializedVersion: 2
+        x: 1885
+        y: 1
+        width: 203
+        height: 138
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u5934\u53D14\uFF08\u7C89\u8272\uFF09"
+      rect:
+        serializedVersion: 2
+        x: 2528
+        y: 3438
+        width: 572
+        height: 657
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u5934\u53D14\uFF08\u84DD\u8272\uFF09"
+      rect:
+        serializedVersion: 2
+        x: 1954
+        y: 3438
+        width: 572
+        height: 657
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u5934\u53D14\uFF08\u7EFF\u8272\uFF09"
+      rect:
+        serializedVersion: 2
+        x: 3102
+        y: 3438
+        width: 572
+        height: 657
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u5934\u53D15\uFF08\u68D5\u8272\uFF09"
+      rect:
+        serializedVersion: 2
+        x: 712
+        y: 2499
+        width: 610
+        height: 506
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u5934\u53D15\uFF08\u7EA2\u8272\uFF09"
+      rect:
+        serializedVersion: 2
+        x: 1
+        y: 1997
+        width: 610
+        height: 506
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u5934\u53D15\uFF08\u9EC4\u8272\uFF09"
+      rect:
+        serializedVersion: 2
+        x: 2134
+        y: 2930
+        width: 610
+        height: 506
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u5934\u53D16+\u4E0B\uFF08\u68D5\uFF09"
+      rect:
+        serializedVersion: 2
+        x: 3676
+        y: 3325
+        width: 382
+        height: 770
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u5934\u53D16+\u4E0A\uFF08\u68D5\uFF09"
+      rect:
+        serializedVersion: 2
+        x: 1641
+        y: 1714
+        width: 449
+        height: 448
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u5934\u53D16+\u4E0B\uFF08\u7EFF\uFF09"
+      rect:
+        serializedVersion: 2
+        x: 3676
+        y: 2553
+        width: 382
+        height: 770
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u5934\u53D16+\u4E0A\uFF08\u7EFF\uFF09"
+      rect:
+        serializedVersion: 2
+        x: 3224
+        y: 2988
+        width: 449
+        height: 448
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u5934\u53D16+\u4E0B\uFF08\u9EC4\uFF09"
+      rect:
+        serializedVersion: 2
+        x: 1708
+        y: 2164
+        width: 382
+        height: 770
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u5934\u53D16+\u4E0A\uFF08\u9EC4\uFF09"
+      rect:
+        serializedVersion: 2
+        x: 1029
+        y: 1288
+        width: 449
+        height: 448
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u5934\u53D16+\u4E0B\uFF08\u7C89\uFF09"
+      rect:
+        serializedVersion: 2
+        x: 1324
+        y: 2164
+        width: 382
+        height: 770
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u5934\u53D16+\u4E0A\uFF08\u7C89\uFF09"
+      rect:
+        serializedVersion: 2
+        x: 479
+        y: 1089
+        width: 449
+        height: 448
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u5934\u53D17(\u6A59)"
+      rect:
+        serializedVersion: 2
+        x: 1
+        y: 3509
+        width: 649
+        height: 586
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u5934\u53D17(\u7C73\u767D)"
+      rect:
+        serializedVersion: 2
+        x: 652
+        y: 3509
+        width: 649
+        height: 586
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u5934\u53D17(\u84DD\u8272)"
+      rect:
+        serializedVersion: 2
+        x: 1303
+        y: 3509
+        width: 649
+        height: 586
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u5934\u53D18(\u7C89)"
+      rect:
+        serializedVersion: 2
+        x: 1
+        y: 2505
+        width: 709
+        height: 500
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u5934\u53D18(\u7D2B)"
+      rect:
+        serializedVersion: 2
+        x: 712
+        y: 3007
+        width: 709
+        height: 500
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u5934\u53D18(\u7EFF)"
+      rect:
+        serializedVersion: 2
+        x: 1
+        y: 3007
+        width: 709
+        height: 500
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u5934\u53D18(\u9ED1)"
+      rect:
+        serializedVersion: 2
+        x: 1423
+        y: 2936
+        width: 709
+        height: 500
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u8111\u58F31(\u68D5\u8272)"
+      rect:
+        serializedVersion: 2
+        x: 2092
+        y: 1977
+        width: 646
+        height: 391
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u8111\u58F31(\u7C89\u8272)"
+      rect:
+        serializedVersion: 2
+        x: 3048
+        y: 2003
+        width: 646
+        height: 391
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u8111\u58F32(\u7C89\u8272)"
+      rect:
+        serializedVersion: 2
+        x: 1091
+        y: 1738
+        width: 548
+        height: 424
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u8111\u58F32(\u9EC4\u8272)"
+      rect:
+        serializedVersion: 2
+        x: 479
+        y: 1539
+        width: 548
+        height: 424
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u8111\u58F32+\u4E0B\uFF08\u68D5\u8272\uFF09\u53E6\u4E00\u79CD\u53D1\u578B"
+      rect:
+        serializedVersion: 2
+        x: 2092
+        y: 2396
+        width: 476
+        height: 532
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u8111\u58F32+\u4E0B\uFF08\u7C89\u8272\uFF09\u53E6\u4E00\u79CD\u53D1\u578B"
+      rect:
+        serializedVersion: 2
+        x: 2746
+        y: 2904
+        width: 476
+        height: 532
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u8111\u58F33+\u4E0B\uFF08\u9EC4\u8272\uFF09\u8111\u58F32\u2014\u2014\u4E0B"
+      rect:
+        serializedVersion: 2
+        x: 613
+        y: 1965
+        width: 476
+        height: 532
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u8111\u58F33+\u4E0B\uFF08\u7C89\u8272\uFF09"
+      rect:
+        serializedVersion: 2
+        x: 2570
+        y: 2370
+        width: 476
+        height: 532
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u8111\u58F33+\u4E0A\uFF08\u7C89\u8272\uFF09"
+      rect:
+        serializedVersion: 2
+        x: 2092
+        y: 1589
+        width: 444
+        height: 386
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u8111\u58F33+\u4E0B\uFF08\u7D2B\u8272\uFF09"
+      rect:
+        serializedVersion: 2
+        x: 1
+        y: 1463
+        width: 476
+        height: 532
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u8111\u58F33+\u4E0A\uFF08\u7D2B\u8272\uFF09"
+      rect:
+        serializedVersion: 2
+        x: 2740
+        y: 1615
+        width: 444
+        height: 386
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u8111\u58F33+\u4E0A\uFF08\u9EC4\u8272\uFF09"
+      rect:
+        serializedVersion: 2
+        x: 1
+        y: 1075
+        width: 444
+        height: 386
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u8863\u670D10\uFF08\u9EC4\uFF09"
+      rect:
+        serializedVersion: 2
+        x: 1480
+        y: 1108
+        width: 349
+        height: 334
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u88D9\u5B5010(\u9EC4)"
+      rect:
+        serializedVersion: 2
+        x: 1351
+        y: 131
+        width: 271
+        height: 183
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u8863\u670D10"
+      rect:
+        serializedVersion: 2
+        x: 930
+        y: 952
+        width: 349
+        height: 334
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u88D9\u5B5010"
+      rect:
+        serializedVersion: 2
+        x: 1078
+        y: 130
+        width: 271
+        height: 184
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u8863\u670D11(\u7C89)"
+      rect:
+        serializedVersion: 2
+        x: 930
+        y: 649
+        width: 386
+        height: 301
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u88D9\u5B5011(\u7C89)"
+      rect:
+        serializedVersion: 2
+        x: 774
+        y: 117
+        width: 302
+        height: 197
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u8863\u670D11"
+      rect:
+        serializedVersion: 2
+        x: 447
+        y: 786
+        width: 386
+        height: 301
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u88D9\u5B5011"
+      rect:
+        serializedVersion: 2
+        x: 3186
+        y: 1804
+        width: 302
+        height: 197
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u88D9\u5B504"
+      rect:
+        serializedVersion: 2
+        x: 3490
+        y: 1859
+        width: 203
+        height: 142
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u88D9\u5B505"
+      rect:
+        serializedVersion: 2
+        x: 1091
+        y: 2181
+        width: 203
+        height: 142
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u88D9\u5B506"
+      rect:
+        serializedVersion: 2
+        x: 1091
+        y: 2325
+        width: 207
+        height: 172
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u88D9\u5B507\uFF08\u7C89\uFF09"
+      rect:
+        serializedVersion: 2
+        x: 3696
+        y: 1809
+        width: 287
+        height: 233
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u88D9\u5B507"
+      rect:
+        serializedVersion: 2
+        x: 3696
+        y: 2044
+        width: 287
+        height: 233
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u88D9\u5B508"
+      rect:
+        serializedVersion: 2
+        x: 443
+        y: 1
+        width: 329
+        height: 247
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u88D9\u5B509"
+      rect:
+        serializedVersion: 2
+        x: 1624
+        y: 129
+        width: 259
+        height: 185
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u88D9\u5B5012"
+      rect:
+        serializedVersion: 2
+        x: 1885
+        y: 141
+        width: 271
+        height: 173
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u88D9\u5B5013"
+      rect:
+        serializedVersion: 2
+        x: 1
+        y: 210
+        width: 340
+        height: 276
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u88D9\u5B5013(\u7D2B)"
+      rect:
+        serializedVersion: 2
+        x: 1
+        y: 488
+        width: 340
+        height: 276
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: 2
+      rect:
+        serializedVersion: 2
+        x: 3012
+        y: 2284
+        width: 30
+        height: 40
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: 3
+      rect:
+        serializedVersion: 2
+        x: 3012
+        y: 2242
+        width: 30
+        height: 40
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: 4
+      rect:
+        serializedVersion: 2
+        x: 3012
+        y: 2200
+        width: 30
+        height: 40
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: 5
+      rect:
+        serializedVersion: 2
+        x: 1324
+        y: 2937
+        width: 39
+        height: 68
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: 6
+      rect:
+        serializedVersion: 2
+        x: 3012
+        y: 2326
+        width: 34
+        height: 42
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: 7
+      rect:
+        serializedVersion: 2
+        x: 2973
+        y: 2026
+        width: 39
+        height: 68
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: 8
+      rect:
+        serializedVersion: 2
+        x: 1365
+        y: 2948
+        width: 35
+        height: 57
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: 9
+      rect:
+        serializedVersion: 2
+        x: 708
+        y: 252
+        width: 55
+        height: 62
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: 10
+      rect:
+        serializedVersion: 2
+        x: 1037
+        y: 22
+        width: 34
+        height: 43
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: 11
+      rect:
+        serializedVersion: 2
+        x: 401
+        y: 218
+        width: 26
+        height: 30
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: 12
+      rect:
+        serializedVersion: 2
+        x: 1037
+        y: 67
+        width: 39
+        height: 48
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: 13
+      rect:
+        serializedVersion: 2
+        x: 996
+        y: 67
+        width: 39
+        height: 48
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u5934\u99704"
+      rect:
+        serializedVersion: 2
+        x: 1
+        y: 18
+        width: 440
+        height: 190
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u5934\u99705"
+      rect:
+        serializedVersion: 2
+        x: 343
+        y: 250
+        width: 363
+        height: 225
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u5934\u99706"
+      rect:
+        serializedVersion: 2
+        x: 1480
+        y: 1444
+        width: 572
+        height: 268
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u5934\u99707"
+      rect:
+        serializedVersion: 2
+        x: 2740
+        y: 2096
+        width: 270
+        height: 272
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u5934\u99708"
+      rect:
+        serializedVersion: 2
+        x: 3696
+        y: 2279
+        width: 270
+        height: 272
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u5934\u99709"
+      rect:
+        serializedVersion: 2
+        x: 447
+        y: 477
+        width: 351
+        height: 307
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u5934\u997010"
+      rect:
+        serializedVersion: 2
+        x: 1
+        y: 766
+        width: 351
+        height: 307
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u5934\u997011"
+      rect:
+        serializedVersion: 2
+        x: 2538
+        y: 1799
+        width: 171
+        height: 176
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u5934\u997012"
+      rect:
+        serializedVersion: 2
+        x: 1281
+        y: 984
+        width: 143
+        height: 140
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
     outline: []
   spritePackingTag: 
   userData: 

+ 1 - 1
Assets/Resource/Animations/人物动画/stand_ske.json.meta

@@ -1,6 +1,6 @@
 fileFormatVersion: 2
 guid: d9cae0096b575ad439815b89ff28bbf0
-timeCreated: 1492574751
+timeCreated: 1500270729
 licenseType: Pro
 TextScriptImporter:
   userData: 

+ 1 - 1
Assets/Resource/Animations/人物动画/stand_tex.json.meta

@@ -1,6 +1,6 @@
 fileFormatVersion: 2
 guid: 05b6fcf2910d93d4886759a50c715ede
-timeCreated: 1492574751
+timeCreated: 1500270729
 licenseType: Pro
 TextScriptImporter:
   userData: 

+ 174 - 22
Assets/Resource/Animations/人物动画/stand_texture.png.meta

@@ -1,9 +1,21 @@
 fileFormatVersion: 2
-guid: 6995027a12a8c8c408231f8f9a4780d6
-timeCreated: 1497231293
+guid: 650acd38d498d664185f2a3b2cf387e9
+timeCreated: 1500274907
 licenseType: Pro
 TextureImporter:
-  fileIDToRecycleName: {}
+  fileIDToRecycleName:
+    21300000: "\u8111\u58F31"
+    21300002: "\u817F2\u4E2A\u63D0\u4F9B1\u4E2A"
+    21300004: "\u53F3\u624B\u4F60\u7684\u53F3\u624B\uFF01\uFF01"
+    21300006: "\u88D9\u5B501"
+    21300008: "\u5DE6\u624B\u770B\u6E05\u5DE6\u624B\u4F60\u7684\u5DE6\u624B\uFF01\uFF01"
+    21300010: "\u8116\u5B50"
+    21300012: "\u978B\u5B501"
+    21300014: "\u5634\u5DF41"
+    21300016: "\u773C\u775B\u8868\u60C51"
+    21300018: "\u773C\u775B1"
+    21300020: "\u5934\u9970\u54C11"
+    21300022: "\u4E0A\u88631"
   serializedVersion: 4
   mipmaps:
     mipMapMode: 0
@@ -19,7 +31,7 @@ TextureImporter:
     externalNormalMap: 0
     heightScale: 0.25
     normalMapFilter: 0
-  isReadable: 0
+  isReadable: 1
   grayScaleToAlpha: 0
   generateCubemap: 6
   cubemapConvolution: 0
@@ -34,7 +46,7 @@ TextureImporter:
   nPOTScale: 0
   lightmap: 0
   compressionQuality: 50
-  spriteMode: 1
+  spriteMode: 2
   spriteExtrude: 1
   spriteMeshType: 1
   alignment: 0
@@ -66,14 +78,6 @@ TextureImporter:
     crunchedCompression: 0
     allowsAlphaSplitting: 0
     overridden: 0
-  - buildTarget: iPhone
-    maxTextureSize: 2048
-    textureFormat: -1
-    textureCompression: 1
-    compressionQuality: 50
-    crunchedCompression: 0
-    allowsAlphaSplitting: 0
-    overridden: 0
   - buildTarget: Android
     maxTextureSize: 2048
     textureFormat: -1
@@ -82,17 +86,165 @@ TextureImporter:
     crunchedCompression: 0
     allowsAlphaSplitting: 0
     overridden: 0
-  - buildTarget: WebGL
-    maxTextureSize: 2048
-    textureFormat: -1
-    textureCompression: 1
-    compressionQuality: 50
-    crunchedCompression: 0
-    allowsAlphaSplitting: 0
-    overridden: 0
   spriteSheet:
     serializedVersion: 2
-    sprites: []
+    sprites:
+    - serializedVersion: 2
+      name: "\u8111\u58F31"
+      rect:
+        serializedVersion: 2
+        x: 1
+        y: 632
+        width: 646
+        height: 391
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u817F2\u4E2A\u63D0\u4F9B1\u4E2A"
+      rect:
+        serializedVersion: 2
+        x: 915
+        y: 466
+        width: 45
+        height: 188
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u53F3\u624B\u4F60\u7684\u53F3\u624B\uFF01\uFF01"
+      rect:
+        serializedVersion: 2
+        x: 915
+        y: 656
+        width: 62
+        height: 183
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u88D9\u5B501"
+      rect:
+        serializedVersion: 2
+        x: 649
+        y: 672
+        width: 212
+        height: 135
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u5DE6\u624B\u770B\u6E05\u5DE6\u624B\u4F60\u7684\u5DE6\u624B\uFF01\uFF01"
+      rect:
+        serializedVersion: 2
+        x: 877
+        y: 841
+        width: 86
+        height: 182
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u8116\u5B50"
+      rect:
+        serializedVersion: 2
+        x: 877
+        y: 788
+        width: 35
+        height: 51
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u978B\u5B501"
+      rect:
+        serializedVersion: 2
+        x: 863
+        y: 748
+        width: 31
+        height: 38
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u5634\u5DF41"
+      rect:
+        serializedVersion: 2
+        x: 863
+        y: 797
+        width: 12
+        height: 10
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u773C\u775B\u8868\u60C51"
+      rect:
+        serializedVersion: 2
+        x: 168
+        y: 590
+        width: 227
+        height: 40
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u773C\u775B1"
+      rect:
+        serializedVersion: 2
+        x: 649
+        y: 575
+        width: 264
+        height: 95
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u5934\u9970\u54C11"
+      rect:
+        serializedVersion: 2
+        x: 649
+        y: 809
+        width: 226
+        height: 214
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
+    - serializedVersion: 2
+      name: "\u4E0A\u88631"
+      rect:
+        serializedVersion: 2
+        x: 1
+        y: 519
+        width: 165
+        height: 111
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: -1
     outline: []
   spritePackingTag: 
   userData: 

Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
Assets/Resource/Animations/人物动画/备份/Closet_ske.json


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
Assets/Resource/Animations/人物动画/备份/Closet_tex.json


BIN
Assets/Resource/Animations/人物动画/备份/Closet_tex.png


BIN
Assets/Resource/Animations/人物动画/备份/Closet_texture.png


+ 2 - 2
Assets/Resource/Animations/人物动画/备份/Closet_tex.png.meta → Assets/Resource/Animations/人物动画/备份/Closet_texture.png.meta

@@ -1,6 +1,6 @@
 fileFormatVersion: 2
-guid: f7ec5bfaa08d6494a93522a4a9241b5f
-timeCreated: 1500011345
+guid: 77808ea59e5a24840af8ed992ade4f34
+timeCreated: 1500255998
 licenseType: Pro
 TextureImporter:
   fileIDToRecycleName: {}

BIN
Assets/Resource/Logo.unity


BIN
Assets/Resource/Prefab/Object/DebugMode.prefab


BIN
Assets/Resource/Prefab/PrefabUI/GroupC.prefab


+ 38 - 3
Assets/Resource/XML/Config/dressRoom_config.xml

@@ -32,15 +32,50 @@
   <item id="31" jump_frequency="" type="3" index="0" bodypart="2" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" spriteName="裙子1" armatureName="裙子1" />
   <item id="32" jump_frequency="" type="3" index="1" bodypart="2" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" spriteName="裙子2" armatureName="裙子2" />
   <item id="33" jump_frequency="" type="3" index="2" bodypart="2" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" spriteName="裙子3" armatureName="裙子3" />
-  <item id="34" jump_frequency="" type="3" index="3" bodypart="3" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="" icon1offset="" spriteName="鞋子1" armatureName="鞋子1" />
-  <item id="35" jump_frequency="" type="3" index="4" bodypart="3" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="" icon1offset="" spriteName="鞋子2" armatureName="鞋子2" />
-  <item id="36" jump_frequency="" type="3" index="5" bodypart="3" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="" icon1offset="" spriteName="鞋子3" armatureName="鞋子3" />
+  <item id="34" jump_frequency="" type="3" index="17" bodypart="3" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="" icon1offset="" spriteName="鞋子1" armatureName="鞋子1" />
+  <item id="35" jump_frequency="" type="3" index="18" bodypart="3" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="" icon1offset="" spriteName="鞋子2" armatureName="鞋子2" />
+  <item id="36" jump_frequency="" type="3" index="21" bodypart="3" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="" icon1offset="" spriteName="鞋子3" armatureName="鞋子3" />
   <item id="37" jump_frequency="" type="4" index="0" bodypart="4" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" spriteName="头饰品1" armatureName="头饰品1" />
   <item id="38" jump_frequency="" type="4" index="1" bodypart="4" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" spriteName="头饰品2" armatureName="头饰品2" />
   <item id="39" jump_frequency="" type="4" index="2" bodypart="4" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" spriteName="头饰品3" armatureName="头饰品3" />
   <item id="40" jump_frequency="" type="2" index="0" bodypart="5" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" spriteName="上衣1" armatureName="上衣1" />
   <item id="41" jump_frequency="" type="2" index="1" bodypart="5" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" spriteName="上衣2" armatureName="上衣2" />
   <item id="42" jump_frequency="" type="2" index="2" bodypart="5" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" spriteName="上衣3" armatureName="上衣3" />
+  <item id="43" jump_frequency="" type="3" index="3" bodypart="2" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" spriteName="裙子4" armatureName="裙子4" />
+  <item id="44" jump_frequency="" type="3" index="4" bodypart="2" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="94" iconOffset="" icon1offset="" spriteName="裙子5" armatureName="裙子5" />
+  <item id="45" jump_frequency="" type="3" index="5" bodypart="2" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="92" iconOffset="-3.75" icon1offset="" spriteName="裙子6" armatureName="裙子6" />
+  <item id="46" jump_frequency="" type="3" index="6" bodypart="2" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="-5.5" icon1offset="" spriteName="裙子7" armatureName="裙子7" />
+  <item id="47" jump_frequency="" type="3" index="7" bodypart="2" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="-5.5" icon1offset="" spriteName="裙子7(粉)" armatureName="裙子7(粉)" />
+  <item id="48" jump_frequency="" type="3" index="8" bodypart="2" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="116" iconOffset="-8" icon1offset="" spriteName="裙子8" armatureName="裙子8" />
+  <item id="49" jump_frequency="" type="3" index="9" bodypart="2" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" spriteName="裙子9" armatureName="裙子9" />
+  <item id="50" jump_frequency="" type="3" index="10" bodypart="2" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="80" iconOffset="" icon1offset="-2,-0.06" spriteName="裙子10,衣服10" armatureName="裙子10" />
+  <item id="51" jump_frequency="" type="3" index="11" bodypart="2" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="80" iconOffset="" icon1offset="-2,-0.06" spriteName="裙子10(黄),衣服10(黄)" armatureName="裙子10(黄)" />
+  <item id="52" jump_frequency="" type="3" index="12" bodypart="2" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="85" iconOffset="" icon1offset="11.96,-14.87" spriteName="裙子11,衣服11" armatureName="裙子11" />
+  <item id="53" jump_frequency="" type="3" index="13" bodypart="2" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="85" iconOffset="" icon1offset="11.96,-14.87" spriteName="裙子11(粉),衣服11(粉)" armatureName="裙子11(粉)" />
+  <item id="54" jump_frequency="" type="3" index="14" bodypart="2" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" spriteName="裙子12" armatureName="裙子12" />
+  <item id="55" jump_frequency="" type="3" index="15" bodypart="2" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" spriteName="裙子13" armatureName="裙子13" />
+  <item id="56" jump_frequency="" type="3" index="16" bodypart="2" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" spriteName="裙子13(紫)" armatureName="裙子13(紫)" />
+  <item id="57" jump_frequency="" type="3" index="23" bodypart="3" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="" icon1offset="" spriteName="2" armatureName="鞋子4" />
+  <item id="58" jump_frequency="" type="3" index="24" bodypart="3" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="" icon1offset="" spriteName="3" armatureName="鞋子5" />
+  <item id="59" jump_frequency="" type="3" index="25" bodypart="3" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="" icon1offset="" spriteName="4" armatureName="鞋子6" />
+  <item id="60" jump_frequency="" type="3" index="26" bodypart="3" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="" icon1offset="" spriteName="5" armatureName="鞋子7" />
+  <item id="61" jump_frequency="" type="3" index="28" bodypart="3" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="" icon1offset="" spriteName="6" armatureName="鞋子8" />
+  <item id="62" jump_frequency="" type="3" index="24" bodypart="3" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="" icon1offset="" spriteName="7" armatureName="鞋子9" />
+  <item id="63" jump_frequency="" type="3" index="29" bodypart="3" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="" icon1offset="" spriteName="8" armatureName="鞋子10" />
+  <item id="64" jump_frequency="" type="3" index="30" bodypart="3" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="" icon1offset="" spriteName="9" armatureName="鞋子11" />
+  <item id="65" jump_frequency="" type="3" index="31" bodypart="3" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="" icon1offset="" spriteName="10" armatureName="鞋子12" />
+  <item id="66" jump_frequency="" type="3" index="20" bodypart="3" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="" icon1offset="" spriteName="11" armatureName="鞋子13" />
+  <item id="67" jump_frequency="" type="3" index="19" bodypart="3" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="" icon1offset="" spriteName="12" armatureName="鞋子14" />
+  <item id="68" jump_frequency="" type="3" index="20" bodypart="3" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="" icon1offset="" spriteName="13" armatureName="鞋子15" />
+  <item id="69" jump_frequency="" type="4" index="3" bodypart="4" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" spriteName="头饰4" armatureName="头饰4" />
+  <item id="70" jump_frequency="" type="4" index="3" bodypart="4" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" spriteName="头饰5" armatureName="头饰5" />
+  <item id="71" jump_frequency="" type="4" index="3" bodypart="4" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" spriteName="头饰6" armatureName="头饰6" />
+  <item id="72" jump_frequency="" type="4" index="3" bodypart="4" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" spriteName="头饰7" armatureName="头饰7" />
+  <item id="73" jump_frequency="" type="4" index="3" bodypart="4" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" spriteName="头饰8" armatureName="头饰8" />
+  <item id="74" jump_frequency="" type="4" index="3" bodypart="4" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" spriteName="头饰9" armatureName="头饰9" />
+  <item id="75" jump_frequency="" type="4" index="3" bodypart="4" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" spriteName="头饰10" armatureName="头饰10" />
+  <item id="76" jump_frequency="" type="4" index="3" bodypart="4" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" spriteName="头饰11" armatureName="头饰11" />
+  <item id="77" jump_frequency="" type="4" index="3" bodypart="4" level="" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" spriteName="头饰12" armatureName="头饰12" />
   <comment>
     <id>
 id

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

@@ -434,5 +434,40 @@
     <Armature40 desc=""><![CDATA[服装的说明]]></Armature40>
     <Armature41 desc=""><![CDATA[服装的说明]]></Armature41>
     <Armature42 desc=""><![CDATA[服装的说明]]></Armature42>
+    <Armature43 desc=""><![CDATA[服装的说明]]></Armature43>
+    <Armature44 desc=""><![CDATA[服装的说明]]></Armature44>
+    <Armature45 desc=""><![CDATA[服装的说明]]></Armature45>
+    <Armature46 desc=""><![CDATA[服装的说明]]></Armature46>
+    <Armature47 desc=""><![CDATA[服装的说明]]></Armature47>
+    <Armature48 desc=""><![CDATA[服装的说明]]></Armature48>
+    <Armature49 desc=""><![CDATA[服装的说明]]></Armature49>
+    <Armature50 desc=""><![CDATA[服装的说明]]></Armature50>
+    <Armature51 desc=""><![CDATA[服装的说明]]></Armature51>
+    <Armature52 desc=""><![CDATA[服装的说明]]></Armature52>
+    <Armature53 desc=""><![CDATA[服装的说明]]></Armature53>
+    <Armature54 desc=""><![CDATA[服装的说明]]></Armature54>
+    <Armature55 desc=""><![CDATA[服装的说明]]></Armature55>
+    <Armature56 desc=""><![CDATA[服装的说明]]></Armature56>
+    <Armature57 desc=""><![CDATA[服装的说明]]></Armature57>
+    <Armature58 desc=""><![CDATA[服装的说明]]></Armature58>
+    <Armature59 desc=""><![CDATA[服装的说明]]></Armature59>
+    <Armature60 desc=""><![CDATA[服装的说明]]></Armature60>
+    <Armature61 desc=""><![CDATA[服装的说明]]></Armature61>
+    <Armature62 desc=""><![CDATA[服装的说明]]></Armature62>
+    <Armature63 desc=""><![CDATA[服装的说明]]></Armature63>
+    <Armature64 desc=""><![CDATA[服装的说明]]></Armature64>
+    <Armature65 desc=""><![CDATA[服装的说明]]></Armature65>
+    <Armature66 desc=""><![CDATA[服装的说明]]></Armature66>
+    <Armature67 desc=""><![CDATA[服装的说明]]></Armature67>
+    <Armature68 desc=""><![CDATA[服装的说明]]></Armature68>
+    <Armature69 desc=""><![CDATA[服装的说明]]></Armature69>
+    <Armature70 desc=""><![CDATA[服装的说明]]></Armature70>
+    <Armature71 desc=""><![CDATA[服装的说明]]></Armature71>
+    <Armature72 desc=""><![CDATA[服装的说明]]></Armature72>
+    <Armature73 desc=""><![CDATA[服装的说明]]></Armature73>
+    <Armature74 desc=""><![CDATA[服装的说明]]></Armature74>
+    <Armature75 desc=""><![CDATA[服装的说明]]></Armature75>
+    <Armature76 desc=""><![CDATA[服装的说明]]></Armature76>
+    <Armature77 desc=""><![CDATA[服装的说明]]></Armature77>
   </DressRoom>
 </lan>

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

@@ -434,5 +434,40 @@
     <Armature40 desc=""><![CDATA[]]></Armature40>
     <Armature41 desc=""><![CDATA[]]></Armature41>
     <Armature42 desc=""><![CDATA[]]></Armature42>
+    <Armature43 desc=""><![CDATA[]]></Armature43>
+    <Armature44 desc=""><![CDATA[]]></Armature44>
+    <Armature45 desc=""><![CDATA[]]></Armature45>
+    <Armature46 desc=""><![CDATA[]]></Armature46>
+    <Armature47 desc=""><![CDATA[]]></Armature47>
+    <Armature48 desc=""><![CDATA[]]></Armature48>
+    <Armature49 desc=""><![CDATA[]]></Armature49>
+    <Armature50 desc=""><![CDATA[]]></Armature50>
+    <Armature51 desc=""><![CDATA[]]></Armature51>
+    <Armature52 desc=""><![CDATA[]]></Armature52>
+    <Armature53 desc=""><![CDATA[]]></Armature53>
+    <Armature54 desc=""><![CDATA[]]></Armature54>
+    <Armature55 desc=""><![CDATA[]]></Armature55>
+    <Armature56 desc=""><![CDATA[]]></Armature56>
+    <Armature57 desc=""><![CDATA[]]></Armature57>
+    <Armature58 desc=""><![CDATA[]]></Armature58>
+    <Armature59 desc=""><![CDATA[]]></Armature59>
+    <Armature60 desc=""><![CDATA[]]></Armature60>
+    <Armature61 desc=""><![CDATA[]]></Armature61>
+    <Armature62 desc=""><![CDATA[]]></Armature62>
+    <Armature63 desc=""><![CDATA[]]></Armature63>
+    <Armature64 desc=""><![CDATA[]]></Armature64>
+    <Armature65 desc=""><![CDATA[]]></Armature65>
+    <Armature66 desc=""><![CDATA[]]></Armature66>
+    <Armature67 desc=""><![CDATA[]]></Armature67>
+    <Armature68 desc=""><![CDATA[]]></Armature68>
+    <Armature69 desc=""><![CDATA[]]></Armature69>
+    <Armature70 desc=""><![CDATA[]]></Armature70>
+    <Armature71 desc=""><![CDATA[]]></Armature71>
+    <Armature72 desc=""><![CDATA[]]></Armature72>
+    <Armature73 desc=""><![CDATA[]]></Armature73>
+    <Armature74 desc=""><![CDATA[]]></Armature74>
+    <Armature75 desc=""><![CDATA[]]></Armature75>
+    <Armature76 desc=""><![CDATA[]]></Armature76>
+    <Armature77 desc=""><![CDATA[]]></Armature77>
   </DressRoom>
 </lan>

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

@@ -434,5 +434,40 @@ Increase all Coin prudoction by [&coin_person&](permanently)]]></Pack6>
     <Armature40 desc=""><![CDATA[]]></Armature40>
     <Armature41 desc=""><![CDATA[]]></Armature41>
     <Armature42 desc=""><![CDATA[]]></Armature42>
+    <Armature43 desc=""><![CDATA[]]></Armature43>
+    <Armature44 desc=""><![CDATA[]]></Armature44>
+    <Armature45 desc=""><![CDATA[]]></Armature45>
+    <Armature46 desc=""><![CDATA[]]></Armature46>
+    <Armature47 desc=""><![CDATA[]]></Armature47>
+    <Armature48 desc=""><![CDATA[]]></Armature48>
+    <Armature49 desc=""><![CDATA[]]></Armature49>
+    <Armature50 desc=""><![CDATA[]]></Armature50>
+    <Armature51 desc=""><![CDATA[]]></Armature51>
+    <Armature52 desc=""><![CDATA[]]></Armature52>
+    <Armature53 desc=""><![CDATA[]]></Armature53>
+    <Armature54 desc=""><![CDATA[]]></Armature54>
+    <Armature55 desc=""><![CDATA[]]></Armature55>
+    <Armature56 desc=""><![CDATA[]]></Armature56>
+    <Armature57 desc=""><![CDATA[]]></Armature57>
+    <Armature58 desc=""><![CDATA[]]></Armature58>
+    <Armature59 desc=""><![CDATA[]]></Armature59>
+    <Armature60 desc=""><![CDATA[]]></Armature60>
+    <Armature61 desc=""><![CDATA[]]></Armature61>
+    <Armature62 desc=""><![CDATA[]]></Armature62>
+    <Armature63 desc=""><![CDATA[]]></Armature63>
+    <Armature64 desc=""><![CDATA[]]></Armature64>
+    <Armature65 desc=""><![CDATA[]]></Armature65>
+    <Armature66 desc=""><![CDATA[]]></Armature66>
+    <Armature67 desc=""><![CDATA[]]></Armature67>
+    <Armature68 desc=""><![CDATA[]]></Armature68>
+    <Armature69 desc=""><![CDATA[]]></Armature69>
+    <Armature70 desc=""><![CDATA[]]></Armature70>
+    <Armature71 desc=""><![CDATA[]]></Armature71>
+    <Armature72 desc=""><![CDATA[]]></Armature72>
+    <Armature73 desc=""><![CDATA[]]></Armature73>
+    <Armature74 desc=""><![CDATA[]]></Armature74>
+    <Armature75 desc=""><![CDATA[]]></Armature75>
+    <Armature76 desc=""><![CDATA[]]></Armature76>
+    <Armature77 desc=""><![CDATA[]]></Armature77>
   </DressRoom>
 </lan>

BIN
Assets/Resource/Xlsx/dressRoom_config.xlsx


BIN
Assets/Resource/Xlsx/language_config.xlsx


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

@@ -5,6 +5,7 @@ using UnityEngine.UI;
 using System.IO;
 using System.Collections;
 using System.Collections.Generic;
+using LitJson;
 
 [CustomEditor(typeof(Auxiliary))]
 public class EditorAuxiliary : Editor 
@@ -106,6 +107,50 @@ public class EditorAuxiliary : Editor
 
             //EditorUtility.SetDirty(Script.ClipNew);
         }
+
+        if (GUILayout.Button("SliceByDragonboneData"))
+        {
+            SliceByDragonboneData();
+        }
+    }
+
+
+    private void SliceByDragonboneData()
+    {
+        string assetPath = AssetDatabase.GetAssetPath(Script.Texture);
+
+        TextureImporter textureImporter = (TextureImporter) AssetImporter.GetAtPath(assetPath);
+
+
+        JsonData jsonData = JsonMapper.ToObject(Script.TextAsset.text);
+
+        jsonData = jsonData["SubTexture"];
+
+        List<SpriteMetaData>spriteMetaDataList = new List<SpriteMetaData>();
+
+        for (int i = 0; i < jsonData.Count; i++)
+        {
+            SpriteMetaData spriteMetaData = new SpriteMetaData();
+
+            int x = int.Parse(jsonData[i].Inst_Object["x"].ToJson().Trim('"'));
+            int y = int.Parse(jsonData[i].Inst_Object["y"].ToJson().Trim('"'));
+            int width = int.Parse(jsonData[i].Inst_Object["width"].ToJson().Trim('"'));
+            int height = int.Parse(jsonData[i].Inst_Object["height"].ToJson().Trim('"'));
+            string spriteName = jsonData[i].Inst_Object["name"].ToJson().Trim('"');
+
+            spriteMetaData.rect = new Rect(x, Script.Texture.width - y - height, width, height);
+            spriteMetaData.name = spriteName;
+
+            spriteMetaDataList.Add(spriteMetaData);
+        }
+
+
+        textureImporter.spritesheet = spriteMetaDataList.ToArray();
+
+        textureImporter.textureType = TextureImporterType.Sprite;
+        textureImporter.spriteImportMode = SpriteImportMode.Multiple;
+
+        textureImporter.SaveAndReimport();
     }
 
 

+ 0 - 83
Assets/Script/Extension/ExtensionList.cs

@@ -1,83 +0,0 @@
-using UnityEngine;
-
-using System.Collections;
-using System.Collections.Generic;
-
-public static class ExtensionList
-{
-    public static T Last<T>(this List<T> list, int index, bool remove = false)
-    {
-        T t = list[list.Count - 1 - index];
-
-        if (remove)
-        {
-            list.RemoveAt(list.Count - 1 - index);
-        }
-
-        return t;
-    }
-
-    public static T Prev<T>(this List<T> list, int index)
-    {
-        return list[(index + list.Count - 1) % list.Count];
-    }
-
-    public static T Next<T>(this List<T> list, int index)
-    {
-        return list[(index + 1) % list.Count];
-    }
-
-    public static T Random<T>(this List<T> list, bool remove = false)
-    {
-        if (list.Count == 0)
-        {
-            Debug.Log("Count is 0");
-        }
-
-        int index = UnityEngine.Random.Range(0, list.Count);
-
-        if (remove)
-        {
-            T result = list[index];
-
-            list.RemoveAt(index);
-
-            return result;
-        }
-        else
-        {
-            return list[index];
-        }
-    }
-
-    public static bool Valid<T>(this List<T> list)
-    {
-        if (list == null || list.Count == 0)
-        {
-            return false;
-        }
-        else
-        {
-            return true;
-        }
-    }
-
-    public static bool UniqueAdd<T>(this List<T> list, T obj)
-    {
-        if (list.Contains(obj) == false)
-        {
-            list.Add(obj);
-
-            return true;
-        }
-        else
-        {
-            return false;
-        }
-    }
-
-    public static void LastRemoveAt<T>(this List<T> list, int index)
-    {
-        list.RemoveAt(list.Count - 1 - index);
-    }
-}

+ 47 - 14
Assets/Script/Manage/ManaPlayer.cs

@@ -1,5 +1,9 @@
 using DragonBones;
 
+#if UNITY_EDITOR
+using UnityEditor;
+#endif
+
 using UnityEngine;
 using UnityEngine.UI;
 
@@ -11,6 +15,7 @@ using System.Collections;
 using System.Diagnostics;
 using System.Collections.Generic;
 
+using Object = UnityEngine.Object;
 using Transform = UnityEngine.Transform;
 
 public class ManaPlayer : Regist 
@@ -124,33 +129,61 @@ public class ManaPlayer : Regist
         DressRoomInitialized = true;
 
 
-        #region Sprite
+        if (Initializer.Instance.DebugMode)
+        {
+            #if UNITY_EDITOR
 
-        List<List<TextureAtlasData>> textureAtlasDatalist = UnityFactory.factory.GetAllTextureAtlasData().Values.ToList();
+            string assetPath = AssetDatabase.GetAssetPath(ManaReso.Load<Texture2D>("stand_texture", Folder.Scene));
 
-        for (int i = 0; i < textureAtlasDatalist.Count; i++)
-        {
-            for (int j = 0; j < textureAtlasDatalist[i].Count; j++)
-            {
-                TextureAtlasData textureAtlasData = textureAtlasDatalist[i][j];
+            Object[] objects = AssetDatabase.LoadAllAssetsAtPath(assetPath);
 
-                string textureName = textureAtlasData.imagePath.Split('.')[0] + "ture";
+            for (int i = 0; i < objects.Length; i++)
+            {
+                Sprite sprite = objects[i] as Sprite;
 
-                foreach (var kv in textureAtlasData.textures)
+                if (sprite != null)
                 {
-                    Texture2D texture2D = UnityFactory.AtlasDictionary[textureName];
+                    CloseSpriteDic.Add(sprite.name, sprite);
+                }
+            }
+
+            assetPath = AssetDatabase.GetAssetPath(ManaReso.Load<Texture2D>("Closet_texture", Folder.Scene));
 
-                    Rect rect = new Rect(kv.Value.region.x, texture2D.height - kv.Value.region.y - kv.Value.region.height, kv.Value.region.width, kv.Value.region.height);
+            objects = AssetDatabase.LoadAllAssetsAtPath(assetPath);
 
-                    Sprite sprite = Sprite.Create(texture2D, rect, new Vector2(0.5f, 0.5f));
-                    sprite.name = kv.Value.name;
+            for (int i = 0; i < objects.Length; i++)
+            {
+                Sprite sprite = objects[i] as Sprite;
 
+                if (sprite != null)
+                {
                     CloseSpriteDic.Add(sprite.name, sprite);
                 }
             }
+
+            #endif
+        }
+        else
+        {
+            Object[] objects = Bundle.Scene.LoadAssetWithSubAssets("stand_texture", typeof(Sprite));
+
+            for (int i = 0; i < objects.Length; i++)
+            {
+                Sprite sprite = (Sprite)objects[i];
+
+                CloseSpriteDic.Add(sprite.name, sprite);
+            }
+
+            objects = Bundle.Scene.LoadAssetWithSubAssets("Closet_texture", typeof(Sprite));
+
+            for (int i = 0; i < objects.Length; i++)
+            {
+                Sprite sprite = (Sprite)objects[i];
+
+                CloseSpriteDic.Add(sprite.name, sprite);
+            }
         }
 
-        #endregion
 
         List<XmlAttributeCollection> attributeList = ManaData.GetDressRoomConfig();
 

+ 1 - 1
Assets/Script/Object/Garden.cs

@@ -225,7 +225,7 @@ public class Garden : Regist, IDragHandler, IPointerClickHandler, IEndDragHandle
                     }
                     else
                     {
-                        float ratio = Mathf.Abs(GardenPage.position.x - PagePos.Last(1).x)/0.7f;
+                        float ratio = Mathf.Abs(GardenPage.position.x - PagePos.Back(1).x)/0.7f;
 
                         float sensi = Mathf.Lerp(SlideSensi, 0, ratio);
 

+ 33 - 16
Assets/Script/Object/Player.cs

@@ -724,13 +724,15 @@ public class Player : Regist , IPointerClickHandler
     {
         Build();
 
-        ChangeClose(BodyPart.Eye, "眼睛3");
-        ChangeClose(BodyPart.Top, "上衣3");
-        ChangeClose(BodyPart.Shoe, "鞋子3");
-        ChangeClose(BodyPart.Head, "脑壳3");
-        ChangeClose(BodyPart.Dress, "裙子3");
-        ChangeClose(BodyPart.Mouse, "嘴巴3");
-        ChangeClose(BodyPart.Headwear, "头饰品3");
+        ChangeClose(BodyPart.Eye, "眼睛3", false);
+        ChangeClose(BodyPart.Top, "上衣3", false);
+        ChangeClose(BodyPart.Shoe, "鞋子3", false);
+        ChangeClose(BodyPart.Head, "脑壳3(粉色)", false);
+        ChangeClose(BodyPart.Dress, "裙子3", false);
+        ChangeClose(BodyPart.Mouse, "嘴巴3", false);
+        ChangeClose(BodyPart.Headwear, "头饰品3", false);
+
+        ResetDepth();
 
         return UAC;
     }
@@ -748,13 +750,15 @@ public class Player : Regist , IPointerClickHandler
     {
         Build();
 
-        ChangeClose(BodyPart.Eye, "眼睛2");
-        ChangeClose(BodyPart.Top, "上衣2");
-        ChangeClose(BodyPart.Shoe, "鞋子2");
-        ChangeClose(BodyPart.Head, "脑壳2");
-        ChangeClose(BodyPart.Dress, "裙子2");
-        ChangeClose(BodyPart.Mouse, "嘴巴2");
-        ChangeClose(BodyPart.Headwear, "头饰品2");
+        ChangeClose(BodyPart.Eye, "眼睛2", false);
+        ChangeClose(BodyPart.Top, "上衣2", false);
+        ChangeClose(BodyPart.Shoe, "鞋子2", false);
+        ChangeClose(BodyPart.Head, "脑壳2(棕色)", false);
+        ChangeClose(BodyPart.Dress, "裙子2", false);
+        ChangeClose(BodyPart.Mouse, "嘴巴2", false);
+        ChangeClose(BodyPart.Headwear, "头饰品2", false);
+
+        ResetDepth();
 
         return UAC;
     }
@@ -766,20 +770,33 @@ public class Player : Regist , IPointerClickHandler
         
         transform.FindChild("Armature/" + Eye).SetLZ(-0.001f);
         transform.FindChild("Armature/" + Top).SetLZ(-0.003f);
-        transform.FindChild("Armature/" + Dress).SetLZ(-0.002f);
         transform.FindChild("Armature/" + Mouse).SetLZ(-0.001f);
         transform.FindChild("Armature/" + HeadWear).SetLZ(-0.001f);
 
         Transform tempTra = transform.FindChild("Armature/" + Head);
 
         tempTra.SetLZ(0);
-        tempTra.GetChild(0).SetLZ(0.002f);
+        if (tempTra.childCount > 1)
+        {
+            tempTra.GetChild(0).SetLZ(0.002f);
+        }
+
+
+        tempTra = transform.FindChild("Armature/" + Dress);
+
+        tempTra.SetLZ(-0.002f);
+        if (tempTra.childCount > 1)
+        {
+            tempTra.GetChild(0).SetLZ(0.001f);
+        }
+
 
         tempTra = transform.FindChild("Armature/" + Shoe);
         tempTra.SetLZ(-0.001f);
 
         transform.FindChild("Armature").GetChild(tempTra.GetSiblingIndex() + 1).SetLZ(-0.001f);
 
+
         transform.FindChild("Armature/左腿").SetLZ(0);
         transform.FindChild("Armature/右腿").SetLZ(0);
         transform.FindChild("Armature/脖子").SetLZ(0.001f);

+ 2 - 2
Assets/Script/Object/Skill/Ability.cs

@@ -324,7 +324,7 @@ public class Ability : SkillRoot
 
             Flower flower = ManaGarden.PlantList.Random().Flower;
 
-            flower.GetElf(ManaGarden.ElfList.Last(0), 0, 0, 0, 0);
+            flower.GetElf(ManaGarden.ElfList.Back(0), 0, 0, 0, 0);
 
 
             ManaReso.Get("Fe_Info").TweenBacCG();
@@ -338,7 +338,7 @@ public class Ability : SkillRoot
                 EventType.BackwardFinish,
                 () =>
                 {
-                    ManaReso.Get("MainCamera").Zoom2D(1.5f, 3f, 1, flower.ElfList.Last(0), Curve.EaseOutQuad);
+                    ManaReso.Get("MainCamera").Zoom2D(1.5f, 3f, 1, flower.ElfList.Back(0), Curve.EaseOutQuad);
                 }
             );
         }

+ 34 - 34
Assets/Script/Tool/Anim/StreamScale.cs

@@ -89,7 +89,7 @@ public class StreamScale : StreamRoot
         {
             if (Consecutive)
             {
-                if (Target.localScale.Equal(DestList.Last(0)))
+                if (Target.localScale.Equal(DestList.Back(0)))
                 {
                     InDestination_ = true;
                 }
@@ -100,7 +100,7 @@ public class StreamScale : StreamRoot
             }
             else
             {
-                if (Target.localScale.Equal(DestKvList.Last(0).Value))
+                if (Target.localScale.Equal(DestKvList.Back(0).Value))
                 {
                     InDestination_ = true;
                 }
@@ -126,11 +126,11 @@ public class StreamScale : StreamRoot
             {
                 if (Consecutive)
                 {
-                    Target.localScale = DestList.Last(0);
+                    Target.localScale = DestList.Back(0);
                 }
                 else
                 {
-                    Target.localScale = DestKvList.Last(0).Value;
+                    Target.localScale = DestKvList.Back(0).Value;
                 }
 
                 ForwardFinish();
@@ -331,28 +331,28 @@ public class StreamScale : StreamRoot
 
             if (Consecutive)
             {
-                TempDest = DestList.Last(Phase - 1);
-                TempOrigin = DestList.Last(Phase);
-                TempDuration = DurationList.Last(Phase - 1);
+                TempDest = DestList.Back(Phase - 1);
+                TempOrigin = DestList.Back(Phase);
+                TempDuration = DurationList.Back(Phase - 1);
 
                 TempDelta = TempDest - TempOrigin;
 
                 if (Phase != DestList.Count - 1)
                 {
-                    TempDelay = DelayList.Last(Phase - 1);
+                    TempDelay = DelayList.Back(Phase - 1);
                 }
             }
             else
             {
-                TempDest = DestKvList.Last(Phase).Key;
-                TempOrigin = DestKvList.Last(Phase).Value;
-                TempDuration = DurationList.Last(Phase);
+                TempDest = DestKvList.Back(Phase).Key;
+                TempOrigin = DestKvList.Back(Phase).Value;
+                TempDuration = DurationList.Back(Phase);
 
                 TempDelta = TempDest - TempOrigin;
 
                 if (Phase != DestKvList.Count - 1)
                 {
-                    TempDelay = DelayList.Last(Phase);
+                    TempDelay = DelayList.Back(Phase);
                 }
             }
 
@@ -363,25 +363,25 @@ public class StreamScale : StreamRoot
             if (Consecutive)
             {
                 Phase = 1;
-                TempDest = DestList.Last(1);
-                TempDelay = DelayList.Last(0);
-                TempOrigin = DestList.Last(0);
-                TempDuration = DurationList.Last(0);
+                TempDest = DestList.Back(1);
+                TempDelay = DelayList.Back(0);
+                TempOrigin = DestList.Back(0);
+                TempDuration = DurationList.Back(0);
             }
             else
             {
                 Phase = 0;
-                TempDest = DestKvList.Last(0).Key;
-                TempDelay = DelayList.Last(0);
-                TempOrigin = DestKvList.Last(0).Value;
-                TempDuration = DurationList.Last(0);
+                TempDest = DestKvList.Back(0).Key;
+                TempDelay = DelayList.Back(0);
+                TempOrigin = DestKvList.Back(0).Value;
+                TempDuration = DurationList.Back(0);
             }
 
             TempDelta = TempDest - TempOrigin;
 
             if (StartActionList.Valid())
             {
-                StartActionList.Last(0).SafeInvoke();
+                StartActionList.Back(0).SafeInvoke();
             }
         }
 
@@ -401,7 +401,7 @@ public class StreamScale : StreamRoot
 
                 if (FinishActionList.Valid())
                 {
-                    FinishActionList.Last(0).SafeInvoke();
+                    FinishActionList.Back(0).SafeInvoke();
                 }
 
                 if (OnForwardFinish != null)
@@ -545,38 +545,38 @@ public class StreamScale : StreamRoot
 
                 if (Consecutive)
                 {
-                    TempDest = DestList.Last(Phase - 1);
-                    TempOrigin = DestList.Last(Phase);
-                    TempDuration = DurationList.Last(Phase - 1);
+                    TempDest = DestList.Back(Phase - 1);
+                    TempOrigin = DestList.Back(Phase);
+                    TempDuration = DurationList.Back(Phase - 1);
 
                     TempDelta = TempDest - TempOrigin;
 
                     if (Phase != DestList.Count - 1)
                     {
-                        TempDelay = DelayList.Last(Phase - 1);
+                        TempDelay = DelayList.Back(Phase - 1);
                     }
 
                     if (StartActionList.Valid())
                     {
-                        StartActionList.Last(Phase - 1).SafeInvoke();
+                        StartActionList.Back(Phase - 1).SafeInvoke();
                     }
                 }
                 else
                 {
-                    TempDest = DestKvList.Last(Phase).Key;
-                    TempOrigin = DestKvList.Last(Phase).Value;
-                    TempDuration = DurationList.Last(Phase);
+                    TempDest = DestKvList.Back(Phase).Key;
+                    TempOrigin = DestKvList.Back(Phase).Value;
+                    TempDuration = DurationList.Back(Phase);
 
                     TempDelta = TempDest - TempOrigin;
 
                     if (Phase != DestKvList.Count - 1)
                     {
-                        TempDelay = DelayList.Last(Phase);
+                        TempDelay = DelayList.Back(Phase);
                     }
 
                     if (StartActionList.Valid())
                     {
-                        StartActionList.Last(Phase).SafeInvoke();
+                        StartActionList.Back(Phase).SafeInvoke();
                     }
                 }
 
@@ -590,14 +590,14 @@ public class StreamScale : StreamRoot
                     {
                         if (FinishActionList.Valid())
                         {
-                            FinishActionList.Last(Phase - 1).SafeInvoke();
+                            FinishActionList.Back(Phase - 1).SafeInvoke();
                         }
                     }
                     else
                     {
                         if (FinishActionList.Valid())
                         {
-                            FinishActionList.Last(Phase).SafeInvoke();
+                            FinishActionList.Back(Phase).SafeInvoke();
                         }
                     }
                 }

+ 9 - 0
Assets/Script/Tool/AtlasUtil.meta

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

+ 41 - 0
Assets/Script/Tool/AtlasUtil/AtlasUtil.cs

@@ -0,0 +1,41 @@
+using UnityEngine;
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+
+public class AtlasUtil : MonoBehaviour
+{
+    [Serializable]
+    public class VirtualTexture
+    {
+        public int Width;
+        public int Height;
+        public string Name;
+    }
+
+	#region 变量
+
+    public TextAsset DragonboneJson;
+    public Texture2D Texture;
+
+    public int Padding;
+    public int MaxSize;
+    public string BuildPath = "Assets";
+    public string BuildName = "TextureName";
+    public TextureFormat TextureFormat = TextureFormat.RGBA32;
+    public List<Texture2D> TextureList = new List<Texture2D>();
+    public List<VirtualTexture> VirtualTextureList = new List<VirtualTexture>();
+
+    #endregion
+
+    private void Awake()
+    {
+       
+    }
+	
+	private void FixedUpdate()
+    {
+		
+	}
+}

+ 2 - 2
Assets/Script/Extension/ExtensionList.cs.meta → Assets/Script/Tool/AtlasUtil/AtlasUtil.cs.meta

@@ -1,6 +1,6 @@
 fileFormatVersion: 2
-guid: 71bb3a2060ef0ae49af5a78ae2cfa183
-timeCreated: 1496149974
+guid: 8491dafed6b9ff343aee1632a0505866
+timeCreated: 1497405757
 licenseType: Pro
 MonoImporter:
   serializedVersion: 2

+ 9 - 0
Assets/Script/Tool/AtlasUtil/Editor.meta

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

+ 1023 - 0
Assets/Script/Tool/AtlasUtil/Editor/EdAtlasUtil.cs

@@ -0,0 +1,1023 @@
+using UnityEditor;
+using UnityEngine;
+using UnityEngine.Events;
+
+using System;
+using System.IO;
+using System.Linq;
+using System.Reflection;
+using System.Collections;
+using System.Collections.Generic;
+using LitJson;
+using Object = System.Object;
+using Random = UnityEngine.Random;
+
+[CustomEditor(typeof(AtlasUtil))]
+public class EdAtlasUtil : Editor
+{
+    protected class Box
+    {
+        public int Area
+        {
+            get { return Width*Height; }
+        }
+
+        public bool Valid
+        {
+            get
+            {
+                if (Width > 0 && Height > 0)
+                {
+                    return true;
+                }
+                else
+                {
+                    return false;
+                }
+            }
+        }
+
+        public Vector2 LowerLeft;
+        public Vector2 UpperLeft
+        {
+            get { return LowerLeft + new Vector2(0, Height); }
+        }
+        public Vector2 LowerRight
+        {
+            get { return LowerLeft + new Vector2(Width, 0); }
+        }
+        public Vector2 UpperRight
+        {
+            get { return LowerLeft + new Vector2(Width, Height); }
+        }
+
+        public int Width;
+        public int Height;
+
+        public Box(int width, int height, Vector2 lowerLeft)
+        {
+            Width = width;
+            Height = height;
+            LowerLeft = lowerLeft;
+        }
+
+
+        public bool CanFill(Debris debris)
+        {
+            if (debris.Width <= Width && debris.Height <= Height)
+            {
+                return true;
+            }
+            else
+            {
+                return false;
+            }
+        }
+    }
+
+    protected class JagBox
+    {
+        public class Pair
+        {
+            public int Low;
+            public int High;
+
+            public Pair(int low, int high)
+            {
+                Low = low;
+                High = high;
+            }
+        }
+
+        public Vector2 UpperRight;
+
+        public bool Valid
+        {
+            get
+            {
+                if (BoxList.Count == 0)
+                {
+                    return false;
+                }
+                else
+                {
+                    return true;
+                }
+            }
+        }
+        public int Width
+        {
+            get
+            {
+                return (int) BoxList.MySum(box => box.Width);
+            }
+        }
+
+        public List<Box> BoxList;
+
+        public Dictionary<Pair, Pair> XCoordDic;
+        public Dictionary<Pair, Pair> YCoordDic;
+
+        public JagBox(List<Box> boxList)
+        {
+            BoxList = boxList;
+
+            if (boxList.Count == 0)
+            {
+                return;
+            }
+
+            UpperRight = boxList.Back(0).UpperRight;
+
+            XCoordDic = new Dictionary<Pair, Pair>();
+            YCoordDic = new Dictionary<Pair, Pair>();
+
+            for (int i = 0; i < boxList.Count; i++)
+            {
+                Pair xPair = new Pair((int) boxList[i].LowerLeft.x, (int) boxList[i].LowerRight.x);
+                Pair yPair = new Pair((int) boxList[i].LowerLeft.y, (int) boxList[i].UpperRight.y);
+
+                XCoordDic.Add(yPair, xPair);
+                YCoordDic.Add(xPair, yPair);
+            }
+        }
+
+
+        public int GetMatchHeight(int width, out int boxIndex)
+        {
+            int x = (int)UpperRight.x - width;
+            
+            List<Pair> xPairList = YCoordDic.Keys.ToList();
+
+            for (int i = xPairList.Count - 1; i >= 0; i--)
+            {
+                if (xPairList[i].Low <= x && x <= xPairList[i].High)
+                {
+                    int y = YCoordDic[xPairList[i]].Low;
+
+                    boxIndex = i;
+
+                    return (int)UpperRight.y - y;
+                }
+            }
+            
+            throw new Exception("An error occured");
+        }
+
+        public int GetBoxIndexByWidth(int width, out bool onBorder)
+        {
+            int x = (int)UpperRight.x - width;
+
+            List<Pair> xPairList = YCoordDic.Keys.ToList();
+
+            for (int i = 0; i < xPairList.Count; i++)
+            {
+                if (xPairList[i].Low < x && x < xPairList[i].High)
+                {
+                    onBorder = false;
+
+                    return i;
+                }
+                else if (xPairList[i].Low == x || x == xPairList[i].High)
+                {
+                    onBorder = true;
+
+                    return i;
+                }
+            }
+
+            throw new Exception("An error occured");
+        }
+
+        public int GetBoxIndexByHeight(int height, out bool onBorder)
+        {
+            int y = (int)UpperRight.y - height;
+
+            List<Pair> yPairList = XCoordDic.Keys.ToList();
+
+            for (int i = 0; i < yPairList.Count; i++)
+            {
+                if (yPairList[i].Low < y && y < yPairList[i].High)
+                {
+                    onBorder = false;
+
+                    return i;
+                }
+                else if(yPairList[i].Low == y || y == yPairList[i].High)
+                {
+                    onBorder = true;
+
+                    return i;
+                }
+            }
+
+            throw new Exception("An error occured");
+        }
+
+
+        public List<JagBox> Fill(Debris debris)
+        {
+            int width = debris.Width;
+            int height = debris.Height;
+            bool verticalCut = width > height;
+
+            debris.LowerLeft = UpperRight + new Vector2(-width, -height);
+
+            int splitIndexA;
+            int splitIndexB;
+            int newBoxWidth;
+            int newBoxHeight;
+            bool border;
+
+            Box newBox;
+            Box splitBoxA;
+            Box splitBoxB;
+            Vector2 newBoxLowerLeft;
+
+            List<Box> newBoxListA = new List<Box>();
+            List<Box> newBoxListB = new List<Box>();
+
+            if (verticalCut)
+            {
+                #region 竖切
+
+                splitIndexA = GetBoxIndexByWidth(width, out border);
+
+                splitIndexB = splitIndexA;
+
+                splitBoxA = BoxList[splitIndexA];
+                splitBoxB = splitBoxA;
+
+                if (border)
+                {
+                    if (BoxList.Count > 1)
+                    {
+                        splitBoxB = BoxList[splitIndexA + 1];
+
+                        splitIndexB += 2;
+                    }
+                }
+                else
+                {
+                    if (BoxList.Count > 1)
+                    {
+                        splitBoxB = splitBoxA;
+
+                        splitIndexB += 1;
+                    }
+                }
+
+
+                for (int i = 0; i < splitIndexA; i++)
+                {
+                    newBoxListA.Add(BoxList[i]);
+                }
+
+                newBoxWidth = (int) UpperRight.x - (int) splitBoxA.LowerLeft.x - width;
+                
+                newBox = new Box(newBoxWidth, splitBoxA.Height, splitBoxA.LowerLeft);
+
+                if (newBox.Valid)
+                {
+                    newBoxListA.Add(newBox);
+                }
+
+
+                if (BoxList.Count > 1)
+                {
+                    if (!border)
+                    {
+                        newBoxWidth = splitBoxB.Width - ((int) UpperRight.x - (int) splitBoxB.LowerLeft.x - width);
+
+                        newBoxLowerLeft = new Vector2(UpperRight.x - width, splitBoxB.LowerLeft.y);
+                    }
+                    else
+                    {
+                        newBoxWidth = splitBoxB.Width;
+
+                        newBoxLowerLeft = splitBoxB.LowerLeft;
+                    }
+
+                    newBoxHeight = splitBoxB.Height - height;
+
+                    newBox = new Box(newBoxWidth, newBoxHeight, newBoxLowerLeft);
+                    
+                    if (newBox.Valid)
+                    {
+                        newBoxListB.Add(newBox);
+                    }
+
+                    for (int i = splitIndexB; i < BoxList.Count; i++)
+                    {
+                        newBox = BoxList[i];
+
+                        newBox.Height -= height;
+
+                        newBoxListB.Add(BoxList[i]);
+                    }
+                }
+                else
+                {
+                    newBoxWidth = width;
+
+                    newBoxHeight = splitBoxB.Height - height;
+
+                    newBoxLowerLeft = new Vector2(UpperRight.x - width, splitBoxB.LowerLeft.y);
+
+                    newBox = new Box(newBoxWidth, newBoxHeight, newBoxLowerLeft);
+
+                    if (newBox.Valid)
+                    {
+                        newBoxListB.Add(newBox);
+                    }
+                }
+
+                #endregion
+            }
+            else
+            {
+                #region 横切
+
+                splitIndexA = GetBoxIndexByHeight(height, out border);
+
+                splitIndexB = splitIndexA;
+
+                splitBoxA = BoxList[splitIndexA];
+                splitBoxB = splitBoxA;
+
+                if (border)
+                {
+                    if (BoxList.Count > splitIndexA + 1)
+                    {
+                        splitBoxB = BoxList[splitIndexA + 1];
+
+                        splitIndexB += 2;
+                    }
+                }
+                else
+                {
+                    if (BoxList.Count > 1)
+                    {
+                        splitBoxB = splitBoxA;
+
+                        splitIndexB += 1;
+                    }
+                }
+
+
+                for (int i = 0; i < splitIndexA; i++)
+                {
+                    newBoxListA.Add(BoxList[i]);
+                }
+
+                newBoxWidth = (int) UpperRight.x - (int) splitBoxA.LowerLeft.x - width;
+
+                newBoxHeight = height;
+
+                newBoxLowerLeft = new Vector2(splitBoxA.LowerLeft.x, (int)UpperRight.y - height);
+
+                newBox = new Box(newBoxWidth, newBoxHeight, newBoxLowerLeft);
+
+                if (newBox.Valid)
+                {
+                    newBoxListA.Add(newBox);
+                }
+
+
+                if (BoxList.Count > splitIndexA + 1)
+                {
+                    newBoxHeight = (int) UpperRight.y - (int) splitBoxB.LowerLeft.y - height;
+
+                    newBox = new Box(splitBoxB.Width, newBoxHeight, splitBoxB.LowerLeft);
+
+                    if (newBox.Valid)
+                    {
+                        newBoxListB.Add(newBox);
+                    }
+
+                    for (int i = splitIndexB; i < BoxList.Count; i++)
+                    {
+                        newBox = BoxList[i];
+
+                        newBox.Height -= height;
+
+                        newBoxListB.Add(newBox);
+                    }
+                }
+                else
+                {
+                    newBoxWidth = splitBoxB.Width;
+
+                    newBoxHeight = splitBoxB.Height - height;
+
+                    newBoxLowerLeft = splitBoxB.LowerLeft;
+
+                    newBox = new Box(newBoxWidth, newBoxHeight, newBoxLowerLeft);
+
+                    if (newBox.Valid)
+                    {
+                        newBoxListB.Add(newBox);
+                    }
+                }
+
+                #endregion
+            }
+
+            JagBox jagBoxBelow = new JagBox(newBoxListB);
+            JagBox jagBoxOnLeft = new JagBox(newBoxListA);
+
+            List<JagBox> newJagBoxList = new List<JagBox>();
+
+            if (jagBoxBelow.Valid)
+            {
+                newJagBoxList.Add(jagBoxBelow);
+            }
+
+            if (jagBoxOnLeft.Valid)
+            {
+                newJagBoxList.Add(jagBoxOnLeft);
+            }
+
+            return newJagBoxList;
+        }
+
+        public bool CanFill(Debris debris)
+        {
+            if (debris.Width > Width)
+            {
+                return false;
+            }
+
+            int boxIndex;
+
+            if (GetMatchHeight(debris.Width, out boxIndex) < debris.Height)
+            {
+                return false;
+            }
+
+            for (int i = boxIndex; i < BoxList.Count; i++)
+            {
+                if (BoxList[i].Height < debris.Height)
+                {
+                    return false;
+                }
+            }
+
+            return true;
+        }
+    }
+
+    protected class Debris
+    {
+        public int Max
+        {
+            get
+            {
+                if (Width > Height)
+                {
+                    return Width;
+                }
+                else
+                {
+                    return Height;
+                }
+            }
+        }
+        public int Area
+        {
+            get { return Width*Height; }
+        }
+        public string Name
+        {
+            get { return Texture.name; }
+        }
+
+        public Rect Rect
+        {
+            get { return new Rect(LowerLeft.x, LowerLeft.y, Width, Height); }
+        }
+        public Vector2 UpperLeft
+        {
+            get { return LowerLeft + new Vector2(0, Height); }
+        }
+        public Vector2 LowerRight
+        {
+            get { return LowerLeft + new Vector2(Width, 0); }
+        }
+        public Vector2 UpperRight
+        {
+            get { return LowerLeft + new Vector2(Width, Height); }
+        }
+
+        public Vector4 Pivot;
+        public Vector4 Border;
+        public Vector2 LowerLeft;
+
+        public int Width;
+        public int Height;
+
+        public Texture2D Texture;
+
+
+        public Color GetPixel(int x, int y)
+        {
+            return Texture.GetPixel(x, y);
+        }
+
+
+        public Debris(int interval, Texture2D texture2D, int width, int height)
+        {
+            Width = width + interval*2;
+            Height = height + interval*2;
+            Texture = texture2D;
+        }
+
+        public Debris(int interval, Texture2D texture2D)
+        {
+            Texture = texture2D;
+
+            string assetPath = AssetDatabase.GetAssetPath(texture2D);
+
+            TextureImporter textureImporter = (TextureImporter) AssetImporter.GetAtPath(assetPath);
+            
+            Pivot = textureImporter.spritePivot;
+            Border = textureImporter.spriteBorder;
+
+            if (!textureImporter.isReadable)
+            {
+                textureImporter.isReadable = true;
+
+                textureImporter.SaveAndReimport();
+            }
+
+            object[] args = new object[2];
+
+            MethodInfo methodInfo = typeof(TextureImporter).GetMethod("GetWidthAndHeight", BindingFlags.NonPublic | BindingFlags.Instance);
+            
+            methodInfo.Invoke(textureImporter, args);
+
+            Width = (int) args[0] + interval*2;
+            Height = (int) args[1] + interval*2;
+        }
+
+
+        public static float MaxMinByLength(Debris debris)
+        {
+            if (debris.Width > debris.Height)
+            {
+                return debris.Width;
+            }
+            else
+            {
+                return debris.Height;
+            }
+        }
+
+        public static bool SortByMax(Debris a, Debris b)
+        {
+            if (a.Max < b.Max)
+            {
+                return true;
+            }
+            else
+            {
+                return false;
+            }
+        }
+
+        public static bool SortByWidth(Debris a, Debris b)
+        {
+            if (a.Width < b.Width)
+            {
+                return true;
+            }
+            else
+            {
+                return false;
+            }
+        }
+    }
+
+    #region 变量
+
+    public AtlasUtil Script;
+
+    protected int AntiCrush;
+    protected string BuildPath;
+
+    #endregion
+
+    public void OnEnable()
+	{
+	    Script = (AtlasUtil) target;
+	}
+
+    protected List<Debris> CreateDebrisList()
+    {
+        List<Debris> resultList = new List<Debris>();
+        
+        for (int i = 0; i < Script.TextureList.Count; i++)
+        {
+            if (Script.TextureList[i] != null)
+            {
+                resultList.Add(new Debris(Script.Padding, Script.TextureList[i]));
+            }
+        }
+
+        for (int i = 0; i < Script.VirtualTextureList.Count; i++)
+        {
+            Texture2D texture = new Texture2D(Script.VirtualTextureList[i].Width, Script.VirtualTextureList[i].Height);
+            texture.name = Script.VirtualTextureList[i].Name;
+
+            Color randomColor = new Color(Random.Range(0f, 1f), Random.Range(0f, 1f), Random.Range(0f, 1f), 1);
+
+            for (int j = 0; j < Script.VirtualTextureList[i].Width; j++)
+            {
+                for (int k = 0; k < Script.VirtualTextureList[i].Height; k++)
+                {
+                    texture.SetPixel(j, k, randomColor);
+                }   
+            }
+
+            texture.Apply();
+
+            resultList.Add(new Debris(Script.Padding, texture, Script.VirtualTextureList[i].Width, Script.VirtualTextureList[i].Height));
+        }
+
+
+        StreamWriter streamWriter = new StreamWriter(BuildPath + "DebugInfo_" + Script.BuildName + ".txt");
+
+        for (int i = 0; i < resultList.Count; i++)
+        {
+            streamWriter.WriteLine("Width:{0} Height:{1} Pivot:{2} Border:{3}", resultList[i].Width, resultList[i].Height, resultList[i].Pivot, resultList[i].Border);
+        }
+
+        streamWriter.Close();
+
+        return resultList;
+    }
+
+
+    protected Box GetFirstBox(List<Debris> debrisList)
+    {
+        int totalArea = debrisList.Sum(debris => debris.Area);
+
+        int length = ExMath.NextPOT(Mathf.Sqrt(totalArea));
+
+        length = Mathf.Min(length, Script.MaxSize);
+
+        return new Box(length, length, new Vector2(0, 0));
+    }
+
+
+    protected void FillBox(bool first, Box parentBox, Debris debris, List<Debris> candidateList, List<Debris> resultDebrisList, List<Box> emptyBoxList)
+    {
+        Box newBoxA;
+        Box newBoxB;
+
+        if (first)
+        {
+            newBoxA = parentBox;
+            newBoxB = new Box(0, 0, new Vector2());
+        }
+        else
+        {
+            Vector2 lowerLeftA = parentBox.LowerLeft + new Vector2(0, debris.Height);
+            Vector2 lowerLeftB = parentBox.LowerLeft + new Vector2(debris.Width, 0);
+
+            newBoxA = new Box(debris.Width, parentBox.Height - debris.Height, lowerLeftA);
+            newBoxB = new Box(parentBox.Width - debris.Width, parentBox.Height, lowerLeftB);
+        }
+
+        if (newBoxA.Valid)
+        {
+            List<Debris> newCandidateListA = new List<Debris>();
+
+            for (int i = 0; i < candidateList.Count; i++)
+            {
+                if (newBoxA.CanFill(candidateList[i]))
+                {
+                    newCandidateListA.Add(candidateList[i]);
+                }
+            }
+
+            newCandidateListA.MySort(Debris.SortByWidth);
+
+            if (newCandidateListA.Count > 0)
+            {
+                Debris newDebris = newCandidateListA[0];
+
+                candidateList.Remove(newDebris);
+
+                newDebris.LowerLeft = debris.UpperLeft;
+                resultDebrisList.Add(newDebris);
+
+                FillBox(false, newBoxA, newDebris, candidateList, resultDebrisList, emptyBoxList);
+            }
+            else
+            {
+                emptyBoxList.Add(newBoxA);
+            }
+        }
+
+        if (newBoxB.Valid)
+        {
+            List<Debris> newCandidateListB = new List<Debris>();
+
+            for (int i = 0; i < candidateList.Count; i++)
+            {
+                if (newBoxB.CanFill(candidateList[i]))
+                {
+                    newCandidateListB.Add(candidateList[i]);
+                }
+            }
+
+            newCandidateListB.MySort(Debris.SortByWidth);
+
+            if (newCandidateListB.Count > 0)
+            {
+                Debris newDebris = newCandidateListB[0];
+
+                candidateList.Remove(newDebris);
+
+                newDebris.LowerLeft = debris.LowerRight;
+                resultDebrisList.Add(newDebris);
+
+                FillBox(false, newBoxB, newDebris, candidateList, resultDebrisList, emptyBoxList);
+            }
+            else
+            {
+                emptyBoxList.Add(newBoxB);
+            }
+        }
+    }
+
+    protected List<Debris> FillFirstBox(int textureIndex, List<Debris> rawDebrisList)
+    {
+        Box box = GetFirstBox(rawDebrisList);
+
+        while (true)
+        {
+            List<Debris> debrisList = new List<Debris>(rawDebrisList);
+
+            debrisList.MySort(Debris.SortByWidth);
+
+            List<Debris> resultDebrisList = new List<Debris>();
+
+            Debris futileDebris = new Debris(0, null, 0, 0)
+            {
+                LowerLeft = new Vector2(),
+            };
+
+            List<Box> emptyBoxList = new List<Box>();
+
+            FillBox(true, box, futileDebris, debrisList, resultDebrisList, emptyBoxList);
+
+            List<JagBox> jagBoxList = CreateJagBox(emptyBoxList);
+
+            debrisList.MySort(Debris.SortByMax);
+
+            FillJagBox(debrisList, resultDebrisList, jagBoxList);
+
+            if (debrisList.Count == 0)
+            {
+                BuildTexture(textureIndex, box, resultDebrisList);
+
+                return debrisList;
+            }
+            else
+            {
+                int newLength = ExMath.NextPOT(box.Width + 1);
+
+                if (newLength > Script.MaxSize)
+                {
+                    BuildTexture(textureIndex, box, resultDebrisList);
+
+                    return debrisList;
+                }
+                else
+                {
+                    box = new Box(newLength, newLength, Vector2.zero);
+                }
+            }
+        }
+    }
+
+
+    protected void FillJagBox(List<Debris> rawDebrisList, List<Debris> resultDebrisList, List<JagBox> jagBoxList)
+    {
+        if (jagBoxList.Count == 0)
+        {
+            throw new Exception("An error occured");
+        }
+
+        for (int i = 0; i < jagBoxList.Count; i++)
+        {
+            for (int j = 0; j < rawDebrisList.Count; j++)
+            {
+                if (jagBoxList[i].CanFill(rawDebrisList[j]))
+                {
+                    List<JagBox> newJagBoxList = jagBoxList[i].Fill(rawDebrisList[j]);
+
+                    jagBoxList.AddRange(newJagBoxList);
+
+                    resultDebrisList.Add(rawDebrisList[j]);
+
+                    jagBoxList.RemoveAt(i--);
+
+                    rawDebrisList.Remove(rawDebrisList[j]);
+
+                    break;
+                }
+            }
+        }
+    }
+
+    protected List<JagBox> CreateJagBox(List<Box> emptyBoxList)
+    {
+        List<JagBox> jagBoxList = new List<JagBox>();
+
+        List<Box> boxList = new List<Box>() { emptyBoxList[0]};
+
+        for (int i = 0; i < emptyBoxList.Count - 1; i++)
+        {
+            int x1 = (int)emptyBoxList[i].LowerRight.x;
+            int x2 = (int)emptyBoxList[i + 1].LowerLeft.x;
+
+            if (x1 == x2)
+            {
+                boxList.Add(emptyBoxList[i + 1]);
+            }
+            else
+            {
+                jagBoxList.Add(new JagBox(boxList));
+
+                boxList = new List<Box>();
+
+                boxList.Add(emptyBoxList[i + 1]);
+            }
+        }
+        
+        jagBoxList.Add(new JagBox(boxList));
+
+        return jagBoxList;
+    }
+
+
+    protected void BuildTexture(int textureIndex, Box box, List<Debris> resultDebrisList)
+    {
+        Texture2D texture2D = new Texture2D(box.Width, box.Height, Script.TextureFormat, false);
+        
+        SpriteMetaData[] spriteMetaDatas = new SpriteMetaData[resultDebrisList.Count];
+
+        for (int i = 0; i < box.Width; i++)
+        {
+            for (int j = 0; j < box.Height; j++)
+            {
+                texture2D.SetPixel(i, j, new Color(0, 0, 0, 0));
+            }
+        }
+
+        for (int i = 0; i < resultDebrisList.Count; i++)
+        {
+            Debris debris = resultDebrisList[i];
+
+            Vector2 lowerLeft = debris.LowerLeft + new Vector2(Script.Padding, Script.Padding);
+
+            int width;
+            int height;
+
+            spriteMetaDatas[i].rect = debris.Rect;
+            spriteMetaDatas[i].pivot = debris.Pivot;
+            spriteMetaDatas[i].name = debris.Name;
+            spriteMetaDatas[i].border = debris.Border;
+            spriteMetaDatas[i].alignment = (int) SpriteAlignment.Custom;
+            
+            width = debris.Width - Script.Padding*2;
+            height = debris.Height - Script.Padding*2;
+
+            for (int j = 0; j < width; j++)
+            {
+                for (int k = 0; k < height; k++)
+                {
+                    texture2D.SetPixel((int) lowerLeft.x + j, (int) lowerLeft.y + k, debris.GetPixel(j, k));
+                }
+            }
+        }
+
+        texture2D.Apply();
+
+
+        string buildName;
+
+        if (textureIndex == 0)
+        {
+            buildName = Script.BuildName + ".png";
+        }
+        else
+        {
+            buildName = Script.BuildName + textureIndex + ".png";
+        }
+
+        string assetPath = BuildPath + buildName;
+
+        File.WriteAllBytes(assetPath, texture2D.EncodeToPNG());
+
+        AssetDatabase.Refresh();
+
+
+        TextureImporter textureImporter = (TextureImporter)AssetImporter.GetAtPath(assetPath);
+        
+        textureImporter.spritesheet = spriteMetaDatas;
+        textureImporter.maxTextureSize = box.Width;
+        textureImporter.isReadable = true;
+        textureImporter.alphaIsTransparency = true;
+        textureImporter.textureType = TextureImporterType.Sprite;
+        textureImporter.spriteImportMode = SpriteImportMode.Multiple;
+
+        textureImporter.SaveAndReimport();
+    }
+
+    protected void PrepareBuildParameter()
+    {
+        BuildPath = Script.BuildPath.TrimEnd('/', '\\') + "/";
+
+        if (Script.MaxSize <= 0)
+        {
+            Script.MaxSize = 8192;
+        }
+        else
+        {
+            Script.MaxSize = ExMath.PrevPOT(Script.MaxSize);
+        }
+
+        if (Script.Padding < 0)
+        {
+            Script.Padding = 0;
+        }
+    }
+
+
+    public override void OnInspectorGUI()
+    {
+        base.OnInspectorGUI();
+
+        if (GUILayout.Button("TempTest"))
+        {
+            #region
+
+            Box box1 = new Box(10, 10, new Vector2(0, 90));
+            Box box2 = new Box(20, 20, new Vector2(10, 80));
+            Box box3 = new Box(20, 40, new Vector2(30, 60));
+            Box box4 = new Box(20, 60, new Vector2(50, 40));
+            Box box5 = new Box(20, 80, new Vector2(70, 20));
+            Box box6 = new Box(10, 100, new Vector2(90, 0));
+
+            List<Box> emptyBoxList = new List<Box>();
+            emptyBoxList.Add(box1);
+            emptyBoxList.Add(box2);
+            emptyBoxList.Add(box3);
+            emptyBoxList.Add(box4);
+            emptyBoxList.Add(box5);
+            emptyBoxList.Add(box6);
+
+            List<JagBox> jagBoxList = CreateJagBox(emptyBoxList);
+
+            for (int i = 0; i < jagBoxList.Count; i++)
+            {
+                Debug.Log(jagBoxList[i].Width);
+            }
+
+            #endregion
+        }
+
+        if (GUILayout.Button("Test"))
+        {
+            PrepareBuildParameter();
+
+            List<Debris> tempDebrisList = CreateDebrisList();
+
+            if (tempDebrisList.Count == 0)
+            {
+                throw new Exception("TextureList is empty");
+            }
+
+            if (tempDebrisList.MyMax(Debris.MaxMinByLength) > Script.MaxSize)
+            {
+                throw new Exception("A texture's width or height is bigger than MaxSize");
+            }
+
+            int textureIndex = 0;
+
+            while (true)
+            {
+                tempDebrisList = FillFirstBox(textureIndex++, tempDebrisList);
+
+                if (tempDebrisList.Count == 0)
+                {
+                    break;
+                }
+            }
+        }
+    }
+}

+ 12 - 0
Assets/Script/Tool/AtlasUtil/Editor/EdAtlasUtil.cs.meta

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

+ 35 - 0
Assets/Script/Tool/AtlasUtil/ExMath.cs

@@ -0,0 +1,35 @@
+using UnityEngine;
+
+using System.Collections;
+using System.Collections.Generic;
+
+public static class ExMath
+{
+    public static int PrevPOT(float value)
+    {
+        int result = Mathf.ClosestPowerOfTwo(Mathf.CeilToInt(value));
+
+        if (result > value)
+        {
+            return result/2;
+        }
+        else
+        {
+            return result;
+        }
+    }
+
+    public static int NextPOT(float value)
+    {
+        int result = Mathf.ClosestPowerOfTwo(Mathf.CeilToInt(value));
+        
+        if (result >= value)
+        {
+            return result;
+        }
+        else
+        {
+            return result * 2;
+        }
+    }
+}

+ 12 - 0
Assets/Script/Tool/AtlasUtil/ExMath.cs.meta

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

+ 172 - 0
Assets/Script/Tool/AtlasUtil/ExtList.cs

@@ -0,0 +1,172 @@
+using UnityEngine;
+using UnityEngine.Events;
+
+using System.Collections;
+using System.Collections.Generic;
+
+public static class ExtList
+{
+    public delegate float SumDelegate<T>(T t);
+
+    public delegate float MaxMinDelegate<T>(T t);
+
+    public delegate bool SortDelegate<T>(T t1, T t2);
+
+
+    public static T Prev<T>(this List<T> list, int index)
+    {
+        return list[(index + list.Count - 1) % list.Count];
+    }
+
+    public static T Next<T>(this List<T> list, int index)
+    {
+        return list[(index + 1) % list.Count];
+    }
+
+
+    public static T Back<T>(this List<T> list, int index, bool remove = false)
+    {
+        T t = list[list.Count - 1 - index];
+
+        if (remove)
+        {
+            list.RemoveAt(list.Count - 1 - index);
+        }
+
+        return t;
+    }
+
+    public static T Forward<T>(this List<T> list, int index, bool remove = false)
+    {
+        T t = list[index];
+
+        if (remove)
+        {
+            list.RemoveAt(index);
+        }
+
+        return t;
+    }
+
+    public static T Random<T>(this List<T> list, bool remove = false)
+    {
+        int index = UnityEngine.Random.Range(0, list.Count);
+
+        if (remove)
+        {
+            T result = list[index];
+
+            list.RemoveAt(index);
+
+            return result;
+        }
+        else
+        {
+            return list[index];
+        }
+    }
+
+
+    public static bool Valid<T>(this List<T> list)
+    {
+        if (list == null || list.Count == 0)
+        {
+            return false;
+        }
+        else
+        {
+            return true;
+        }
+    }
+
+    public static bool UniqueAdd<T>(this List<T> list, T obj)
+    {
+        if (list.Contains(obj) == false)
+        {
+            list.Add(obj);
+
+            return true;
+        }
+        else
+        {
+            return false;
+        }
+    }
+
+
+    public static void BackRemoveAt<T>(this List<T> list, int index)
+    {
+        list.RemoveAt(list.Count - 1 - index);
+    }
+
+
+    public static void MySort<T>(this List<T> list, SortDelegate<T> sortDelegate)
+    {
+        bool finish = false;
+
+        for (int i = 0; i < list.Count; i++)
+        {
+            finish = true;
+
+            for (int j = 0; j < list.Count - i - 1; j++)
+            {
+                if (sortDelegate(list[j], list[j + 1]))
+                {
+                    finish = false;
+
+                    T t = list[j];
+
+                    list[j] = list[j + 1];
+                    list[j + 1] = t;
+                }
+            }
+
+            if (finish)
+            {
+                break;
+            }
+        }
+    }
+
+    public static float MyMin<T>(this List<T> list, MaxMinDelegate<T> maxMinDelegate)
+    {
+        float result = maxMinDelegate(list[0]);
+
+        for (int i = 1; i < list.Count; i++)
+        {
+            if (result > maxMinDelegate(list[i]))
+            {
+                result = maxMinDelegate(list[i]);
+            }
+        }
+
+        return result;
+    }
+
+    public static float MyMax<T>(this List<T> list, MaxMinDelegate<T> maxMinDelegate)
+    {
+        float result = maxMinDelegate(list[0]);
+
+        for (int i = 1; i < list.Count; i++)
+        {
+            if (result < maxMinDelegate(list[i]))
+            {
+                result = maxMinDelegate(list[i]);
+            }
+        }
+
+        return result;
+    }
+
+    public static float MySum<T>(this List<T> list, SumDelegate<T> sumDelegate)
+    {
+        float result = 0;
+
+        for (int i = 0; i < list.Count; i++)
+        {
+            result += sumDelegate(list[i]);
+        }
+
+        return result;
+    }
+}

+ 12 - 0
Assets/Script/Tool/AtlasUtil/ExtList.cs.meta

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

+ 4 - 2
Assets/Script/Tool/Auxiliary.cs

@@ -53,6 +53,9 @@ public class Auxiliary : Regist
     public string String1;
     public string String2;
 
+    public TextAsset TextAsset;
+    public Texture2D Texture;
+
     public Font Font;
     public GameObject Go;
     public List<GameObject> GoList;
@@ -109,11 +112,10 @@ public class Auxiliary : Regist
         return false;
     }
 
-
     private void Awake()
     {
         Instance = this;
-
+        
         //gameObject.AddComponent<ManaAnim>().RegistImmed();
     }
 

+ 0 - 1
Assets/Script/Tool/Bundle.cs

@@ -284,7 +284,6 @@ public class Bundle : MonoBehaviour
 
         yield return LoadDiscard();
 
-
         yield return LoadUI();
 
         if (!Logo.Complete && !Initializer.Instance.DebugMode)

+ 3 - 3
Assets/Script/Tool/UI/TextPlus.cs

@@ -283,7 +283,7 @@ public class TextPlus : Text
                 continue;
             }
 
-            imageGroup.Last(0).Add(ImageIndex[i]);
+            imageGroup.Back(0).Add(ImageIndex[i]);
         }
 
         for (int i = 0; i < imageGroup.Count; i++)
@@ -394,14 +394,14 @@ public class TextPlus : Text
                     rear = endIndex - 1;
                 }
 
-                front = imageIndex.Last(i) + 1;
+                front = imageIndex.Back(i) + 1;
                 
                 if (rear < front)
                 {
                     continue;
                 }
            
-                Move(front, rear, -GetSpan(imageIndex.Last(i), front), 0);
+                Move(front, rear, -GetSpan(imageIndex.Back(i), front), 0);
             }
         }
     }

BIN
ProjectSettings/GraphicsSettings.asset


+ 1 - 3
ToList.txt

@@ -1,6 +1,4 @@
-成就的透明度
-
-直接把ClosetTexture设置为SpriteMultiple
+饰品位置有问题
 
 
 还原PlayerConfig

Alguns ficheiros não foram mostrados porque muitos ficheiros mudaram neste diff