浏览代码

Drawcall优化

LiuQilin 7 年之前
父节点
当前提交
2e137340da
共有 31 个文件被更改,包括 964 次插入512 次删除
  1. 20 7
      Assets/AtlasUtility/Script/Test.cs
  2. 2 1
      Assets/Resource/DragonBones/Unity/src/DragonBones/unity/UnityFactory.cs
  3. 7 0
      Assets/Resource/DragonBones/Unity/src/DragonBones/unity/UnitySlot.cs
  4. 0 222
      Assets/Resource/Logo.unity
  5. 1 0
      Assets/Resource/Prefab/Object/DebugMode.prefab
  6. 40 36
      Assets/Resource/Prefab/Object/Player.prefab
  7. 68 56
      Assets/Resource/Prefab/Object/PlazaRoomChest.prefab
  8. 9 84
      Assets/Resource/Prefab/PrefabUI/GroupD.prefab
  9. 112 0
      Assets/Resource/Shader/GrayMesh.shader
  10. 9 0
      Assets/Resource/Shader/GrayMesh.shader.meta
  11. 127 0
      Assets/Resource/Shader/GrayMeshMat.mat
  12. 8 0
      Assets/Resource/Shader/GrayMeshMat.mat.meta
  13. 二进制
      Assets/Resource/Sprite/Editor/SpriteUI/骰子.png
  14. 68 0
      Assets/Resource/Sprite/Editor/SpriteUI/骰子.png.meta
  15. 二进制
      Assets/Resource/Xlsx/language_config.xlsx
  16. 72 0
      Assets/Script/Manage/ManaAnim.cs
  17. 6 6
      Assets/Script/Manage/ManaAudio.cs
  18. 1 1
      Assets/Script/Manage/ManaCenter.cs
  19. 3 3
      Assets/Script/Manage/ManaData.cs
  20. 2 2
      Assets/Script/Manage/ManaServer.cs
  21. 1 1
      Assets/Script/Manage/ManaUI.cs
  22. 4 2
      Assets/Script/Object/Player.cs
  23. 127 62
      Assets/Script/Object/PlazaRoomChest.cs
  24. 1 3
      Assets/Script/SFS/Manager/ChestMge.cs
  25. 203 0
      Assets/Script/Tool/Anim/TweenGrayMesh.cs
  26. 12 0
      Assets/Script/Tool/Anim/TweenGrayMesh.cs.meta
  27. 8 0
      Assets/Script/Tool/Lib.cs
  28. 1 16
      Assets/Script/Tool/SpriteUtility/Editor/SpriteUtilityWindow.cs
  29. 2 2
      Assets/Script/Tool/SpriteUtility/SerializeObject.prefab
  30. 40 4
      Assets/Script/Tool/SpriteUtility/SpriteUtility.cs
  31. 10 4
      第三期.txt

+ 20 - 7
Assets/AtlasUtility/Script/Test.cs

@@ -1,4 +1,5 @@
-using UnityEngine.UI;
+using System.Linq;
+using UnityEngine.UI;
 
 namespace AtlasUtility
 {
@@ -8,20 +9,32 @@ namespace AtlasUtility
     {
         #region Variable
 
-        public Sprite Sprite;
-        public Texture2D Texture2D;
         public Text Text;
+        public Texture2D Texture2D;
         public SpriteRenderer SpriteRenderer;
+
+        public Sprite Sprite;
+        public MeshFilter MeshFilter;
         public MeshRenderer MeshRenderer;
 
+        public static Material Material;
+
         #endregion
 
         private void Start()
         {
-            Shader shader = Shader.Find("Sprites/Default");
-            Material material = new Material(shader);
-            material.mainTexture = Texture2D;
-            MeshRenderer.sharedMaterial = material;
+            if (Material == null)
+            {
+                Shader shader = Shader.Find("DashGame/GrayMesh");
+                Material = new Material(shader);
+                Material.mainTexture = Texture2D;
+            }
+
+            Mesh Mesh = SpriteUtility.CreateMesh(Sprite);
+            //Mesh.SetUVs(1, Enumerable.Repeat(new Vector2(Random.Range(0f, 1f), 0), Mesh.vertices.Length).ToList());
+            //Mesh.SetColors(Enumerable.Repeat(new Color(1, 1, 1, 0), Mesh.vertices.Length).ToList());
+            MeshFilter.mesh = Mesh;
+            MeshRenderer.sharedMaterial = Material;
         }
     }
 }

+ 2 - 1
Assets/Resource/DragonBones/Unity/src/DragonBones/unity/UnityFactory.cs

@@ -39,7 +39,8 @@ namespace DragonBones
          * 创建材质时默认使用的 shader。
          * @version DragonBones 4.7
          */
-        public string defaultShaderName = "Sprites/Default";
+        public string defaultShaderName = "DashGame/GrayMesh";
+        //public string defaultShaderName = "Sprites/Default";
 
         private string _textureAtlasPath = null;
         private GameObject _armatureGameObject = null;

+ 7 - 0
Assets/Resource/DragonBones/Unity/src/DragonBones/unity/UnitySlot.cs

@@ -1,4 +1,5 @@
 using System.Collections.Generic;
+using System.Linq;
 using UnityEngine;
 
 namespace DragonBones
@@ -300,6 +301,12 @@ namespace DragonBones
                         _mesh.uv = _helpVector2s;
                         _mesh.triangles = TRIANGLES;
                     }
+                    Vector2[] uv2 = new Vector2[_mesh.uv.Length];
+                    for (int i = 0; i < _mesh.uv.Length; i++)
+                    {
+                        uv2[i]= new Vector2(0, 1);
+                    }
+                    _mesh.uv2 = uv2;
 
                     _mesh.RecalculateBounds();
 

+ 0 - 222
Assets/Resource/Logo.unity

@@ -91,119 +91,6 @@ NavMeshSettings:
     cellSize: 0.16666666
     accuratePlacement: 0
   m_NavMeshData: {fileID: 0}
---- !u!1001 &209276173
-Prefab:
-  m_ObjectHideFlags: 0
-  serializedVersion: 2
-  m_Modification:
-    m_TransformParent: {fileID: 2041876477}
-    m_Modifications:
-    - target: {fileID: 224734146220428892, guid: a4b5aa0c4d6c73d4ab0a614e634d1f17,
-        type: 2}
-      propertyPath: m_LocalPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 224734146220428892, guid: a4b5aa0c4d6c73d4ab0a614e634d1f17,
-        type: 2}
-      propertyPath: m_LocalPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 224734146220428892, guid: a4b5aa0c4d6c73d4ab0a614e634d1f17,
-        type: 2}
-      propertyPath: m_LocalPosition.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 224734146220428892, guid: a4b5aa0c4d6c73d4ab0a614e634d1f17,
-        type: 2}
-      propertyPath: m_LocalRotation.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 224734146220428892, guid: a4b5aa0c4d6c73d4ab0a614e634d1f17,
-        type: 2}
-      propertyPath: m_LocalRotation.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 224734146220428892, guid: a4b5aa0c4d6c73d4ab0a614e634d1f17,
-        type: 2}
-      propertyPath: m_LocalRotation.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 224734146220428892, guid: a4b5aa0c4d6c73d4ab0a614e634d1f17,
-        type: 2}
-      propertyPath: m_LocalRotation.w
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: 224734146220428892, guid: a4b5aa0c4d6c73d4ab0a614e634d1f17,
-        type: 2}
-      propertyPath: m_RootOrder
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 224734146220428892, guid: a4b5aa0c4d6c73d4ab0a614e634d1f17,
-        type: 2}
-      propertyPath: m_AnchoredPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 224734146220428892, guid: a4b5aa0c4d6c73d4ab0a614e634d1f17,
-        type: 2}
-      propertyPath: m_AnchoredPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 224734146220428892, guid: a4b5aa0c4d6c73d4ab0a614e634d1f17,
-        type: 2}
-      propertyPath: m_SizeDelta.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 224734146220428892, guid: a4b5aa0c4d6c73d4ab0a614e634d1f17,
-        type: 2}
-      propertyPath: m_SizeDelta.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 224734146220428892, guid: a4b5aa0c4d6c73d4ab0a614e634d1f17,
-        type: 2}
-      propertyPath: m_AnchorMin.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 224734146220428892, guid: a4b5aa0c4d6c73d4ab0a614e634d1f17,
-        type: 2}
-      propertyPath: m_AnchorMin.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 224734146220428892, guid: a4b5aa0c4d6c73d4ab0a614e634d1f17,
-        type: 2}
-      propertyPath: m_AnchorMax.x
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: 224734146220428892, guid: a4b5aa0c4d6c73d4ab0a614e634d1f17,
-        type: 2}
-      propertyPath: m_AnchorMax.y
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: 224734146220428892, guid: a4b5aa0c4d6c73d4ab0a614e634d1f17,
-        type: 2}
-      propertyPath: m_Pivot.x
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 224734146220428892, guid: a4b5aa0c4d6c73d4ab0a614e634d1f17,
-        type: 2}
-      propertyPath: m_Pivot.y
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 1999869294669664, guid: a4b5aa0c4d6c73d4ab0a614e634d1f17, type: 2}
-      propertyPath: m_IsActive
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 225526192881614886, guid: a4b5aa0c4d6c73d4ab0a614e634d1f17,
-        type: 2}
-      propertyPath: m_Alpha
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: 1948089163080924, guid: a4b5aa0c4d6c73d4ab0a614e634d1f17, type: 2}
-      propertyPath: m_IsActive
-      value: 1
-      objectReference: {fileID: 0}
-    m_RemovedComponents: []
-  m_ParentPrefab: {fileID: 100100000, guid: a4b5aa0c4d6c73d4ab0a614e634d1f17, type: 2}
-  m_IsPrefabParent: 0
 --- !u!1 &465425181
 GameObject:
   m_ObjectHideFlags: 0
@@ -575,112 +462,3 @@ Transform:
   m_Father: {fileID: 0}
   m_RootOrder: 2
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!1001 &2041876476
-Prefab:
-  m_ObjectHideFlags: 0
-  serializedVersion: 2
-  m_Modification:
-    m_TransformParent: {fileID: 0}
-    m_Modifications:
-    - target: {fileID: 224229560457679016, guid: 8647d80b558fa724a84d05f9e6aee9bc,
-        type: 2}
-      propertyPath: m_LocalPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 224229560457679016, guid: 8647d80b558fa724a84d05f9e6aee9bc,
-        type: 2}
-      propertyPath: m_LocalPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 224229560457679016, guid: 8647d80b558fa724a84d05f9e6aee9bc,
-        type: 2}
-      propertyPath: m_LocalPosition.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 224229560457679016, guid: 8647d80b558fa724a84d05f9e6aee9bc,
-        type: 2}
-      propertyPath: m_LocalRotation.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 224229560457679016, guid: 8647d80b558fa724a84d05f9e6aee9bc,
-        type: 2}
-      propertyPath: m_LocalRotation.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 224229560457679016, guid: 8647d80b558fa724a84d05f9e6aee9bc,
-        type: 2}
-      propertyPath: m_LocalRotation.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 224229560457679016, guid: 8647d80b558fa724a84d05f9e6aee9bc,
-        type: 2}
-      propertyPath: m_LocalRotation.w
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: 224229560457679016, guid: 8647d80b558fa724a84d05f9e6aee9bc,
-        type: 2}
-      propertyPath: m_RootOrder
-      value: 3
-      objectReference: {fileID: 0}
-    - target: {fileID: 224229560457679016, guid: 8647d80b558fa724a84d05f9e6aee9bc,
-        type: 2}
-      propertyPath: m_AnchoredPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 224229560457679016, guid: 8647d80b558fa724a84d05f9e6aee9bc,
-        type: 2}
-      propertyPath: m_AnchoredPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 224229560457679016, guid: 8647d80b558fa724a84d05f9e6aee9bc,
-        type: 2}
-      propertyPath: m_SizeDelta.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 224229560457679016, guid: 8647d80b558fa724a84d05f9e6aee9bc,
-        type: 2}
-      propertyPath: m_SizeDelta.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 224229560457679016, guid: 8647d80b558fa724a84d05f9e6aee9bc,
-        type: 2}
-      propertyPath: m_AnchorMin.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 224229560457679016, guid: 8647d80b558fa724a84d05f9e6aee9bc,
-        type: 2}
-      propertyPath: m_AnchorMin.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 224229560457679016, guid: 8647d80b558fa724a84d05f9e6aee9bc,
-        type: 2}
-      propertyPath: m_AnchorMax.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 224229560457679016, guid: 8647d80b558fa724a84d05f9e6aee9bc,
-        type: 2}
-      propertyPath: m_AnchorMax.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 224229560457679016, guid: 8647d80b558fa724a84d05f9e6aee9bc,
-        type: 2}
-      propertyPath: m_Pivot.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 224229560457679016, guid: 8647d80b558fa724a84d05f9e6aee9bc,
-        type: 2}
-      propertyPath: m_Pivot.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1948781497737682, guid: 8647d80b558fa724a84d05f9e6aee9bc, type: 2}
-      propertyPath: m_IsActive
-      value: 0
-      objectReference: {fileID: 0}
-    m_RemovedComponents: []
-  m_ParentPrefab: {fileID: 100100000, guid: 8647d80b558fa724a84d05f9e6aee9bc, type: 2}
-  m_IsPrefabParent: 0
---- !u!224 &2041876477 stripped
-RectTransform:
-  m_PrefabParentObject: {fileID: 224229560457679016, guid: 8647d80b558fa724a84d05f9e6aee9bc,
-    type: 2}
-  m_PrefabInternal: {fileID: 2041876476}

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

@@ -131,6 +131,7 @@ MonoBehaviour:
   - {fileID: 2100000, guid: dc722f3566cbcf440a23d8fe69deef8e, type: 2}
   - {fileID: 21300000, guid: e7f632456c01c26469882025b47accfe, type: 3}
   - {fileID: 21300000, guid: f9937d5d43f2ff447aeb985a91a7d690, type: 3}
+  - {fileID: 2100000, guid: 91a83bc59ad093c499f353b165d031b8, type: 2}
   AtlasList:
   - {fileID: 21300004, guid: b31bbacb2e0ff3d459f4878983a39b50, type: 3}
   - {fileID: 21300006, guid: b31bbacb2e0ff3d459f4878983a39b50, type: 3}

+ 40 - 36
Assets/Resource/Prefab/Object/Player.prefab

@@ -113,7 +113,8 @@ GameObject:
   serializedVersion: 5
   m_Component:
   - component: {fileID: 4717949673564384}
-  - component: {fileID: 212671680300845312}
+  - component: {fileID: 33447780514503414}
+  - component: {fileID: 23591418107166150}
   m_Layer: 0
   m_Name: Shadow
   m_TagString: Untagged
@@ -363,6 +364,44 @@ Transform:
   m_Father: {fileID: 4007373572171746}
   m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &23591418107166150
+MeshRenderer:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1497926776519098}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_Materials:
+  - {fileID: 0}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingOrder: 0
+--- !u!33 &33447780514503414
+MeshFilter:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1497926776519098}
+  m_Mesh: {fileID: 4300000, guid: 46e96b501b810a94f84d68ffd966242e, type: 2}
 --- !u!61 &61000764261009850
 BoxCollider2D:
   m_ObjectHideFlags: 1
@@ -426,41 +465,6 @@ SpriteRenderer:
   m_Color: {r: 1, g: 1, b: 1, a: 1}
   m_FlipX: 0
   m_FlipY: 0
---- !u!212 &212671680300845312
-SpriteRenderer:
-  m_ObjectHideFlags: 1
-  m_PrefabParentObject: {fileID: 0}
-  m_PrefabInternal: {fileID: 100100000}
-  m_GameObject: {fileID: 1497926776519098}
-  m_Enabled: 1
-  m_CastShadows: 0
-  m_ReceiveShadows: 0
-  m_MotionVectors: 1
-  m_LightProbeUsage: 0
-  m_ReflectionProbeUsage: 0
-  m_Materials:
-  - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
-  m_StaticBatchInfo:
-    firstSubMesh: 0
-    subMeshCount: 0
-  m_StaticBatchRoot: {fileID: 0}
-  m_ProbeAnchor: {fileID: 0}
-  m_LightProbeVolumeOverride: {fileID: 0}
-  m_ScaleInLightmap: 1
-  m_PreserveUVs: 0
-  m_IgnoreNormalsForChartDetection: 0
-  m_ImportantGI: 0
-  m_SelectedEditorRenderState: 0
-  m_MinimumChartSize: 4
-  m_AutoUVMaxDistance: 0.5
-  m_AutoUVMaxAngle: 89
-  m_LightmapParameters: {fileID: 0}
-  m_SortingLayerID: 0
-  m_SortingOrder: 0
-  m_Sprite: {fileID: 0}
-  m_Color: {r: 1, g: 1, b: 1, a: 1}
-  m_FlipX: 0
-  m_FlipY: 0
 --- !u!212 &212874557632169304
 SpriteRenderer:
   m_ObjectHideFlags: 1

+ 68 - 56
Assets/Resource/Prefab/Object/PlazaRoomChest.prefab

@@ -19,7 +19,8 @@ GameObject:
   serializedVersion: 5
   m_Component:
   - component: {fileID: 4157323462000244}
-  - component: {fileID: 212796212424661236}
+  - component: {fileID: 23990137771253750}
+  - component: {fileID: 33525330034667760}
   m_Layer: 0
   m_Name: PlazaRoomChest
   m_TagString: Untagged
@@ -35,9 +36,10 @@ GameObject:
   serializedVersion: 5
   m_Component:
   - component: {fileID: 4720750328529054}
-  - component: {fileID: 212123215735440116}
   - component: {fileID: 65569554269210656}
   - component: {fileID: 95549217189957502}
+  - component: {fileID: 23613099641849010}
+  - component: {fileID: 33563640867506102}
   m_Layer: 0
   m_Name: Chest
   m_TagString: Untagged
@@ -53,7 +55,8 @@ GameObject:
   serializedVersion: 5
   m_Component:
   - component: {fileID: 4668731993363040}
-  - component: {fileID: 212311611596219022}
+  - component: {fileID: 23859365997342140}
+  - component: {fileID: 33497128563115602}
   m_Layer: 0
   m_Name: ChestShadow
   m_TagString: Untagged
@@ -102,37 +105,8 @@ Transform:
   m_Father: {fileID: 4157323462000244}
   m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!65 &65569554269210656
-BoxCollider:
-  m_ObjectHideFlags: 1
-  m_PrefabParentObject: {fileID: 0}
-  m_PrefabInternal: {fileID: 100100000}
-  m_GameObject: {fileID: 1647720897566604}
-  m_Material: {fileID: 0}
-  m_IsTrigger: 1
-  m_Enabled: 1
-  serializedVersion: 2
-  m_Size: {x: 4.06, y: 3.8, z: 0.2}
-  m_Center: {x: -0.000000014901161, y: 0, z: 0}
---- !u!95 &95549217189957502
-Animator:
-  serializedVersion: 3
-  m_ObjectHideFlags: 1
-  m_PrefabParentObject: {fileID: 0}
-  m_PrefabInternal: {fileID: 100100000}
-  m_GameObject: {fileID: 1647720897566604}
-  m_Enabled: 1
-  m_Avatar: {fileID: 0}
-  m_Controller: {fileID: 9100000, guid: 40e1259af4314d74d86c9266e5c34184, type: 2}
-  m_CullingMode: 0
-  m_UpdateMode: 0
-  m_ApplyRootMotion: 0
-  m_LinearVelocityBlending: 0
-  m_WarningMessage: 
-  m_HasTransformHierarchy: 1
-  m_AllowConstantClipSamplingOptimization: 1
---- !u!212 &212123215735440116
-SpriteRenderer:
+--- !u!23 &23613099641849010
+MeshRenderer:
   m_ObjectHideFlags: 1
   m_PrefabParentObject: {fileID: 0}
   m_PrefabInternal: {fileID: 100100000}
@@ -144,7 +118,7 @@ SpriteRenderer:
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
   m_Materials:
-  - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
+  - {fileID: 0}
   m_StaticBatchInfo:
     firstSubMesh: 0
     subMeshCount: 0
@@ -155,19 +129,15 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
-  m_SelectedEditorRenderState: 0
+  m_SelectedEditorRenderState: 3
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
   m_SortingOrder: 0
-  m_Sprite: {fileID: 21300000, guid: 1cba5b42a3050e444b67311e94e9d633, type: 3}
-  m_Color: {r: 1, g: 1, b: 1, a: 1}
-  m_FlipX: 0
-  m_FlipY: 0
---- !u!212 &212311611596219022
-SpriteRenderer:
+--- !u!23 &23859365997342140
+MeshRenderer:
   m_ObjectHideFlags: 1
   m_PrefabParentObject: {fileID: 0}
   m_PrefabInternal: {fileID: 100100000}
@@ -179,7 +149,7 @@ SpriteRenderer:
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
   m_Materials:
-  - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
+  - {fileID: 0}
   m_StaticBatchInfo:
     firstSubMesh: 0
     subMeshCount: 0
@@ -190,19 +160,15 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
-  m_SelectedEditorRenderState: 0
+  m_SelectedEditorRenderState: 3
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
   m_SortingOrder: 0
-  m_Sprite: {fileID: 0}
-  m_Color: {r: 1, g: 1, b: 1, a: 1}
-  m_FlipX: 0
-  m_FlipY: 0
---- !u!212 &212796212424661236
-SpriteRenderer:
+--- !u!23 &23990137771253750
+MeshRenderer:
   m_ObjectHideFlags: 1
   m_PrefabParentObject: {fileID: 0}
   m_PrefabInternal: {fileID: 100100000}
@@ -214,7 +180,7 @@ SpriteRenderer:
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
   m_Materials:
-  - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
+  - {fileID: 0}
   m_StaticBatchInfo:
     firstSubMesh: 0
     subMeshCount: 0
@@ -225,14 +191,60 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
-  m_SelectedEditorRenderState: 0
+  m_SelectedEditorRenderState: 3
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
   m_SortingOrder: 0
-  m_Sprite: {fileID: 0}
-  m_Color: {r: 1, g: 1, b: 1, a: 1}
-  m_FlipX: 0
-  m_FlipY: 0
+--- !u!33 &33497128563115602
+MeshFilter:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1987708437913928}
+  m_Mesh: {fileID: 0}
+--- !u!33 &33525330034667760
+MeshFilter:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1584217464481202}
+  m_Mesh: {fileID: 0}
+--- !u!33 &33563640867506102
+MeshFilter:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1647720897566604}
+  m_Mesh: {fileID: 0}
+--- !u!65 &65569554269210656
+BoxCollider:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1647720897566604}
+  m_Material: {fileID: 0}
+  m_IsTrigger: 1
+  m_Enabled: 1
+  serializedVersion: 2
+  m_Size: {x: 4.06, y: 3.8, z: 0.2}
+  m_Center: {x: -0.000000014901161, y: 0, z: 0}
+--- !u!95 &95549217189957502
+Animator:
+  serializedVersion: 3
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1647720897566604}
+  m_Enabled: 1
+  m_Avatar: {fileID: 0}
+  m_Controller: {fileID: 9100000, guid: 40e1259af4314d74d86c9266e5c34184, type: 2}
+  m_CullingMode: 0
+  m_UpdateMode: 0
+  m_ApplyRootMotion: 0
+  m_LinearVelocityBlending: 0
+  m_WarningMessage: 
+  m_HasTransformHierarchy: 1
+  m_AllowConstantClipSamplingOptimization: 1

+ 9 - 84
Assets/Resource/Prefab/PrefabUI/GroupD.prefab

@@ -3006,23 +3006,6 @@ GameObject:
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
   m_IsActive: 1
---- !u!1 &1952824747451048
-GameObject:
-  m_ObjectHideFlags: 1
-  m_PrefabParentObject: {fileID: 0}
-  m_PrefabInternal: {fileID: 100100000}
-  serializedVersion: 5
-  m_Component:
-  - component: {fileID: 224313613547489880}
-  - component: {fileID: 222799791215305856}
-  - component: {fileID: 114717479175982566}
-  m_Layer: 5
-  m_Name: T_RandomLab
-  m_TagString: Untagged
-  m_Icon: {fileID: 0}
-  m_NavMeshLayer: 0
-  m_StaticEditorFlags: 0
-  m_IsActive: 1
 --- !u!1 &1958222273491316
 GameObject:
   m_ObjectHideFlags: 1
@@ -4520,15 +4503,15 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   m_Material: {fileID: 0}
-  m_Color: {r: 0.41116995, g: 0.8602941, b: 0.41116995, a: 1}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
   m_RaycastTarget: 1
   m_OnCullStateChanged:
     m_PersistentCalls:
       m_Calls: []
     m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
       Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
-  m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
-  m_Type: 1
+  m_Sprite: {fileID: 21300000, guid: e7b8fa62ec544ae4fa564c5a632f62b6, type: 3}
+  m_Type: 0
   m_PreserveAspect: 0
   m_FillCenter: 1
   m_FillMethod: 4
@@ -8174,39 +8157,6 @@ MonoBehaviour:
     m_VerticalOverflow: 0
     m_LineSpacing: 1
   m_Text: 10000
---- !u!114 &114717479175982566
-MonoBehaviour:
-  m_ObjectHideFlags: 1
-  m_PrefabParentObject: {fileID: 0}
-  m_PrefabInternal: {fileID: 100100000}
-  m_GameObject: {fileID: 1952824747451048}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
-  m_Material: {fileID: 0}
-  m_Color: {r: 1, g: 1, b: 1, a: 1}
-  m_RaycastTarget: 1
-  m_OnCullStateChanged:
-    m_PersistentCalls:
-      m_Calls: []
-    m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
-      Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
-  m_FontData:
-    m_Font: {fileID: 12800000, guid: 0e86defab91f2fb4189708f6dde11005, type: 3}
-    m_FontSize: 14
-    m_FontStyle: 0
-    m_BestFit: 0
-    m_MinSize: 10
-    m_MaxSize: 40
-    m_Alignment: 4
-    m_AlignByGeometry: 0
-    m_RichText: 1
-    m_HorizontalOverflow: 0
-    m_VerticalOverflow: 0
-    m_LineSpacing: 1
-  m_Text: "\u968F\u673A"
 --- !u!114 &114734099788569290
 MonoBehaviour:
   m_ObjectHideFlags: 1
@@ -10598,12 +10548,6 @@ CanvasRenderer:
   m_PrefabParentObject: {fileID: 0}
   m_PrefabInternal: {fileID: 100100000}
   m_GameObject: {fileID: 1819204488424166}
---- !u!222 &222799791215305856
-CanvasRenderer:
-  m_ObjectHideFlags: 1
-  m_PrefabParentObject: {fileID: 0}
-  m_PrefabInternal: {fileID: 100100000}
-  m_GameObject: {fileID: 1952824747451048}
 --- !u!222 &222814704300754274
 CanvasRenderer:
   m_ObjectHideFlags: 1
@@ -11243,8 +11187,8 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 1}
-  m_AnchoredPosition: {x: 0, y: -0.5}
-  m_SizeDelta: {x: -20, y: -13}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: -20, y: -12}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!224 &224110110965917306
 RectTransform:
@@ -11932,24 +11876,6 @@ RectTransform:
   m_AnchoredPosition: {x: 0, y: -0.5}
   m_SizeDelta: {x: -20, y: -13}
   m_Pivot: {x: 0.5, y: 0.5}
---- !u!224 &224313613547489880
-RectTransform:
-  m_ObjectHideFlags: 1
-  m_PrefabParentObject: {fileID: 0}
-  m_PrefabInternal: {fileID: 100100000}
-  m_GameObject: {fileID: 1952824747451048}
-  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
-  m_LocalPosition: {x: 0, y: 0, z: 0}
-  m_LocalScale: {x: 1, y: 1, z: 1}
-  m_Children: []
-  m_Father: {fileID: 224934043000563092}
-  m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
-  m_AnchorMin: {x: 0, y: 0}
-  m_AnchorMax: {x: 1, y: 1}
-  m_AnchoredPosition: {x: 0, y: 0}
-  m_SizeDelta: {x: 0, y: 0}
-  m_Pivot: {x: 0.5, y: 0.5}
 --- !u!224 &224320573874205756
 RectTransform:
   m_ObjectHideFlags: 1
@@ -14012,18 +13938,17 @@ RectTransform:
   m_PrefabParentObject: {fileID: 0}
   m_PrefabInternal: {fileID: 100100000}
   m_GameObject: {fileID: 1962256433244238}
-  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
-  m_Children:
-  - {fileID: 224313613547489880}
+  m_Children: []
   m_Father: {fileID: 224334310953292558}
   m_RootOrder: 4
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0.5, y: 0.5}
   m_AnchorMax: {x: 0.5, y: 0.5}
-  m_AnchoredPosition: {x: 128.61996, y: -62.660004}
-  m_SizeDelta: {x: 53.2, y: 30}
+  m_AnchoredPosition: {x: 128.67, y: -20.160002}
+  m_SizeDelta: {x: 53.1, y: 53.481}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!224 &224938232921887762
 RectTransform:

+ 112 - 0
Assets/Resource/Shader/GrayMesh.shader

@@ -0,0 +1,112 @@
+Shader "DashGame/GrayMesh"
+{
+	Properties
+	{
+		[PerRendererData] _MainTex("Sprite Texture", 2D) = "white" {}
+	_Color("Tint", Color) = (1,1,1,1)
+		[MaterialToggle] PixelSnap("Pixel snap", Float) = 0
+
+		[PerRendererData] _GrayScaleX("GrayScaleX", range(0,1)) = 0.299
+		[PerRendererData] _GrayScaleY("GrayScaleY", range(0,1)) = 0.587
+		[PerRendererData] _GrayScaleZ("GrayScaleZ", range(0,1)) = 0.114
+	}
+
+		SubShader
+	{
+		Tags
+	{
+		"Queue" = "Transparent"
+		"IgnoreProjector" = "True"
+		"RenderType" = "Transparent"
+		"PreviewType" = "Plane"
+		"CanUseSpriteAtlas" = "True"
+	}
+
+		Cull Off
+		Lighting Off
+		ZWrite Off
+		Blend One OneMinusSrcAlpha
+
+		Pass
+	{
+		CGPROGRAM
+#pragma vertex vert
+#pragma fragment frag
+#pragma target 2.0
+#pragma multi_compile _ PIXELSNAP_ON
+#pragma multi_compile _ ETC1_EXTERNAL_ALPHA
+#include "UnityCG.cginc"
+
+		struct appdata_t
+	{
+		float4 vertex   : POSITION;
+		float4 color    : COLOR;
+		float2 texcoord : TEXCOORD0;
+		float2 grayScale : TEXCOORD1;
+		UNITY_VERTEX_INPUT_INSTANCE_ID
+	};
+
+	struct v2f
+	{
+		float grayScale : COLOR1;
+		float4 vertex   : SV_POSITION;
+		fixed4 color : COLOR;
+		float2 texcoord  : TEXCOORD0;
+		UNITY_VERTEX_OUTPUT_STEREO
+	};
+
+	fixed4 _Color;
+
+	v2f vert(appdata_t IN)
+	{
+		v2f OUT;
+		UNITY_SETUP_INSTANCE_ID(IN);
+		UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(OUT);
+		OUT.vertex = UnityObjectToClipPos(IN.vertex);
+		OUT.texcoord = IN.texcoord;
+		OUT.color = IN.color * _Color;
+		OUT.grayScale = IN.grayScale.x;
+#ifdef PIXELSNAP_ON
+		OUT.vertex = UnityPixelSnap(OUT.vertex);
+#endif
+
+		return OUT;
+	}
+
+	float _GrayScaleX;
+	float _GrayScaleY;
+	float _GrayScaleZ;
+	sampler2D _MainTex;
+	sampler2D _AlphaTex;
+
+	fixed4 SampleSpriteTexture(float2 uv)
+	{
+		fixed4 color = tex2D(_MainTex, uv);
+
+#if ETC1_EXTERNAL_ALPHA
+		// get the color from an external texture (usecase: Alpha support for ETC1 on android)
+		color.a = tex2D(_AlphaTex, uv).r;
+#endif //ETC1_EXTERNAL_ALPHA
+
+		return color;
+	}
+
+	fixed4 frag(v2f IN) : SV_Target
+	{
+		fixed4 c = SampleSpriteTexture(IN.texcoord)*IN.color;
+	c.rgb *= c.a;
+
+	fixed gray = dot(c.rgb, fixed3(_GrayScaleX, _GrayScaleY, _GrayScaleZ));
+
+	fixed newR = lerp(c.r, gray, IN.grayScale);
+	fixed newG = lerp(c.g, gray, IN.grayScale);
+	fixed newB = lerp(c.b, gray, IN.grayScale);
+
+	c.rgb = fixed3(newR, newG, newB);
+
+	return c;
+	}
+		ENDCG
+	}
+	}
+}

+ 9 - 0
Assets/Resource/Shader/GrayMesh.shader.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: e73e8e8cfe7b2344abcbf572918e22a1
+timeCreated: 1509087897
+licenseType: Pro
+ShaderImporter:
+  defaultTextures: []
+  userData: 
+  assetBundleName: ui
+  assetBundleVariant: 

+ 127 - 0
Assets/Resource/Shader/GrayMeshMat.mat

@@ -0,0 +1,127 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+  serializedVersion: 6
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_Name: GrayMeshMat
+  m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+  m_ShaderKeywords: _EMISSION
+  m_LightmapFlags: 1
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  m_SavedProperties:
+    serializedVersion: 2
+    m_TexEnvs:
+    - first:
+        name: _BumpMap
+      second:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - first:
+        name: _DetailAlbedoMap
+      second:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - first:
+        name: _DetailMask
+      second:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - first:
+        name: _DetailNormalMap
+      second:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - first:
+        name: _EmissionMap
+      second:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - first:
+        name: _MainTex
+      second:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - first:
+        name: _MetallicGlossMap
+      second:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - first:
+        name: _OcclusionMap
+      second:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - first:
+        name: _ParallaxMap
+      second:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Floats:
+    - first:
+        name: _BumpScale
+      second: 1
+    - first:
+        name: _Cutoff
+      second: 0.5
+    - first:
+        name: _DetailNormalMapScale
+      second: 1
+    - first:
+        name: _DstBlend
+      second: 0
+    - first:
+        name: _GlossMapScale
+      second: 1
+    - first:
+        name: _Glossiness
+      second: 0.5
+    - first:
+        name: _GlossyReflections
+      second: 1
+    - first:
+        name: _Metallic
+      second: 0
+    - first:
+        name: _Mode
+      second: 0
+    - first:
+        name: _OcclusionStrength
+      second: 1
+    - first:
+        name: _Parallax
+      second: 0.02
+    - first:
+        name: _SmoothnessTextureChannel
+      second: 0
+    - first:
+        name: _SpecularHighlights
+      second: 1
+    - first:
+        name: _SrcBlend
+      second: 1
+    - first:
+        name: _UVSec
+      second: 0
+    - first:
+        name: _ZWrite
+      second: 1
+    m_Colors:
+    - first:
+        name: _Color
+      second: {r: 1, g: 1, b: 1, a: 1}
+    - first:
+        name: _EmissionColor
+      second: {r: 0, g: 0, b: 0, a: 1}

+ 8 - 0
Assets/Resource/Shader/GrayMeshMat.mat.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 91a83bc59ad093c499f353b165d031b8
+timeCreated: 1509087926
+licenseType: Pro
+NativeFormatImporter:
+  userData: 
+  assetBundleName: ui
+  assetBundleVariant: 

二进制
Assets/Resource/Sprite/Editor/SpriteUI/骰子.png


+ 68 - 0
Assets/Resource/Sprite/Editor/SpriteUI/骰子.png.meta

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

二进制
Assets/Resource/Xlsx/language_config.xlsx


+ 72 - 0
Assets/Script/Manage/ManaAnim.cs

@@ -117,6 +117,7 @@ public class ManaAnim : Regist
 
     public static Dictionary<MaterialUnit, TweenMatColor> TweenMatColorDic = new Dictionary<MaterialUnit, TweenMatColor>();
     public static Dictionary<MaterialUnit, TweenMatFloat> TweenMatFloatDic = new Dictionary<MaterialUnit, TweenMatFloat>();
+    public static Dictionary<MeshFilter, TweenGrayMesh> TweenGrayMeshDic = new Dictionary<MeshFilter, TweenGrayMesh>();
 
     public static Dictionary<Transform, StreamScale> StreamScaleDic = new Dictionary<Transform, StreamScale>();
 
@@ -944,6 +945,22 @@ public class ManaAnim : Regist
         return tween;
     }
 
+    public static TweenGrayMesh TweenForGrayMesh(MeshFilter target)
+    {
+        TweenGrayMesh tween;
+
+        if (TweenGrayMeshDic.TryGetValue(target, out tween))
+        {
+            tween.StartForward();
+        }
+        else
+        {
+            throw new Exception();
+        }
+
+        return tween;
+    }
+
 
     public static TweenSr TweenBacSr(Transform target)
     {
@@ -1186,6 +1203,22 @@ public class ManaAnim : Regist
         return tween;
     }
 
+    public static TweenGrayMesh TweenBacGrayMesh(MeshFilter target)
+    {
+        TweenGrayMesh tween;
+
+        if (TweenGrayMeshDic.TryGetValue(target, out tween))
+        {
+            tween.StartBackward();
+        }
+        else
+        {
+            throw new Exception();
+        }
+
+        return tween;
+    }
+
 
     public static TweenSr TweenReForSr(Transform target)
     {
@@ -2007,6 +2040,20 @@ public class ManaAnim : Regist
         }
     }
 
+    public static TweenGrayMesh GetTweenGrayMesh(MeshFilter target)
+    {
+        TweenGrayMesh tween;
+
+        if (TweenGrayMeshDic.TryGetValue(target, out tween))
+        {
+            return tween;
+        }
+        else
+        {
+            return null;
+        }
+    }
+
     #endregion
 
     #region 创建动画
@@ -3372,5 +3419,30 @@ public class ManaAnim : Regist
         }
     }
 
+
+    public static TweenGrayMesh CreateTweenGrayMesh(MeshFilter target, float origin, float destination, float duration, bool originActive, bool destActive, Curve curve)
+    {
+        TweenGrayMesh tweenGrayMesh;
+
+        if (TweenGrayMeshDic.ContainsKey(target))
+        {
+            tweenGrayMesh = TweenGrayMeshDic[target];
+
+            tweenGrayMesh.Pause();
+
+            TweenGrayMeshDic[target] = new TweenGrayMesh(target, origin, destination, duration, originActive, destActive, curve);
+
+            return TweenGrayMeshDic[target];
+        }
+        else
+        {
+            tweenGrayMesh = new TweenGrayMesh(target, origin, destination, duration, originActive, destActive, curve);
+
+            TweenGrayMeshDic.Add(target, tweenGrayMesh);
+
+            return tweenGrayMesh;
+        }
+    }
+
     #endregion
 }

+ 6 - 6
Assets/Script/Manage/ManaAudio.cs

@@ -187,8 +187,8 @@ public class ManaAudio : Regist
 
     public static void InitAudioSettingFromPlayerPrefs()
     {
-        Audio = PlayerPrefs.GetInt("AudioOn", 1).ToBool();
-        Music = PlayerPrefs.GetInt("MusicOn", 1).ToBool();
+        Audio = PlayerPrefs.GetInt(Lib.AudioPrefs, 1).ToBool();
+        Music = PlayerPrefs.GetInt(Lib.MusicPrefs, 1).ToBool();
     }
 
     public static void SetLogoVolume()
@@ -213,7 +213,7 @@ public class ManaAudio : Regist
             MusicTheme.Pause();
             MusicPartyTheme.Pause();
 
-            PlayerPrefs.SetInt("MusicOn", 0);
+            PlayerPrefs.SetInt(Lib.MusicPrefs, 0);
         }
         else
         {
@@ -234,7 +234,7 @@ public class ManaAudio : Regist
                 MusicTheme.TweenReForAudio();
             }
 
-            PlayerPrefs.SetInt("MusicOn", 1);
+            PlayerPrefs.SetInt(Lib.MusicPrefs, 1);
         }
     }
 
@@ -247,7 +247,7 @@ public class ManaAudio : Regist
             ManaReso.SetActive("L_AudioOn", false);
             ManaReso.SetActive("L_AudioOff", true);
 
-            PlayerPrefs.SetInt("AudioOn", 0);
+            PlayerPrefs.SetInt(Lib.AudioPrefs, 0);
         }
         else
         {
@@ -256,7 +256,7 @@ public class ManaAudio : Regist
             ManaReso.SetActive("L_AudioOn", true);
             ManaReso.SetActive("L_AudioOff", false);
 
-            PlayerPrefs.SetInt("AudioOn", 1);
+            PlayerPrefs.SetInt(Lib.AudioPrefs, 1);
         }
     }
 

+ 1 - 1
Assets/Script/Manage/ManaCenter.cs

@@ -1175,7 +1175,7 @@ public class ManaCenter : Regist
             DownloadLock = true;
 
             ManaData.SaveXml();
-            PlayerPrefs.SetString("config", "");
+            PlayerPrefs.SetString(Lib.ConfigPrefs, "");
         }
         else
         {

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

@@ -106,7 +106,7 @@ public class ManaData : Regist
                                 bytes = File.ReadAllBytes(configPath);
                             }
 
-                            if (PlayerPrefs.GetString("config") != "" && PlayerPrefs.GetString("config") != Auxiliary.ToString(md5.ComputeHash(bytes)))
+                            if (PlayerPrefs.GetString(Lib.ConfigPrefs) != "" && PlayerPrefs.GetString("config") != Auxiliary.ToString(md5.ComputeHash(bytes)))
                             {
                                 Debug.LogWarning("Download Archive : MD5 doesn't match");
                                 //ManaDebug.Log("Download Archive");
@@ -133,7 +133,7 @@ public class ManaData : Regist
 
                             MD5 md5 = new MD5CryptoServiceProvider();
 
-                            if (PlayerPrefs.GetString("config") != Auxiliary.ToString(md5.ComputeHash(bytes)))
+                            if (PlayerPrefs.GetString(Lib.ConfigPrefs) != "" && PlayerPrefs.GetString(Lib.ConfigPrefs) != Auxiliary.ToString(md5.ComputeHash(bytes)))
                             {
                                 Debug.LogWarning("Download Archive : MD5 doesn't match");
                                 //ManaDebug.Log("Download Archive");
@@ -245,7 +245,7 @@ public class ManaData : Regist
 
             MD5 md5 = new MD5CryptoServiceProvider();
 
-            PlayerPrefs.SetString("config", Auxiliary.ToString(md5.ComputeHash(bytes)));
+            PlayerPrefs.SetString(Lib.ConfigPrefs, Auxiliary.ToString(md5.ComputeHash(bytes)));
         }
     }
 

+ 2 - 2
Assets/Script/Manage/ManaServer.cs

@@ -115,7 +115,7 @@ public class ManaServer : Regist
     public static string MailXml;
     public static List<MailReward> MailRewardList = new List<MailReward>();
 
-    //public static string BaseURL = "https://garden.dashgame.com/index.php/home";
+    public static string BaseURL = "https://garden.dashgame.com/index.php/home";
     public static string NewBaseURL = "https://garden.dashgame.com/index.php/newhome";
 
     #endregion
@@ -130,7 +130,7 @@ public class ManaServer : Regist
 
         //URLRequest.CreateStrURLRequest(true, NewBaseURL + "/user/load", urlData, Debug.LogWarning, URLRequest.Method.POST);
 
-        //urlData = new URLRequestData();
+        //URLRequestData urlData = new URLRequestData();
 
         //urlData.Add("u", "1708014471457405866");
 

+ 1 - 1
Assets/Script/Manage/ManaUI.cs

@@ -2830,7 +2830,7 @@ public class ManaUI : Regist
 
         #region T
 
-        ManaLan.Add(ManaReso.Get<Text>("T_RandomLab"), new LanStr("UI", "T_Random"));
+        //ManaLan.Add(ManaReso.Get<Text>("T_RandomLab"), new LanStr("UI", "T_Random"));
         ManaLan.Add(ManaReso.Get<Text>("T_ConfirmLab"), new LanStr("Common", "Confirm"));
 
         ManaReso.Get("T_NickName").CreateTweenCG(0f, 1f, 0.25f, false, true, Curve.EaseOutQuad);

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

@@ -642,8 +642,10 @@ public class Player : Regist , IPointerClickHandler
             true,
             Curve.EaseOutQuad
         );
-        //Debug.Log(ManaReso.LoadSprite("花影子", Folder.Scene));
-        Shadow.GetComponent<SpriteRenderer>().sprite = ManaReso.LoadSprite("花影子", Folder.Scene);
+        MeshFilter meshFilter = Shadow.GetComponent<MeshFilter>();
+        meshFilter.mesh = SpriteUtility.CreateMesh(ManaReso.LoadSprite("花影子", Folder.Scene));
+        meshFilter.mesh.SetUVs(1, Enumerable.Repeat(new Vector2(0, 1), meshFilter.mesh.vertices.Length).ToList());
+        Shadow.GetComponent<MeshRenderer>().sharedMaterial = UnityFactory.Materials[0];
 
         ExpressionSr = ChildDic["ExpressionSr"].GetComponent<SpriteRenderer>();
 

+ 127 - 62
Assets/Script/Object/PlazaRoomChest.cs

@@ -1,11 +1,13 @@
 using System;
 using System.Collections;
 using System.Collections.Generic;
-
+using System.Linq;
+using DragonBones;
 using UnityEngine;
 using UnityEngine.EventSystems;
 using UnityEngine.UI;
 using Random = UnityEngine.Random;
+using Transform = UnityEngine.Transform;
 
 public class PlazaRoomChest : MonoBehaviour, IPointerClickHandler
 {
@@ -34,13 +36,87 @@ public class PlazaRoomChest : MonoBehaviour, IPointerClickHandler
 
     private string AnswerColor;
     private FlowerInfo AnswerInfo;
-    private SpriteRenderer ParentSR;
-    public SpriteRenderer ChestSR;
-    public SpriteRenderer ShadowSR;
 
-    private Material GrayMaterial;
-    private MaterialUnit MaterialUnit;
-    private TweenMatFloat MaterialTween;
+    public bool Initialized;
+    public MeshFilter ChestMF;
+    public MeshFilter ShadowMF;
+    public MeshRenderer ChestMR;
+    public MeshRenderer ParentMR;
+    public MeshRenderer ShadowMR;
+    private static Mesh ShadowMesh
+    {
+        get
+        {
+            if (shadowMesh == null)
+            {
+                shadowMesh = SpriteUtility.CreateMesh(ManaReso.LoadSprite("花影子", Folder.Scene));
+                shadowMesh.SetUVs(1, Enumerable.Repeat(new Vector2(0,1), shadowMesh.vertices.Length).ToList());
+            }
+
+            return shadowMesh;
+        }
+    }
+    private static Mesh shadowMesh;
+    private static Mesh SystemMesh
+    {
+        get
+        {
+            if (systemMesh == null)
+            {
+                systemMesh = SpriteUtility.CreateMesh(ManaReso.LoadSprite("系统宝箱", Folder.Scene));
+                systemMesh.SetUVs(1, Enumerable.Repeat(new Vector2(1,1), systemMesh.vertices.Length).ToList());
+            }
+
+            return systemMesh;
+        }
+    }
+    private static Mesh systemMesh;
+    private static Mesh LuckyMesh
+    {
+        get
+        {
+            if (luckyMesh == null)
+            {
+                luckyMesh = SpriteUtility.CreateMesh(ManaReso.LoadSprite("钻石宝箱", Folder.Scene));
+                luckyMesh.SetUVs(1, Enumerable.Repeat(new Vector2(0,1), luckyMesh.vertices.Length).ToList());
+            }
+
+            return luckyMesh;
+        }
+    }
+    private static Mesh luckyMesh;
+    private static Mesh NumberMesh
+    {
+        get
+        {
+            if (numberMesh == null)
+            {
+                numberMesh = SpriteUtility.CreateMesh(ManaReso.LoadSprite("数字宝箱", Folder.Scene));
+                numberMesh.SetUVs(1, Enumerable.Repeat(new Vector2(0,1), numberMesh.vertices.Length).ToList());
+            }
+
+            return numberMesh;
+        }
+    }
+    private static Mesh numberMesh;
+    private static Mesh ColorMesh
+    {
+        get
+        {
+            if (colorMesh == null)
+            {
+                colorMesh = SpriteUtility.CreateMesh(ManaReso.LoadSprite("花朵宝箱", Folder.Scene));
+                colorMesh.SetUVs(1, Enumerable.Repeat(new Vector2(0,1), colorMesh.vertices.Length).ToList());
+            }
+
+            return colorMesh;
+        }
+    }
+    private static Mesh colorMesh;
+
+    public TweenGrayMesh TweenGrayMesh;
+    public TweenRenderer TweenRenderer;
+    public TweenScale TweenScale;
 
     public static InputField InputField;
     public static PlazaRoomChest CurrentChest;
@@ -141,26 +217,13 @@ public class PlazaRoomChest : MonoBehaviour, IPointerClickHandler
 
     public void RetriveChest()
     {
-        ParentSR.TweenBacSr();
+        TweenRenderer.StartBackward();
     }
 
     public void Init(ChestData chestData)
     {
         BaseInit(chestData);
 
-        ChestSR.sharedMaterial = ShadowSR.sharedMaterial;
-        
-        //if (chestData.Owner == long.Parse(ManaServer.SerialNumber))
-        //{
-        //    SetColliders(false);
-        //    StopAnim();
-        //}
-        //else
-        //{
-        //    SetColliders(true);
-        //}
-        SetColliders(true);
-
         if (chestData.ChestType == ChestType.GuessColor)
         {
             AnswerInfo = ManaGarden.FlowerInfoDic.Random();
@@ -172,20 +235,11 @@ public class PlazaRoomChest : MonoBehaviour, IPointerClickHandler
     {
         BaseInit(chestData);
 
-        GrayMaterial = new Material(Lib.GraySpriteMat);
-        GrayMaterial.SetFloat("_GrayLerp", 1);
-        GrayMaterial.SetFloat("_GrayScaleX", 0.299f);
-        GrayMaterial.SetFloat("_GrayScaleY", 0.587f);
-        GrayMaterial.SetFloat("_GrayScaleZ", 0.114f);
-        MaterialUnit = new MaterialUnit(GrayMaterial, transform, new List<string>() { "_GrayLerp" });
-        MaterialTween = MaterialUnit.CreateTweenMatFloat(1, 0, 0.25f, true, true, Curve.EaseOutQuad);
-        MaterialTween.OnForwardFinish = () => { ChestSR.sharedMaterial = ShadowSR.sharedMaterial; };
+        TweenGrayMesh = new TweenGrayMesh(ChestMF, 1, 0, 0.25f, true, true, Curve.EaseOutQuad);
 
         Deactive();
 
         SystemChest = this;
-
-        //SetColliders(false);
     }
 
     private void BaseInit(ChestData chestData)
@@ -195,48 +249,60 @@ public class PlazaRoomChest : MonoBehaviour, IPointerClickHandler
             InputField = ManaReso.Get<InputField>("Y_InputField");
         }
 
-        ChestSR = transform.GetComponent<SpriteRenderer>();
-        ShadowSR = transform.parent.GetChild(1).GetComponent<SpriteRenderer>();
-        ShadowSR.sprite = ManaReso.LoadSprite("花影子", Folder.Scene);
-        if (chestData.ChestType == ChestType.System)
-        {
-            ChestSR.sprite = ManaReso.LoadSprite("系统宝箱", Folder.Scene);
-        }
-        else if (chestData.ChestType == ChestType.Lucky)
+        if (!Initialized)
         {
-            ChestSR.sprite = ManaReso.LoadSprite("钻石宝箱", Folder.Scene);
+            Initialized = true;
+
+            ParentMR = transform.parent.GetComponent<MeshRenderer>();
+            ChestMF = transform.GetComponent<MeshFilter>();
+            ChestMR = transform.GetComponent<MeshRenderer>();
+            ShadowMF = transform.parent.GetChild(1).GetComponent<MeshFilter>();
+            ShadowMR = transform.parent.GetChild(1).GetComponent<MeshRenderer>();
+
+            ShadowMF.mesh = ShadowMesh;
+
+            TweenRenderer = new TweenRenderer(ParentMR, new Color(1, 1, 1, 0), Color.white, 0.25f, true, true, Curve.EaseOutQuad, false, true);
+            TweenRenderer.OnBackwardFinish = () => { ManaReso.Save(transform.parent.gameObject); };
+
+            TweenScale = transform.CreateTweenScale(0, 0.8f, 0.25f, false, true, Curve.EaseOutQuad);
+            TweenScale.StartForward();
         }
-        else if (chestData.ChestType == ChestType.GuessColor)
+        else
         {
-            ChestSR.sprite = ManaReso.LoadSprite("花朵宝箱", Folder.Scene);
+            TweenScale.InOrigin = true;
+            TweenScale.StartForward();
         }
-        else if (chestData.ChestType == ChestType.GuessNumber)
+
+        SetColliders(true);
+
+        ParentMR.sharedMaterial = UnityFactory.Materials[0];
+        ChestMR.sharedMaterial = UnityFactory.Materials[0];
+        ShadowMR.sharedMaterial = UnityFactory.Materials[0];
+
+        if (TweenGrayMesh != null)
         {
-            ChestSR.sprite = ManaReso.LoadSprite("数字宝箱", Folder.Scene);
+            TweenGrayMesh.InDestination = true;
         }
 
-        ParentSR = GetComponent<SpriteRenderer>();
-        TweenRoot tweenRoot = ParentSR.GetTweenSr();
-        if (tweenRoot != null)
+        if (chestData.ChestType == ChestType.System)
         {
-            tweenRoot.InDestination = true;
+            if (ChestMF.mesh != SystemMesh)
+                ChestMF.mesh = SystemMesh;
         }
-        else
+        else if (chestData.ChestType == ChestType.Lucky)
         {
-            tweenRoot = ParentSR.CreateTweenSr(0, 1, 0.25f, false, true, Curve.EaseOutQuad, false, true);
-            tweenRoot.OnBackwardFinish = () => { ManaReso.Save(transform.parent.gameObject); };
+            if (ChestMF.mesh != LuckyMesh)
+                ChestMF.mesh = LuckyMesh;
         }
-
-        tweenRoot = transform.GetTweenScale();
-        if (tweenRoot != null)
+        else if (chestData.ChestType == ChestType.GuessColor)
         {
-            tweenRoot.InOrigin = true;
-            tweenRoot.StartForward();
+            if (ChestMF.mesh != ColorMesh)
+                ChestMF.mesh = ColorMesh;
         }
-        else
+        else if (chestData.ChestType == ChestType.GuessNumber)
         {
-            tweenRoot = transform.CreateTweenScale(0, 0.8f, 0.25f, false, true, Curve.EaseOutQuad);
-            tweenRoot.StartForward();
+            if (ChestMF.mesh != NumberMesh)
+                ChestMF.mesh = NumberMesh;
         }
 
         ChestData = chestData;
@@ -252,8 +318,7 @@ public class PlazaRoomChest : MonoBehaviour, IPointerClickHandler
     {
         if (ChestData.ChestType == ChestType.System)
         {
-            ChestSR.material = GrayMaterial;
-            MaterialTween.StartBackward();
+            TweenGrayMesh.StartBackward();
         }
 
         IsActive = false;
@@ -263,7 +328,7 @@ public class PlazaRoomChest : MonoBehaviour, IPointerClickHandler
     {
         if (ChestData.ChestType == ChestType.System)
         {
-            MaterialTween.StartForward();
+            TweenGrayMesh.StartForward();
         }
 
         IsActive = true;

+ 1 - 3
Assets/Script/SFS/Manager/ChestMge.cs

@@ -320,7 +320,7 @@ public class ChestMge : Regist
     {
         foreach (var plazaRoomChest in PlazaRoomChests)
         {
-            plazaRoomChest.RetriveChest();
+            ManaReso.Save(plazaRoomChest.transform.parent);
         }
         PlazaRoomChests = new List<PlazaRoomChest>();
     }
@@ -380,7 +380,6 @@ public class ChestMge : Regist
             return;
         }
 
-        PlazaRoomChest.SystemChest.SetColliders(true);
         PlazaRoomChest.SystemChest.Active();
     }
 
@@ -397,7 +396,6 @@ public class ChestMge : Regist
         }
 
         ChestRoomDictionary.Remove(PlazaRoomChest.SystemChest.ChestData.ID);
-        PlazaRoomChest.SystemChest.SetColliders(true);
         PlazaRoomChest.SystemChest.Active();
     }
 

+ 203 - 0
Assets/Script/Tool/Anim/TweenGrayMesh.cs

@@ -0,0 +1,203 @@
+using UnityEngine;
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Linq;
+
+public class TweenGrayMesh : TweenRoot
+{
+    #region 变量
+
+    public override bool InOrigin
+    {
+        get
+        {
+            if (Target.mesh.uv2[0].x.Equal(Origin))
+            {
+                InOrigin_ = true;
+            }
+            else
+            {
+                InOrigin_ = false;
+            }
+
+            return InOrigin_;
+        }
+        set
+        {
+            InOrigin_ = value;
+
+            InPause = false;
+            InForward = false;
+            InBackward = false;
+
+            if (InOrigin_)
+            {
+                for (int i = 0; i < UV2.Count; i++)
+                {
+                    UV2[i] = new Vector2(Origin, 1);
+                }
+                Target.mesh.SetUVs(1, UV2);
+
+                BackwardFinish();
+            }
+        }
+    }
+
+    public override bool InDestination
+    {
+        get
+        {
+            if (Target.mesh.uv2[0].x.Equal(Destination))
+            {
+                InDestination_ = true;
+            }
+            else
+            {
+                InDestination_ = false;
+            }
+
+            return InDestination_;
+        }
+        set
+        {
+            InDestination_ = value;
+
+            InPause = false;
+            InForward = false;
+            InBackward = false;
+
+            if (InDestination_)
+            {
+                for (int i = 0; i < UV2.Count; i++)
+                {
+                    UV2[i] = new Vector2(Destination, 1);
+                }
+                Target.mesh.SetUVs(1, UV2);
+
+                ForwardFinish();
+            }
+        }
+    }
+
+    public float Delta;
+    public float Origin;
+    public float Destination;
+    public MeshFilter Target;
+    public List<Vector2> UV2 = new List<Vector2>();
+    public CurveFunctionF Func;
+
+    #endregion
+
+    public TweenGrayMesh(MeshFilter target, float origin, float destination, float duration, bool originActive, bool destActive, Curve curve) : base(false, curve, target)
+    {
+        Func = ManaAnim.CurveFuncDicF[curve];
+        Target = target;
+        UV2 = Enumerable.Repeat(new Vector2(target.mesh.uv2[0].x, 1), target.mesh.vertices.Length).ToList();
+
+        InForward = false;
+        InBackward = false;
+
+        Delta = destination - origin;
+        Origin = origin;
+        Duration = duration;
+        DestActive = destActive;
+        Destination = destination;
+        OriginActive = originActive;
+    }
+
+    public override bool StartForward()
+    {
+        if (base.StartForward())
+        {
+            return true;
+        }
+
+        if (InBackward)
+        {
+            InBackward = false;
+
+            Timer = ManaAnim.GetTimerFloat(Target.mesh.uv2[0].x, Duration, Origin, Delta, Curve);
+        }
+
+        return false;
+    }
+
+    public override bool StartBackward()
+    {
+        if (base.StartBackward())
+        {
+            return true;
+        }
+
+        if (InForward)
+        {
+            InForward = false;
+
+            Timer = ManaAnim.GetTimerFloat(Target.mesh.uv2[0].x, Duration, Destination, -Delta, Curve);
+        }
+
+        return false;
+    }
+
+    public override bool DoForward()
+    {
+        Timer += Time.deltaTime;
+
+        if (Timer > Duration)
+        {
+            InDestination = true;
+
+            if (OnForwardFinish != null)
+            {
+                OnForwardFinish.Invoke();
+            }
+
+            SetLoop(EventType.ForwardFinish);
+
+            return true;
+        }
+        else
+        {
+            float value = Func(Timer, Duration, Origin, Delta);
+            for (int i = 0; i < UV2.Count; i++)
+            {
+                UV2[i] = new Vector2(value, 1);
+            }
+            Target.mesh.SetUVs(1, UV2);
+
+            return false;
+        }
+    }
+
+    public override bool DoBackward()
+    {
+        Timer += Time.deltaTime;
+
+        if (Timer > Duration)
+        {
+            InOrigin = true;
+
+            if (OnBackwardFinish != null)
+            {
+                OnBackwardFinish.Invoke();
+            }
+
+            SetLoop(EventType.BackwardFinish);
+
+            return true;
+        }
+        else
+        {
+            float value = Func(Timer, Duration, Destination, -Delta);
+            for (int i = 0; i < UV2.Count; i++)
+            {
+                UV2[i] = new Vector2(value, 1);
+            }
+            Target.mesh.SetUVs(1, UV2);
+
+            return false;
+        }
+    }
+}

+ 12 - 0
Assets/Script/Tool/Anim/TweenGrayMesh.cs.meta

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

+ 8 - 0
Assets/Script/Tool/Lib.cs

@@ -5,6 +5,10 @@ using System.Collections.Generic;
 
 public class Lib
 {
+    public static string ConfigPrefs = "config";
+    public static string AudioPrefs = "AudioOn";
+    public static string MusicPrefs = "MusicOn";
+
     public static Color SelfMessage = new Color(21/255f, 96/255f, 96/255f, 1);
     public static Color OtherMessage = new Color(0, 0, 0, 180/255f);
 
@@ -28,4 +32,8 @@ public class Lib
     {
         get { return ManaReso.Load<Material>("GraySpriteMat", Folder.UI); }
     }
+    public static Material GrayMeshMat
+    {
+        get { return ManaReso.Load<Material>("GrayMeshMat", Folder.UI); }
+    }
 }

+ 1 - 16
Assets/Script/Tool/SpriteUtility/Editor/SpriteUtilityWindow.cs

@@ -79,22 +79,7 @@ public class SpriteUtilityWindow : EditorWindow
             throw new Exception("Sprite未赋值");
         }
 
-        Mesh mesh = new Mesh();
-        List<Vector3>vertices = new List<Vector3>();
-        List<int> triangles = new List<int>();
-
-        foreach (var vertex in Instance.Sprite.vertices)
-        {
-            vertices.Add(vertex);
-        }
-        foreach (var triangle in Instance.Sprite.triangles)
-        {
-            triangles.Add(triangle);
-        }
-
-        mesh.vertices = vertices.ToArray();
-        mesh.triangles = triangles.ToArray();
-        mesh.uv = Instance.Sprite.uv;
+        Mesh mesh = SpriteUtility.CreateMesh(Instance.Sprite);
 
         AssetDatabase.CreateAsset(mesh, GetFullPath());
     }

+ 2 - 2
Assets/Script/Tool/SpriteUtility/SerializeObject.prefab

@@ -52,5 +52,5 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   Path: Assets
-  Name: Test
-  Sprite: {fileID: 21300034, guid: 8d523bac11c2f3742ab88a2cbd71bf39, type: 3}
+  Name: "\u94BB\u77F3\u5B9D\u7BB1"
+  Sprite: {fileID: 21300280, guid: 8d523bac11c2f3742ab88a2cbd71bf39, type: 3}

+ 40 - 4
Assets/Script/Tool/SpriteUtility/SpriteUtility.cs

@@ -1,6 +1,6 @@
 using System.Collections;
 using System.Collections.Generic;
-
+using System.Linq;
 using UnityEngine;
 
 public class SpriteUtility : MonoBehaviour
@@ -13,13 +13,49 @@ public class SpriteUtility : MonoBehaviour
 
     #endregion
 
-    public void Start()
+    public static Mesh CreateMesh(Sprite sprite)
     {
-        
+        Mesh mesh = new Mesh();
+        List<Vector3> vertices = new List<Vector3>();
+        List<int> triangles = new List<int>();
+
+        foreach (var vertex in sprite.vertices)
+        {
+            vertices.Add(vertex);
+        }
+        foreach (var triangle in sprite.triangles)
+        {
+            triangles.Add(triangle);
+        }
+
+        mesh.vertices = vertices.ToArray();
+        mesh.triangles = triangles.ToArray();
+        mesh.uv = sprite.uv;
+        mesh.colors = Enumerable.Repeat(Color.white, mesh.vertices.Length).ToArray();
+
+        return mesh;
     }
 
-    public void Update()
+    public static Mesh CreateMesh(Sprite sprite, Color color)
     {
+        Mesh mesh = new Mesh();
+        List<Vector3> vertices = new List<Vector3>();
+        List<int> triangles = new List<int>();
+
+        foreach (var vertex in sprite.vertices)
+        {
+            vertices.Add(vertex);
+        }
+        foreach (var triangle in sprite.triangles)
+        {
+            triangles.Add(triangle);
+        }
+
+        mesh.vertices = vertices.ToArray();
+        mesh.triangles = triangles.ToArray();
+        mesh.uv = sprite.uv;
+        mesh.colors = Enumerable.Repeat(color, mesh.vertices.Length).ToArray();
 
+        return mesh;
     }
 }

+ 10 - 4
第三期.txt

@@ -1,4 +1,8 @@
-用短码下载存档的问题
+无限领宝箱的Bug
+
+把表情加入龙骨图集
+
+利用shader控制深度
 
 
 关闭ManaDebug 开启CatchException
@@ -16,15 +20,17 @@
 IOS设置Team
 
 
-利用shader控制深度
-
 缺排行榜按钮 公告按钮
 
 内存优化(释放掉loading界面)
 
 Drawcall优化(聊天界面 表情 广场背景图片 宝箱 评论 点赞 公告 截图按钮 派对图标 上衣按钮需要打入图集)
 
+图片尺寸优化(自动调整尺寸-包括DragonBones)
 
 
 AtlasUtility SpriteUtility 中的UseSelectedPath UseSelectedName改为AutoPath AutoName
-检查文件夹路径和文件名是否合法应该提取出来
+检查文件夹路径和文件名是否合法应该提取出来
+
+
+小任务-资源导入器(花园导入Dragonbones后自动进行后续处理)