فهرست منبع

Merge branch 'master' of http://git.xwxgame.com/qianzhuqing/metaClient

# Conflicts:
#	Assets/GameMain/DataTables/CustomBody.bytes
#	Assets/GameMain/DataTables/CustomBody.txt
#	Assets/GameMain/Scripts/DataTable/DRCustomBody.cs
qianzhuqing 3 سال پیش
والد
کامیت
b00e3abb2e
100فایلهای تغییر یافته به همراه13866 افزوده شده و 12 حذف شده
  1. 8 8
      Assets/DOTween/Editor/Imgs/Footer.png.meta
  2. BIN
      Assets/GameMain/DataTables/CustomFaceStyple.bytes
  3. 7 0
      Assets/GameMain/DataTables/CustomFaceStyple.bytes.meta
  4. BIN
      Assets/GameMain/DataTables/CustomFaceStyple.txt
  5. 7 0
      Assets/GameMain/DataTables/CustomFaceStyple.txt.meta
  6. BIN
      Assets/GameMain/DataTables/CustomHairStyple.bytes
  7. 7 0
      Assets/GameMain/DataTables/CustomHairStyple.bytes.meta
  8. BIN
      Assets/GameMain/DataTables/CustomHairStyple.txt
  9. 7 0
      Assets/GameMain/DataTables/CustomHairStyple.txt.meta
  10. BIN
      Assets/GameMain/DataTables/CustomRole.bytes
  11. 7 0
      Assets/GameMain/DataTables/CustomRole.bytes.meta
  12. 24 0
      Assets/GameMain/DataTables/CustomRole.txt
  13. 7 0
      Assets/GameMain/DataTables/CustomRole.txt.meta
  14. BIN
      Assets/GameMain/DataTables/UIForm.txt
  15. 228 0
      Assets/GameMain/Scripts/DataTable/DRCustomFaceStyple.cs
  16. 11 0
      Assets/GameMain/Scripts/DataTable/DRCustomFaceStyple.cs.meta
  17. 218 0
      Assets/GameMain/Scripts/DataTable/DRCustomHairStyple.cs
  18. 11 0
      Assets/GameMain/Scripts/DataTable/DRCustomHairStyple.cs.meta
  19. 228 0
      Assets/GameMain/Scripts/DataTable/DRCustomRole.cs
  20. 11 0
      Assets/GameMain/Scripts/DataTable/DRCustomRole.cs.meta
  21. 2 2
      Assets/GameMain/Scripts/Procedure/ProcedureCustomRole.cs
  22. 82 0
      Assets/GameMain/Scripts/UI/CustomRole.cs
  23. 11 0
      Assets/GameMain/Scripts/UI/CustomRole.cs.meta
  24. 35 0
      Assets/GameMain/Scripts/UI/FinchFaceButton.cs
  25. 11 0
      Assets/GameMain/Scripts/UI/FinchFaceButton.cs.meta
  26. 174 0
      Assets/GameMain/Scripts/UI/FinchFaceForm.cs
  27. 11 0
      Assets/GameMain/Scripts/UI/FinchFaceForm.cs.meta
  28. 557 0
      Assets/GameMain/Scripts/UI/UICustom.cs
  29. 11 0
      Assets/GameMain/Scripts/UI/UICustom.cs.meta
  30. 95 0
      Assets/GameMain/Scripts/UI/UICustomBtn.cs
  31. 11 0
      Assets/GameMain/Scripts/UI/UICustomBtn.cs.meta
  32. 64 0
      Assets/GameMain/Scripts/UI/UICustomNor.cs
  33. 11 0
      Assets/GameMain/Scripts/UI/UICustomNor.cs.meta
  34. 7 0
      Assets/GameMain/Scripts/UI/UIFormId.cs
  35. 1 1
      Assets/GameMain/Model.meta
  36. 122 0
      Assets/GameMain/Scripts/UIColorMix/ColorPick.cs
  37. 11 0
      Assets/GameMain/Scripts/UIColorMix/ColorPick.cs.meta
  38. 34 0
      Assets/GameMain/Scripts/UIColorMix/ColorPickClick.cs
  39. 11 0
      Assets/GameMain/Scripts/UIColorMix/ColorPickClick.cs.meta
  40. 6 1
      Assets/GameMain/Scripts/Utility/AssetUtility.cs
  41. 8626 0
      Assets/GameMain/UI/UIForms/CustomRole.prefab
  42. 8 0
      Assets/GameMain/UI/UIForms/CustomRole.prefab.meta
  43. 8 0
      Assets/GameMain/UI/UISprites/Color.meta
  44. BIN
      Assets/GameMain/UI/UISprites/Color/baoi.png
  45. 128 0
      Assets/GameMain/UI/UISprites/Color/baoi.png.meta
  46. BIN
      Assets/GameMain/UI/UISprites/Color/dui.png
  47. 128 0
      Assets/GameMain/UI/UISprites/Color/dui.png.meta
  48. BIN
      Assets/GameMain/UI/UISprites/Color/guan.png
  49. 128 0
      Assets/GameMain/UI/UISprites/Color/guan.png.meta
  50. BIN
      Assets/GameMain/UI/UISprites/Color/gundng.png
  51. 128 0
      Assets/GameMain/UI/UISprites/Color/gundng.png.meta
  52. BIN
      Assets/GameMain/UI/UISprites/Color/hengd.png
  53. 128 0
      Assets/GameMain/UI/UISprites/Color/hengd.png.meta
  54. BIN
      Assets/GameMain/UI/UISprites/Color/kuang.png
  55. 128 0
      Assets/GameMain/UI/UISprites/Color/kuang.png.meta
  56. BIN
      Assets/GameMain/UI/UISprites/Color/wai.png
  57. 128 0
      Assets/GameMain/UI/UISprites/Color/wai.png.meta
  58. 8 0
      Assets/GameMain/UI/UISprites/CustomRole.meta
  59. BIN
      Assets/GameMain/UI/UISprites/CustomRole/OFF.png
  60. 128 0
      Assets/GameMain/UI/UISprites/CustomRole/OFF.png.meta
  61. BIN
      Assets/GameMain/UI/UISprites/CustomRole/ON.png
  62. 128 0
      Assets/GameMain/UI/UISprites/CustomRole/ON.png.meta
  63. BIN
      Assets/GameMain/UI/UISprites/CustomRole/baocun.png
  64. 128 0
      Assets/GameMain/UI/UISprites/CustomRole/baocun.png.meta
  65. BIN
      Assets/GameMain/UI/UISprites/CustomRole/biili.png
  66. 128 0
      Assets/GameMain/UI/UISprites/CustomRole/biili.png.meta
  67. BIN
      Assets/GameMain/UI/UISprites/CustomRole/bizi.png
  68. 128 0
      Assets/GameMain/UI/UISprites/CustomRole/bizi.png.meta
  69. BIN
      Assets/GameMain/UI/UISprites/CustomRole/bodysize.png
  70. 92 0
      Assets/GameMain/UI/UISprites/CustomRole/bodysize.png.meta
  71. BIN
      Assets/GameMain/UI/UISprites/CustomRole/bodyview.png
  72. 128 0
      Assets/GameMain/UI/UISprites/CustomRole/bodyview.png.meta
  73. BIN
      Assets/GameMain/UI/UISprites/CustomRole/bozithick.png
  74. 92 0
      Assets/GameMain/UI/UISprites/CustomRole/bozithick.png.meta
  75. BIN
      Assets/GameMain/UI/UISprites/CustomRole/boziwide.png
  76. 92 0
      Assets/GameMain/UI/UISprites/CustomRole/boziwide.png.meta
  77. BIN
      Assets/GameMain/UI/UISprites/CustomRole/circle.png
  78. 128 0
      Assets/GameMain/UI/UISprites/CustomRole/circle.png.meta
  79. BIN
      Assets/GameMain/UI/UISprites/CustomRole/datuilong.png
  80. 92 0
      Assets/GameMain/UI/UISprites/CustomRole/datuilong.png.meta
  81. BIN
      Assets/GameMain/UI/UISprites/CustomRole/datuishangthick.png
  82. 92 0
      Assets/GameMain/UI/UISprites/CustomRole/datuishangthick.png.meta
  83. BIN
      Assets/GameMain/UI/UISprites/CustomRole/datuishangwide.png
  84. 92 0
      Assets/GameMain/UI/UISprites/CustomRole/datuishangwide.png.meta
  85. BIN
      Assets/GameMain/UI/UISprites/CustomRole/datuixiathick.png
  86. 92 0
      Assets/GameMain/UI/UISprites/CustomRole/datuixiathick.png.meta
  87. BIN
      Assets/GameMain/UI/UISprites/CustomRole/datuixiawide.png
  88. 92 0
      Assets/GameMain/UI/UISprites/CustomRole/datuixiawide.png.meta
  89. BIN
      Assets/GameMain/UI/UISprites/CustomRole/deng.png
  90. 128 0
      Assets/GameMain/UI/UISprites/CustomRole/deng.png.meta
  91. BIN
      Assets/GameMain/UI/UISprites/CustomRole/ditu.png
  92. 128 0
      Assets/GameMain/UI/UISprites/CustomRole/ditu.png.meta
  93. BIN
      Assets/GameMain/UI/UISprites/CustomRole/erduo.png
  94. 128 0
      Assets/GameMain/UI/UISprites/CustomRole/erduo.png.meta
  95. BIN
      Assets/GameMain/UI/UISprites/CustomRole/faixng.png
  96. 128 0
      Assets/GameMain/UI/UISprites/CustomRole/faixng.png.meta
  97. BIN
      Assets/GameMain/UI/UISprites/CustomRole/fangda.png
  98. 128 0
      Assets/GameMain/UI/UISprites/CustomRole/fangda.png.meta
  99. BIN
      Assets/GameMain/UI/UISprites/CustomRole/fanhui.png
  100. 0 0
      Assets/GameMain/UI/UISprites/CustomRole/fanhui.png.meta

+ 8 - 8
Assets/DOTween/Editor/Imgs/Footer.png.meta

@@ -6,7 +6,7 @@ TextureImporter:
   serializedVersion: 11
   mipmaps:
     mipMapMode: 0
-    enableMipMap: 1
+    enableMipMap: 0
     sRGBTexture: 1
     linearTexture: 0
     fadeOut: 0
@@ -34,10 +34,10 @@ TextureImporter:
     filterMode: 1
     aniso: 1
     mipBias: 0
-    wrapU: 0
-    wrapV: 0
-    wrapW: 0
-  nPOTScale: 1
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 0
   lightmap: 0
   compressionQuality: 50
   spriteMode: 0
@@ -49,9 +49,9 @@ TextureImporter:
   spriteBorder: {x: 0, y: 0, z: 0, w: 0}
   spriteGenerateFallbackPhysicsShape: 1
   alphaUsage: 1
-  alphaIsTransparency: 0
+  alphaIsTransparency: 1
   spriteTessellationDetail: -1
-  textureType: 0
+  textureType: 2
   textureShape: 1
   singleChannelComponent: 0
   maxTextureSizeSet: 0
@@ -61,7 +61,7 @@ TextureImporter:
   platformSettings:
   - serializedVersion: 3
     buildTarget: DefaultTexturePlatform
-    maxTextureSize: 2048
+    maxTextureSize: 256
     resizeAlgorithm: 0
     textureFormat: -1
     textureCompression: 1

BIN
Assets/GameMain/DataTables/CustomFaceStyple.bytes


+ 7 - 0
Assets/GameMain/DataTables/CustomFaceStyple.bytes.meta

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

BIN
Assets/GameMain/DataTables/CustomFaceStyple.txt


+ 7 - 0
Assets/GameMain/DataTables/CustomFaceStyple.txt.meta

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

BIN
Assets/GameMain/DataTables/CustomHairStyple.bytes


+ 7 - 0
Assets/GameMain/DataTables/CustomHairStyple.bytes.meta

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

BIN
Assets/GameMain/DataTables/CustomHairStyple.txt


+ 7 - 0
Assets/GameMain/DataTables/CustomHairStyple.txt.meta

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

BIN
Assets/GameMain/DataTables/CustomRole.bytes


+ 7 - 0
Assets/GameMain/DataTables/CustomRole.bytes.meta

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

+ 24 - 0
Assets/GameMain/DataTables/CustomRole.txt

@@ -0,0 +1,24 @@
+#	捏人系统界面														
+#	Id	Name	IsActive	ButtonStyple	ButtonPushFun	Icon	IsSendContent	SendContent	Receive	Part	IsKeepChildrenScale	IsMirror	ScaleRangeMin	ScaleRangeMax	ModifyType
+#	int	string	int	int	string	string	int	int	int	int	bool	bool	float	float	int
+#	按钮id	按钮名称	是否显示	按钮类型	按钮控制类型	图片icon名称	是否传输内容	传输对应类型	接收到的对应数据	对应身体部位	是否保持子物体缩放	是否左右一样	缩放最小值	缩放最大值	缩放类型
+	1	捏脸	1	3	"1%2,5,6,7,8,9,10,11,12,13%0"	nielian	0	0	0	1	TRUE	TRUE	0	1	2
+	2	身材	1	3	0	shengcai	0	0	1	2	TRUE	TRUE	1	2	3
+	3	服装	1	3	0	fuzhuang	0	0	2	3	TRUE	TRUE	2	3	4
+	4	人类骨骼	1	3	0	humanbone	0	0	3	4	TRUE	TRUE	3	4	5
+	5	发型	1	0	"1%2,21,14,15,16,17,18,19,20%0"	faxing	0	0	4	5	TRUE	TRUE	4	5	6
+	6	脸型	1	0	0	lianxing	0	0	5	6	TRUE	TRUE	5	6	7
+	7	眼眶	1	0	0	yankuang	0	0	6	7	TRUE	TRUE	6	7	8
+	8	瞳孔	1	0	0	tongkong	0	0	7	8	TRUE	TRUE	7	8	9
+	9	眉毛	1	0	0	meimao	0	0	8	9	TRUE	TRUE	8	9	10
+	10	鼻子	1	0	0	bizi	0	0	9	10	TRUE	TRUE	9	10	11
+	11	耳朵	1	0	0	erduo	0	0	10	11	TRUE	TRUE	10	11	12
+	12	嘴巴	1	0	0	zuiba	0	0	11	12	TRUE	TRUE	11	12	13
+	13	肤色	1	0	1	fuse	0	0	12	13	TRUE	TRUE	12	13	14
+	14	发色	1	2	0	fase	1	1	13	14	TRUE	TRUE	13	14	15
+	15	发型1	1	0	0	faxing1	1	1	14	15	TRUE	TRUE	14	15	16
+	16	发型2	1	0	0	faxing2	1	1	15	16	TRUE	TRUE	15	16	17
+	17	发型3	1	0	0	faxing3	1	1	16	17	TRUE	TRUE	16	17	18
+	18	发型4	1	0	0	faxing4	1	1	17	18	TRUE	TRUE	17	18	19
+	19	发型5	1	0	0	faxing5	1	1	18	19	TRUE	TRUE	18	19	20
+	20	发型6	1	0	0	faxing6	1	1	19	20	TRUE	TRUE	19	20	21

+ 7 - 0
Assets/GameMain/DataTables/CustomRole.txt.meta

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

BIN
Assets/GameMain/DataTables/UIForm.txt


+ 228 - 0
Assets/GameMain/Scripts/DataTable/DRCustomFaceStyple.cs

@@ -0,0 +1,228 @@
+//------------------------------------------------------------
+// Game Framework
+// Copyright © 2013-2021 Jiang Yin. All rights reserved.
+// Homepage: https://gameframework.cn/
+// Feedback: mailto:ellan@gameframework.cn
+//------------------------------------------------------------
+// 此文件由工具自动生成,请勿直接修改。
+// 生成时间:2022-01-20 14:28:57.318
+//------------------------------------------------------------
+
+using GameFramework;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Text;
+using UnityEngine;
+using UnityGameFramework.Runtime;
+
+namespace MetaClient
+{
+    /// <summary>
+    /// 脸型。
+    /// </summary>
+    public class DRCustomFaceStyple : DataRowBase
+    {
+        private int m_Id = 0;
+
+        /// <summary>
+        /// 获取id。
+        /// </summary>
+        public override int Id
+        {
+            get
+            {
+                return m_Id;
+            }
+        }
+
+        /// <summary>
+        /// 获取名称。
+        /// </summary>
+        public string Name
+        {
+            get;
+            private set;
+        }
+
+        /// <summary>
+        /// 获取层级。
+        /// </summary>
+        public int Cengji
+        {
+            get;
+            private set;
+        }
+
+        /// <summary>
+        /// 获取是否显示。
+        /// </summary>
+        public int IsActive
+        {
+            get;
+            private set;
+        }
+
+        /// <summary>
+        /// 获取图片Icon。
+        /// </summary>
+        public string Icon
+        {
+            get;
+            private set;
+        }
+
+        /// <summary>
+        /// 获取按钮类型。
+        /// </summary>
+        public int ButtonStyple
+        {
+            get;
+            private set;
+        }
+
+        /// <summary>
+        /// 获取是否传输内容。
+        /// </summary>
+        public int IsSendContent
+        {
+            get;
+            private set;
+        }
+
+        /// <summary>
+        /// 获取传输对应类型。
+        /// </summary>
+        public int SendContent
+        {
+            get;
+            private set;
+        }
+
+        /// <summary>
+        /// 获取接收到的对应数据。
+        /// </summary>
+        public int Receive
+        {
+            get;
+            private set;
+        }
+
+        /// <summary>
+        /// 获取对应身体部位。
+        /// </summary>
+        public int Part
+        {
+            get;
+            private set;
+        }
+
+        /// <summary>
+        /// 获取是否保持子物体缩放。
+        /// </summary>
+        public bool IsKeepChildrenScale
+        {
+            get;
+            private set;
+        }
+
+        /// <summary>
+        /// 获取是否左右一样。
+        /// </summary>
+        public bool IsMirror
+        {
+            get;
+            private set;
+        }
+
+        /// <summary>
+        /// 获取缩放最小值。
+        /// </summary>
+        public float ScaleRangeMin
+        {
+            get;
+            private set;
+        }
+
+        /// <summary>
+        /// 获取缩放最大值。
+        /// </summary>
+        public float ScaleRangeMax
+        {
+            get;
+            private set;
+        }
+
+        /// <summary>
+        /// 获取缩放类型。
+        /// </summary>
+        public int ModifyType
+        {
+            get;
+            private set;
+        }
+
+        public override bool ParseDataRow(string dataRowString, object userData)
+        {
+            string[] columnStrings = dataRowString.Split(DataTableExtension.DataSplitSeparators);
+            for (int i = 0; i < columnStrings.Length; i++)
+            {
+                columnStrings[i] = columnStrings[i].Trim(DataTableExtension.DataTrimSeparators);
+            }
+
+            int index = 0;
+            index++;
+            m_Id = int.Parse(columnStrings[index++]);
+            Name = columnStrings[index++];
+            Cengji = int.Parse(columnStrings[index++]);
+            IsActive = int.Parse(columnStrings[index++]);
+            Icon = columnStrings[index++];
+            ButtonStyple = int.Parse(columnStrings[index++]);
+            IsSendContent = int.Parse(columnStrings[index++]);
+            SendContent = int.Parse(columnStrings[index++]);
+            Receive = int.Parse(columnStrings[index++]);
+            Part = int.Parse(columnStrings[index++]);
+            IsKeepChildrenScale = bool.Parse(columnStrings[index++]);
+            IsMirror = bool.Parse(columnStrings[index++]);
+            ScaleRangeMin = float.Parse(columnStrings[index++]);
+            ScaleRangeMax = float.Parse(columnStrings[index++]);
+            ModifyType = int.Parse(columnStrings[index++]);
+
+            GeneratePropertyArray();
+            return true;
+        }
+
+        public override bool ParseDataRow(byte[] dataRowBytes, int startIndex, int length, object userData)
+        {
+            using (MemoryStream memoryStream = new MemoryStream(dataRowBytes, startIndex, length, false))
+            {
+                using (BinaryReader binaryReader = new BinaryReader(memoryStream, Encoding.UTF8))
+                {
+                    m_Id = binaryReader.Read7BitEncodedInt32();
+                    Name = binaryReader.ReadString();
+                    Cengji = binaryReader.Read7BitEncodedInt32();
+                    IsActive = binaryReader.Read7BitEncodedInt32();
+                    Icon = binaryReader.ReadString();
+                    ButtonStyple = binaryReader.Read7BitEncodedInt32();
+                    IsSendContent = binaryReader.Read7BitEncodedInt32();
+                    SendContent = binaryReader.Read7BitEncodedInt32();
+                    Receive = binaryReader.Read7BitEncodedInt32();
+                    Part = binaryReader.Read7BitEncodedInt32();
+                    IsKeepChildrenScale = binaryReader.ReadBoolean();
+                    IsMirror = binaryReader.ReadBoolean();
+                    ScaleRangeMin = binaryReader.ReadSingle();
+                    ScaleRangeMax = binaryReader.ReadSingle();
+                    ModifyType = binaryReader.Read7BitEncodedInt32();
+                }
+            }
+
+            GeneratePropertyArray();
+            return true;
+        }
+
+        private void GeneratePropertyArray()
+        {
+
+        }
+    }
+}

+ 11 - 0
Assets/GameMain/Scripts/DataTable/DRCustomFaceStyple.cs.meta

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

+ 218 - 0
Assets/GameMain/Scripts/DataTable/DRCustomHairStyple.cs

@@ -0,0 +1,218 @@
+//------------------------------------------------------------
+// Game Framework
+// Copyright © 2013-2021 Jiang Yin. All rights reserved.
+// Homepage: https://gameframework.cn/
+// Feedback: mailto:ellan@gameframework.cn
+//------------------------------------------------------------
+// 此文件由工具自动生成,请勿直接修改。
+// 生成时间:2022-01-20 14:28:57.315
+//------------------------------------------------------------
+
+using GameFramework;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Text;
+using UnityEngine;
+using UnityGameFramework.Runtime;
+
+namespace MetaClient
+{
+    /// <summary>
+    /// 发型。
+    /// </summary>
+    public class DRCustomHairStyple : DataRowBase
+    {
+        private int m_Id = 0;
+
+        /// <summary>
+        /// 获取id。
+        /// </summary>
+        public override int Id
+        {
+            get
+            {
+                return m_Id;
+            }
+        }
+
+        /// <summary>
+        /// 获取名称。
+        /// </summary>
+        public string Name
+        {
+            get;
+            private set;
+        }
+
+        /// <summary>
+        /// 获取是否显示。
+        /// </summary>
+        public int IsActive
+        {
+            get;
+            private set;
+        }
+
+        /// <summary>
+        /// 获取图片Icon。
+        /// </summary>
+        public string Icon
+        {
+            get;
+            private set;
+        }
+
+        /// <summary>
+        /// 获取按钮类型。
+        /// </summary>
+        public int ButtonStyple
+        {
+            get;
+            private set;
+        }
+
+        /// <summary>
+        /// 获取是否传输内容。
+        /// </summary>
+        public int IsSendContent
+        {
+            get;
+            private set;
+        }
+
+        /// <summary>
+        /// 获取传输对应类型。
+        /// </summary>
+        public int SendContent
+        {
+            get;
+            private set;
+        }
+
+        /// <summary>
+        /// 获取接收到的对应数据。
+        /// </summary>
+        public int Receive
+        {
+            get;
+            private set;
+        }
+
+        /// <summary>
+        /// 获取对应身体部位。
+        /// </summary>
+        public int Part
+        {
+            get;
+            private set;
+        }
+
+        /// <summary>
+        /// 获取是否保持子物体缩放。
+        /// </summary>
+        public bool IsKeepChildrenScale
+        {
+            get;
+            private set;
+        }
+
+        /// <summary>
+        /// 获取是否左右一样。
+        /// </summary>
+        public bool IsMirror
+        {
+            get;
+            private set;
+        }
+
+        /// <summary>
+        /// 获取缩放最小值。
+        /// </summary>
+        public float ScaleRangeMin
+        {
+            get;
+            private set;
+        }
+
+        /// <summary>
+        /// 获取缩放最大值。
+        /// </summary>
+        public float ScaleRangeMax
+        {
+            get;
+            private set;
+        }
+
+        /// <summary>
+        /// 获取缩放类型。
+        /// </summary>
+        public int ModifyType
+        {
+            get;
+            private set;
+        }
+
+        public override bool ParseDataRow(string dataRowString, object userData)
+        {
+            string[] columnStrings = dataRowString.Split(DataTableExtension.DataSplitSeparators);
+            for (int i = 0; i < columnStrings.Length; i++)
+            {
+                columnStrings[i] = columnStrings[i].Trim(DataTableExtension.DataTrimSeparators);
+            }
+
+            int index = 0;
+            index++;
+            m_Id = int.Parse(columnStrings[index++]);
+            Name = columnStrings[index++];
+            IsActive = int.Parse(columnStrings[index++]);
+            Icon = columnStrings[index++];
+            ButtonStyple = int.Parse(columnStrings[index++]);
+            IsSendContent = int.Parse(columnStrings[index++]);
+            SendContent = int.Parse(columnStrings[index++]);
+            Receive = int.Parse(columnStrings[index++]);
+            Part = int.Parse(columnStrings[index++]);
+            IsKeepChildrenScale = bool.Parse(columnStrings[index++]);
+            IsMirror = bool.Parse(columnStrings[index++]);
+            ScaleRangeMin = float.Parse(columnStrings[index++]);
+            ScaleRangeMax = float.Parse(columnStrings[index++]);
+            ModifyType = int.Parse(columnStrings[index++]);
+            index++;
+
+            GeneratePropertyArray();
+            return true;
+        }
+
+        public override bool ParseDataRow(byte[] dataRowBytes, int startIndex, int length, object userData)
+        {
+            using (MemoryStream memoryStream = new MemoryStream(dataRowBytes, startIndex, length, false))
+            {
+                using (BinaryReader binaryReader = new BinaryReader(memoryStream, Encoding.UTF8))
+                {
+                    m_Id = binaryReader.Read7BitEncodedInt32();
+                    Name = binaryReader.ReadString();
+                    IsActive = binaryReader.Read7BitEncodedInt32();
+                    Icon = binaryReader.ReadString();
+                    ButtonStyple = binaryReader.Read7BitEncodedInt32();
+                    IsSendContent = binaryReader.Read7BitEncodedInt32();
+                    SendContent = binaryReader.Read7BitEncodedInt32();
+                    Receive = binaryReader.Read7BitEncodedInt32();
+                    Part = binaryReader.Read7BitEncodedInt32();
+                    IsKeepChildrenScale = binaryReader.ReadBoolean();
+                    IsMirror = binaryReader.ReadBoolean();
+                    ScaleRangeMin = binaryReader.ReadSingle();
+                    ScaleRangeMax = binaryReader.ReadSingle();
+                    ModifyType = binaryReader.Read7BitEncodedInt32();
+                }
+            }
+
+            GeneratePropertyArray();
+            return true;
+        }
+
+        private void GeneratePropertyArray()
+        {
+
+        }
+    }
+}

+ 11 - 0
Assets/GameMain/Scripts/DataTable/DRCustomHairStyple.cs.meta

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

+ 228 - 0
Assets/GameMain/Scripts/DataTable/DRCustomRole.cs

@@ -0,0 +1,228 @@
+//------------------------------------------------------------
+// Game Framework
+// Copyright © 2013-2021 Jiang Yin. All rights reserved.
+// Homepage: https://gameframework.cn/
+// Feedback: mailto:ellan@gameframework.cn
+//------------------------------------------------------------
+// 此文件由工具自动生成,请勿直接修改。
+// 生成时间:2022-01-18 17:00:23.091
+//------------------------------------------------------------
+
+using GameFramework;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Text;
+using UnityEngine;
+using UnityGameFramework.Runtime;
+
+namespace MetaClient
+{
+    /// <summary>
+    /// 捏人系统界面。
+    /// </summary>
+    public class DRCustomRole : DataRowBase
+    {
+        private int m_Id = 0;
+
+        /// <summary>
+        /// 获取按钮id。
+        /// </summary>
+        public override int Id
+        {
+            get
+            {
+                return m_Id;
+            }
+        }
+
+        /// <summary>
+        /// 获取按钮名称。
+        /// </summary>
+        public string Name
+        {
+            get;
+            private set;
+        }
+
+        /// <summary>
+        /// 获取是否显示。
+        /// </summary>
+        public int IsActive
+        {
+            get;
+            private set;
+        }
+
+        /// <summary>
+        /// 获取按钮类型。
+        /// </summary>
+        public int ButtonStyple
+        {
+            get;
+            private set;
+        }
+
+        /// <summary>
+        /// 获取按钮控制类型。
+        /// </summary>
+        public string ButtonPushFun
+        {
+            get;
+            private set;
+        }
+
+        /// <summary>
+        /// 获取图片icon名称。
+        /// </summary>
+        public string Icon
+        {
+            get;
+            private set;
+        }
+
+        /// <summary>
+        /// 获取是否传输内容。
+        /// </summary>
+        public int IsSendContent
+        {
+            get;
+            private set;
+        }
+
+        /// <summary>
+        /// 获取传输对应类型。
+        /// </summary>
+        public int SendContent
+        {
+            get;
+            private set;
+        }
+
+        /// <summary>
+        /// 获取接收到的对应数据。
+        /// </summary>
+        public int Receive
+        {
+            get;
+            private set;
+        }
+
+        /// <summary>
+        /// 获取对应身体部位。
+        /// </summary>
+        public int Part
+        {
+            get;
+            private set;
+        }
+
+        /// <summary>
+        /// 获取是否保持子物体缩放。
+        /// </summary>
+        public bool IsKeepChildrenScale
+        {
+            get;
+            private set;
+        }
+
+        /// <summary>
+        /// 获取是否左右一样。
+        /// </summary>
+        public bool IsMirror
+        {
+            get;
+            private set;
+        }
+
+        /// <summary>
+        /// 获取缩放最小值。
+        /// </summary>
+        public float ScaleRangeMin
+        {
+            get;
+            private set;
+        }
+
+        /// <summary>
+        /// 获取缩放最大值。
+        /// </summary>
+        public float ScaleRangeMax
+        {
+            get;
+            private set;
+        }
+
+        /// <summary>
+        /// 获取缩放类型。
+        /// </summary>
+        public int ModifyType
+        {
+            get;
+            private set;
+        }
+
+        public override bool ParseDataRow(string dataRowString, object userData)
+        {
+            string[] columnStrings = dataRowString.Split(DataTableExtension.DataSplitSeparators);
+            for (int i = 0; i < columnStrings.Length; i++)
+            {
+                columnStrings[i] = columnStrings[i].Trim(DataTableExtension.DataTrimSeparators);
+            }
+
+            int index = 0;
+            index++;
+            m_Id = int.Parse(columnStrings[index++]);
+            Name = columnStrings[index++];
+            IsActive = int.Parse(columnStrings[index++]);
+            ButtonStyple = int.Parse(columnStrings[index++]);
+            ButtonPushFun = columnStrings[index++];
+            Icon = columnStrings[index++];
+            IsSendContent = int.Parse(columnStrings[index++]);
+            SendContent = int.Parse(columnStrings[index++]);
+            Receive = int.Parse(columnStrings[index++]);
+            Part = int.Parse(columnStrings[index++]);
+            IsKeepChildrenScale = bool.Parse(columnStrings[index++]);
+            IsMirror = bool.Parse(columnStrings[index++]);
+            ScaleRangeMin = float.Parse(columnStrings[index++]);
+            ScaleRangeMax = float.Parse(columnStrings[index++]);
+            ModifyType = int.Parse(columnStrings[index++]);
+
+            GeneratePropertyArray();
+            return true;
+        }
+
+        public override bool ParseDataRow(byte[] dataRowBytes, int startIndex, int length, object userData)
+        {
+            using (MemoryStream memoryStream = new MemoryStream(dataRowBytes, startIndex, length, false))
+            {
+                using (BinaryReader binaryReader = new BinaryReader(memoryStream, Encoding.UTF8))
+                {
+                    m_Id = binaryReader.Read7BitEncodedInt32();
+                    Name = binaryReader.ReadString();
+                    IsActive = binaryReader.Read7BitEncodedInt32();
+                    ButtonStyple = binaryReader.Read7BitEncodedInt32();
+                    ButtonPushFun = binaryReader.ReadString();
+                    Icon = binaryReader.ReadString();
+                    IsSendContent = binaryReader.Read7BitEncodedInt32();
+                    SendContent = binaryReader.Read7BitEncodedInt32();
+                    Receive = binaryReader.Read7BitEncodedInt32();
+                    Part = binaryReader.Read7BitEncodedInt32();
+                    IsKeepChildrenScale = binaryReader.ReadBoolean();
+                    IsMirror = binaryReader.ReadBoolean();
+                    ScaleRangeMin = binaryReader.ReadSingle();
+                    ScaleRangeMax = binaryReader.ReadSingle();
+                    ModifyType = binaryReader.Read7BitEncodedInt32();
+                }
+            }
+
+            GeneratePropertyArray();
+            return true;
+        }
+
+        private void GeneratePropertyArray()
+        {
+
+        }
+    }
+}

+ 11 - 0
Assets/GameMain/Scripts/DataTable/DRCustomRole.cs.meta

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

+ 2 - 2
Assets/GameMain/Scripts/Procedure/ProcedureCustomRole.cs

@@ -44,7 +44,7 @@ namespace MetaClient
             CustomManager.Instance.Init();
 
             GameEntry.Event.Subscribe(OpenUIFormSuccessEventArgs.EventId, OnOpenUIFormSuccess);
-            GameEntry.UI.OpenUIForm(UIFormId.CustomRoleForm, this);
+            GameEntry.UI.OpenUIForm(UIFormId.CustomRole, this);
         }
 
         protected override void OnLeave(ProcedureOwner procedureOwner, bool isShutdown)
@@ -95,7 +95,7 @@ namespace MetaClient
                 return;
             }
 
-            m_SkinForm = (CustomRoleForm)ne.UIForm.Logic;
+            //m_SkinForm = (CustomRoleForm)ne.UIForm.Logic;
         }
     }
 }

+ 82 - 0
Assets/GameMain/Scripts/UI/CustomRole.cs

@@ -0,0 +1,82 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityGameFramework.Runtime;
+using GameFramework;
+using GameFramework.DataTable;
+using GameFramework.Sound;
+namespace MetaClient
+{
+    public class CustomRole : UGuiForm
+    {
+        [Header("选择功能分类界面")]
+        public GameObject toolView;
+        [Header("列表分类界面")]
+        public GameObject ButtonList;
+        [Header("历史记录")]
+        public List<string> historyStr;
+
+        [SerializeField]
+        private IDataTable<DRCustomRole> customRoleData;
+
+
+        //[Header("捏脸界面")]
+        //public GameObject nieLianView;
+        //[Header("身体修改界面")]
+        //public GameObject bodyChangeView;
+        //[Header("服装修改界面")]
+        //public GameObject clothChangeView;
+        //[SerializeField]
+        //private EFinchFaceCengJi eFinchFaceCengJi = EFinchFaceCengJi.None;//默认为未开始选择层级
+        //[SerializeField]
+        //private EFinchFaceStyple eFinchFaceStyple = EFinchFaceStyple.None;//默认为未选择界面分支 
+
+
+
+
+        protected override void OnOpen(object userData) {
+
+            base.OnOpen(userData);
+            IDataTable<DRCustomRole> _data = GameEntry.DataTable.GetDataTable<DRCustomRole>();
+            customRoleData = _data;
+        }
+
+
+        //public void ButtonDragFun(int _id) {
+        //    DRCustomRole _button = customRoleData.GetDataRow(_id);
+        //    int _buttonStyple = _button.ButtonStyple;
+        //    switch ((EButtonStyple)_buttonStyple) 
+        //    {
+        //        case EButtonStyple.Button:
+        //            break;
+        //        case EButtonStyple.Scroll:
+        //            break;
+        //        case EButtonStyple.TiaoSe:
+        //            break;
+        //        case EButtonStyple.NorButton:
+        //            break;
+        //    }
+        //}
+        public void ButtonDragWay(DRCustomRole _button) {
+            string[] _strArrary = _button.ButtonPushFun.Split(new char[] { ',' });
+            if (_strArrary[0] == "1")
+            {
+                string _str = _button.ButtonPushFun;
+                historyStr.Add(_str);
+            }
+        }
+
+
+
+        protected override void OnClose(bool isShutdown, object userData)
+        {
+            base.OnClose(isShutdown, userData);
+        }
+
+        public void ClickFaceChangeBtn()
+        {
+            GameEntry.Event.Fire(this, CustomRoleFaceEventArgs.Create(EditableFacePart.eye, new Vector3(1, 0, 0)));
+        }
+    }
+
+}

+ 11 - 0
Assets/GameMain/Scripts/UI/CustomRole.cs.meta

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

+ 35 - 0
Assets/GameMain/Scripts/UI/FinchFaceButton.cs

@@ -0,0 +1,35 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+using UnityGameFramework.Runtime;
+namespace MetaClient
+{
+    public class FinchFaceButton : MonoBehaviour
+    {
+        //[Header("当前选择层级")]
+        //public EFinchFaceCengJi eFinchFaceCengJi = EFinchFaceCengJi.None;//默认为未开始选择层级
+        //[Header("当前界面分支")]
+        //public EFinchFaceStyple eFinchFaceStyple = EFinchFaceStyple.None;//默认为未选择界面分支
+        //[Header("链接的Ui脚本")]
+        //public FinchFaceForm finchFaceForm;//默认为未选择界面分支
+        //[Header("是否改变当前的层级")]
+        //public bool changeCengJi = false;
+        //// Start is called before the first frame update
+        //void Awake()
+        //{
+        //    Button btn = this.GetComponent<Button>();
+        //    btn.onClick.AddListener(OnClick);
+        //}
+        //private void OnClick()
+        //{
+        //    finchFaceForm.ChooseJieMianFun(eFinchFaceStyple,eFinchFaceCengJi,changeCengJi,this.gameObject.name);
+        //    //Debug.Log("Button Clicked. ClickHandler.");
+        //}
+        //// Update is called once per frame
+        ////void Update()
+        ////{
+
+        ////}
+    }
+}

+ 11 - 0
Assets/GameMain/Scripts/UI/FinchFaceButton.cs.meta

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

+ 174 - 0
Assets/GameMain/Scripts/UI/FinchFaceForm.cs

@@ -0,0 +1,174 @@
+//------------------------------------------------------------
+// Game Framework
+// Copyright © 2013-2021 Jiang Yin. All rights reserved.
+// Homepage: https://gameframework.cn/
+// Feedback: mailto:ellan@gameframework.cn
+//------------------------------------------------------------
+
+using UnityEngine;
+using UnityEngine.UI;
+using UnityGameFramework.Runtime;
+
+namespace MetaClient
+{
+    public class FinchFaceForm : UGuiForm
+    {
+        [Header("选择功能分类界面")]
+        public GameObject toolView;
+        [Header("捏脸界面")]
+        public GameObject nieLianView;
+        [Header("身体修改界面")]
+        public GameObject bodyChangeView;
+        [Header("服装修改界面")]
+        public GameObject clothChangeView;
+        [SerializeField]
+        private EFinchFaceCengJi eFinchFaceCengJi = EFinchFaceCengJi.None;//默认为未开始选择层级
+        [SerializeField]
+        private EFinchFaceStyple eFinchFaceStyple = EFinchFaceStyple.None;//默认为未选择界面分支 
+
+         
+
+
+
+
+#if UNITY_2017_3_OR_NEWER
+        protected override void OnOpen(object userData)
+#else
+        protected internal override void OnOpen(object userData)
+#endif
+        {
+            base.OnOpen(userData);
+        }
+
+        /// <summary>
+        /// 按钮触发事件
+        /// </summary>
+        public void ChooseJieMianFun(EFinchFaceStyple _styple,EFinchFaceCengJi _cengJi,bool _changeCengJi, string _objName)
+        {
+            //eFinchFaceCengJi = _cengJi;
+            //eFinchFaceStyple = _styple;
+            ChangeStyple(_styple, _cengJi, _changeCengJi, _objName);
+        }
+        /// <summary>
+        /// 按钮触发事件控制事件
+        /// </summary>
+        private void ChangeStyple(EFinchFaceStyple _styple, EFinchFaceCengJi _cengJi, bool _changeCengJi, string _objName)
+        {
+            //首先判定是否需要改变选择的界面类型
+            if (_styple != eFinchFaceStyple)
+            {
+                eFinchFaceStyple = _styple;
+
+                toolView.SetActive(false);
+                if (nieLianView != null)
+                {
+                    nieLianView.SetActive(false);
+                }
+                if (bodyChangeView != null)
+                {
+                    bodyChangeView.SetActive(false);
+                }
+                if (clothChangeView != null)
+                {
+                    clothChangeView.SetActive(false);
+                }
+            
+            }
+            switch (eFinchFaceStyple)
+            {
+                //回到首次选择的界面
+                case EFinchFaceStyple.None:
+                    toolView.SetActive(true);
+                    break;
+                //捏脸分支
+                case EFinchFaceStyple.FaceChange:
+                    nieLianView.SetActive(true);
+                    ChangeCengJi(_cengJi, _changeCengJi, _objName);
+                    break;
+                //身体分支
+                case EFinchFaceStyple.BodyChange:
+                    bodyChangeView.SetActive(true);
+                    ChangeCengJi(_cengJi,_changeCengJi, _objName);
+                    break;
+                //衣服分支
+                case EFinchFaceStyple.ClothChange:
+                    clothChangeView.SetActive(true);
+                    ChangeCengJi(_cengJi,_changeCengJi,_objName);
+                    break;
+            }
+           
+        }
+        /// <summary>
+        /// 按钮控制界面层级修改
+        /// </summary>
+        private void ChangeCengJi(EFinchFaceCengJi _cengJi,bool _changeCengJi,string _objName) 
+        {
+            //if (_cengJi != eFinchFaceCengJi)
+            //{
+
+            //}
+            if (_changeCengJi)
+            {
+                eFinchFaceCengJi = _cengJi;
+            }
+        }
+        private void ChangeNowViewFun(string _objName)
+        {
+
+        }
+
+
+
+
+
+
+
+        /// <summary>
+        /// 按钮控制捏脸界面修改
+        /// </summary>
+        private void ChangeNieLianViewCengJi()
+        {
+            
+        }
+        
+
+
+
+
+#if UNITY_2017_3_OR_NEWER
+        protected override void OnClose(bool isShutdown, object userData)
+#else
+        protected internal override void OnClose(bool isShutdown, object userData)
+#endif
+        {
+            base.OnClose(isShutdown, userData);
+        }
+
+        public void ClickFaceChangeBtn()
+        {
+            GameEntry.Event.Fire(this, CustomRoleFaceEventArgs.Create(EditableFacePart.eye, new Vector3(1,0,0)));
+        }
+    }
+    /// <summary>
+    /// 捏脸分类
+    /// </summary>
+    public enum EFinchFaceStyple {
+        //初始
+        None,
+        //捏脸
+        FaceChange,
+        //身体重铸
+        BodyChange,
+        //衣服替换
+        ClothChange,
+    }
+    /// <summary>
+    /// 当前点击的图层应用顺序等级 即一级只能单向指向固定二级 二级只能回退到一级选择界面 
+    /// </summary>
+    public enum EFinchFaceCengJi {
+        None,
+        One,
+        Two,
+        Three
+    }
+}

+ 11 - 0
Assets/GameMain/Scripts/UI/FinchFaceForm.cs.meta

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

+ 557 - 0
Assets/GameMain/Scripts/UI/UICustom.cs

@@ -0,0 +1,557 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+using UnityGameFramework.Runtime;
+using GameFramework;
+using GameFramework.DataTable;
+using GameFramework.Sound;
+using GameFramework.Download;
+using GameFramework.FileSystem;
+using GameFramework.ObjectPool;
+using GameFramework.Resource;
+using System;
+using DG.Tweening;
+namespace MetaClient
+{
+
+    public class UICustom : UGuiForm
+    {
+        // Start is called before the first frame update
+        [Header("初始界面")]
+        public GameObject toolView;
+
+        [Header("基础按钮界面")]
+        public GameObject baseView;
+        [Header("保存按钮")]
+        public GameObject saveBtn;
+
+        [Header("捏脸界面")]
+        public GameObject nieLianView;
+
+
+        [Header("身体界面")]
+        public GameObject bodyView;
+
+        [Header("自定义")]
+        public GameObject ziDingYiBtn;
+        [Header("衣服界面")]
+        public GameObject clothView;
+
+        [Header("左边界面")]
+        public GameObject leftView;
+
+        [Header("右边界面")]
+        public GameObject rightView;
+
+        //[Header("点击后生成的按钮列表")]
+        //public GameObject buttonList;
+        [Header("白底背景")]
+        public GameObject whitebg;
+        [Header("按钮预制体")]
+        public GameObject buttonItem;
+
+        [Header("滑块")]
+        public Scrollbar scrollbar;
+
+       // [Header("顺序")]
+        private EButtonShunXu eButtonShunXu = EButtonShunXu.None;
+        
+        [Header("颜色演示预制体")]
+        public GameObject colItem;
+
+
+        public float tween_leftMax = 0;
+        public float tween_leftMin = -250;
+
+        public float tween_rightMin = 0;
+        public float tween_rightMax = 223;
+
+        private float tween_saveBtnMax = 119;
+        private float tween_saveBtnMin = -108;
+
+       
+        //private float tweenTime = 10;
+        //private float tweenLeastTime = 0;
+
+        public bool isTween = false;
+        [Header("选择界面分支")]
+        [SerializeField]
+        private ECustomStyple eCustomStyple = ECustomStyple.None;
+        [Header("历史记录用于回退")]
+        [SerializeField]
+        private List<string> histroy;
+       
+        private int part = 0;
+
+
+
+
+        //[Header("接受到的数据")]
+        //[SerializeField]
+        private IDataTable<DRCustomBody> _bodydata;
+        protected override void OnOpen(object userData)
+        {
+
+            base.OnOpen(userData);
+            IDataTable<DRCustomBody> _data = GameEntry.DataTable.GetDataTable<DRCustomBody>();
+            _bodydata = GameEntry.DataTable.GetDataTable<DRCustomBody>();
+            
+        }
+
+        protected override void OnClose(bool isShutdown, object userData)
+        {
+            base.OnClose(isShutdown, userData);
+        }
+
+
+        public void ClickBotton(ECustomStyple eCustomStyple,int id,bool ziDingYi)
+        {
+            if (isTween)
+            {
+                return;
+            }
+            isTween = true;
+            leftView.transform.DOLocalMoveX(tween_leftMin, 2f).SetEase(Ease.InOutBack).OnComplete(()=> {
+                //whitebg.SetActive(bg);
+               
+                 ClickBtnFun(eCustomStyple,id,ziDingYi);
+                leftView.transform.DOLocalMoveX(0, 2f).SetEase(Ease.InOutBack).OnComplete(() => {
+                    isTween = false;
+                    Debug.Log("222");
+                });
+            });
+            Debug.Log("333");
+            rightView.transform.DOLocalMoveX(tween_rightMax, 2f).SetEase(Ease.InOutBack).OnComplete(() => {
+                rightView.transform.DOLocalMoveX(0, 2f).SetEase(Ease.InOutBack).OnComplete(() => {
+                });
+            });
+
+        }
+        /// <summary>
+        /// 设置是否已在缓动
+        /// </summary>
+        public void SetTween(bool _bo) {
+            isTween = _bo;
+        }
+        /// <summary>
+        /// 获取是否缓动
+        /// </summary>
+        public bool GetTween()
+        {
+            return isTween;
+        }
+        public void HistoryAdd(string _str) {
+            histroy.Add(_str);
+        }
+
+
+        /// <summary>
+        /// 滑块改变
+        /// </summary>
+        public void ScrollValueChange()
+        {
+            Debug.Log(scrollbar.value);
+        }
+
+        /// <summary>
+        /// 修改滑块
+        /// </summary>
+
+        public void SetValue(int _part,ECustomStyple eCustomStyple)
+        {
+
+            //scrollbar.value = _value;
+            part = _part;
+        }
+        /// <summary>
+        /// 获得滑块值
+        /// </summary>
+        public float GetValue()
+        {
+            return scrollbar.value;
+        }
+
+        /// <summary>
+        /// 按钮点击事件
+        /// </summary>
+        public void ClickBtnFun(ECustomStyple eCustomStyple,int id,bool zidingyi) {
+            //if (isTween)
+            //{
+            //    return;
+            //}
+            whitebg.SetActive(true);
+ 
+
+
+         
+            //ECustomStyple _eCustomStyple = (ECustomStyple)int.Parse(_objects[0].ToString());
+            switch (eCustomStyple)
+            {
+                case ECustomStyple.None:
+                    break;
+                case ECustomStyple.NieLian:
+                    GameObject _nieLianList = nieLianView.transform.GetChild(0).gameObject;
+                    _nieLianList.SetActive(false);
+                    GameObject _nieLianXX = nieLianView.transform.GetChild(2).gameObject;
+                    _nieLianXX.SetActive(true);
+                    //if (!zidingyi)
+                    //{
+                    //    ZiDingYiNeiLian(eCustomStyple, id, _nieLianXX.transform.GetChild(0).gameObject);
+                    //    return;
+                    //}
+                    CreateNieLianImg(id, zidingyi);
+                    break;
+                case ECustomStyple.Body:
+                    GameObject _bodyList = bodyView.transform.GetChild(0).gameObject;
+                    _bodyList.SetActive(false);
+                    GameObject _bodyListXX =bodyView.transform.GetChild(2).gameObject;
+                    _bodyListXX.SetActive(true);
+                    //if (!zidingyi)
+                    //{
+                    //    ZiDingYiBody(eCustomStyple, id, _bodyListXX.transform.GetChild(0).gameObject);
+                    //    return;
+                    //}
+                    CreateBodyImg(id, zidingyi);
+                    break;
+                case ECustomStyple.Cloth:
+                    GameObject _clothList = clothView.transform.GetChild(0).gameObject;
+                    _clothList.SetActive(false);
+                    GameObject _clothListXX = clothView.transform.GetChild(2).gameObject;
+                    _clothListXX.SetActive(true);
+                    //if (!zidingyi)
+                    //{
+                    //    ZiDingYiCloth(eCustomStyple, id, _clothListXX.transform.GetChild(0).gameObject);
+                    //    return;
+                    //}
+                    CreateClothImg(id, zidingyi);
+                    break;
+            }
+        }
+        //public Action ActionFun() {
+
+        //    return null;
+        //}
+
+        private void RemoveAllChildren(GameObject parent)
+        {
+            Transform transform;
+            for (int i = 0; i < parent.transform.childCount; i++)
+            {
+                transform = parent.transform.GetChild(i);
+                GameObject.Destroy(transform.gameObject);
+            }
+        }
+
+        //public void ZiDingYiNeiLian(ECustomStyple eCustomStyple, int id,GameObject _objPar) {
+        //    RemoveAllChildren(bodyView.transform.GetChild(2).GetChild(0).gameObject);
+        //    GameObject _obj = GameObject.Instantiate(ziDingYiBtn);
+        //    _obj.transform.SetParent(_objPar.transform);
+        //    UICustomBtn _uICustomBtn = _obj.GetComponent<UICustomBtn>();
+        //    _uICustomBtn.id = id;
+        //    _uICustomBtn.eCustomStyple = eCustomStyple;
+        //    _obj.SetActive(true);
+
+        //}
+        //public void ZiDingYiBody(ECustomStyple eCustomStyple, int id, GameObject _objPar)
+        //{
+        //    RemoveAllChildren(bodyView.transform.GetChild(2).GetChild(0).gameObject);
+        //    GameObject _obj = GameObject.Instantiate(ziDingYiBtn);
+        //    _obj.transform.SetParent(_objPar.transform);
+        //    UICustomBtn _uICustomBtn = _obj.GetComponent<UICustomBtn>();
+        //    _uICustomBtn.id = id;
+        //    _uICustomBtn.eCustomStyple = eCustomStyple;
+        //    _obj.SetActive(true);
+
+
+        //}
+        //public void ZiDingYiCloth(ECustomStyple eCustomStyple, int id, GameObject _objPar)
+        //{
+        //    RemoveAllChildren(bodyView.transform.GetChild(2).GetChild(0).gameObject);
+        //    GameObject _obj = GameObject.Instantiate(ziDingYiBtn);
+        //    _obj.transform.SetParent(_objPar.transform);
+        //    UICustomBtn _uICustomBtn = _obj.GetComponent<UICustomBtn>();
+        //    _uICustomBtn.id = id;
+        //    _uICustomBtn.eCustomStyple = eCustomStyple;
+        //    _obj.SetActive(true);
+
+
+        //}
+
+
+        public void CreateNieLianImg(int parentid, bool ziDingYi)
+        {
+
+
+
+
+            GameObject _objPar = bodyView.transform.GetChild(2).GetChild(0).gameObject;
+            RemoveAllChildren(_objPar);
+            //等有捏脸表时改为捏脸
+            IDataTable<DRCustomBody> _data = GameEntry.DataTable.GetDataTable<DRCustomBody>();
+            _bodydata = GameEntry.DataTable.GetDataTable<DRCustomBody>();
+            int cengji = ziDingYi ? 0 : 1;
+            if (ziDingYi)
+            {    
+                GameObject _obj = GameObject.Instantiate(ziDingYiBtn);
+                _obj.transform.SetParent(_objPar.transform);
+                UICustomBtn _uICustomBtn = _obj.GetComponent<UICustomBtn>();
+                ChangeUICustom(_uICustomBtn, parentid, eCustomStyple);
+                //_uICustomBtn.id =parentid;
+                //_uICustomBtn.eCustomStyple = eCustomStyple;
+                //_obj.SetActive(true);
+            }
+
+            DRCustomBody[] dRCustomBodies = _bodydata.GetAllDataRows();
+            for (int i = 0; i < dRCustomBodies.Length; i++)
+            {
+                Debug.Log(dRCustomBodies[i].Id);
+                if (dRCustomBodies[i].ParentStyple == parentid)
+                {
+                    CreateButtonFun(dRCustomBodies[i].Icon, dRCustomBodies[i].Part, dRCustomBodies[i].Name, _objPar, dRCustomBodies[i].Id, dRCustomBodies[i].ButtonStyple, ECustomStyple.Body);
+                }
+            }
+           // ChangeListBotton(_objPar);
+        }
+        public void CreateClothImg(int parentid,bool ziDingYi)
+        {
+
+            GameObject _objPar = bodyView.transform.GetChild(2).GetChild(0).gameObject;
+            RemoveAllChildren(_objPar);
+            //等有服装时改为服装
+            IDataTable<DRCustomBody> _data = GameEntry.DataTable.GetDataTable<DRCustomBody>();
+            _bodydata = GameEntry.DataTable.GetDataTable<DRCustomBody>();
+            int cengji = ziDingYi ? 0 : 1;
+            if (ziDingYi)
+            {
+                GameObject _obj = GameObject.Instantiate(ziDingYiBtn);
+                _obj.transform.SetParent(_objPar.transform);
+                UICustomBtn _uICustomBtn = _obj.GetComponent<UICustomBtn>();
+                ChangeUICustom(_uICustomBtn, parentid, eCustomStyple);
+                //_uICustomBtn.id = parentid;
+                //_uICustomBtn.eCustomStyple = eCustomStyple;
+                //_obj.SetActive(true);
+
+            }
+            DRCustomBody[] dRCustomBodies = _bodydata.GetAllDataRows();
+            for (int i = 0; i < dRCustomBodies.Length; i++)
+            {
+                Debug.Log(dRCustomBodies[i].Id);
+                if (dRCustomBodies[i].ParentStyple == parentid)
+                {
+                    CreateButtonFun(dRCustomBodies[i].Icon, dRCustomBodies[i].Part, dRCustomBodies[i].Name, _objPar, dRCustomBodies[i].Id, dRCustomBodies[i].ButtonStyple, ECustomStyple.Body);
+                }
+            }
+          //  ChangeListBotton(_objPar);
+        }
+
+
+
+        public void ChangeUICustom(UICustomBtn uICustomBtn,int id, ECustomStyple eCustomStyple) 
+        {
+            uICustomBtn.id = id;
+            uICustomBtn.eCustomStyple = eCustomStyple;
+            uICustomBtn.gameObject.SetActive(true);
+        }
+
+
+
+
+
+
+
+
+        public void CreateBodyImg(int parentid,bool ziDingYi) {
+            GameObject _objPar = bodyView.transform.GetChild(2).GetChild(0).gameObject;
+            RemoveAllChildren(_objPar);
+            IDataTable<DRCustomBody> _data = GameEntry.DataTable.GetDataTable<DRCustomBody>();
+            _bodydata = GameEntry.DataTable.GetDataTable<DRCustomBody>();
+            int cengji = ziDingYi ? 0 : 1;
+            if (ziDingYi)
+            {
+                GameObject _obj = GameObject.Instantiate(ziDingYiBtn);
+                _obj.transform.SetParent(_objPar.transform);
+                UICustomBtn _uICustomBtn = _obj.GetComponent<UICustomBtn>();
+                ChangeUICustom(_uICustomBtn, parentid, eCustomStyple);
+                //_uICustomBtn.id = parentid;
+                //_uICustomBtn.eCustomStyple = eCustomStyple;
+                //_obj.SetActive(true);
+
+            }
+            DRCustomBody[] dRCustomBodies = _bodydata.GetAllDataRows();
+            for (int i = 0; i < dRCustomBodies.Length; i++)
+            {
+                Debug.Log(dRCustomBodies[i].Id);
+                if (dRCustomBodies[i].ParentStyple == parentid)
+                {
+                    CreateButtonFun(dRCustomBodies[i].Icon, dRCustomBodies[i].Part, dRCustomBodies[i].Name, _objPar, dRCustomBodies[i].Id, dRCustomBodies[i].ButtonStyple, ECustomStyple.Body);
+                }
+            }
+           // ChangeListBotton(_objPar);
+        }
+
+
+        /// <summary>
+        /// 改变列表长短
+        /// </summary>
+        public void ChangeListBotton(GameObject _obj) {
+            //Debug.Log("改变列表"+ _obj.transform.childCount+"");
+            
+            float _x = _obj.GetComponent<RectTransform>().offsetMin.x;
+            int _childNum = _obj.transform.childCount;
+            float _y = _childNum > 8 ? -240 * (_childNum - 8) : 0;
+            _obj.GetComponent<RectTransform>().offsetMin = new Vector2(_x, _y);
+        }
+
+
+
+
+
+
+
+
+
+        //private IEnumerator Tween(Action _action) {
+        //    for (int i = 0; i < 100; i++)
+        //    {
+        //        float _value = i / 100;
+        //        float _right=Mathf.Lerp(tween_rightMax, tween_rightMin, _value);
+        //        float _left= Mathf.Lerp(tween_leftMix, tween_rightMax, _value);
+        //        clothView.GetComponent<RectTransform>().SetPositionX(_right);
+        //        toolView.GetComponent<RectTransform>().SetPositionX(_right);
+        //        bodyView.GetComponent<RectTransform>().SetPositionX(_right);
+        //        nieLianView.GetComponent<RectTransform>().SetPositionX(_right);
+        //        baseView.GetComponent<RectTransform>().SetPositionX(_left);
+        //    }
+        //    yield return null;
+        //}
+
+
+
+
+
+
+
+
+        protected override void OnUpdate(float elapseSeconds, float realElapseSeconds)
+        {
+            base.OnUpdate(elapseSeconds, realElapseSeconds);
+        }
+
+        //private void CreateNieLianFun(object[] _objects) {
+        //    ENieLianStyple _eNieLianStyple = (ENieLianStyple)int.Parse(_objects[1].ToString());
+        //    switch (_eNieLianStyple)
+        //    {
+        //        case ENieLianStyple.faxing:
+        //            break;
+        //        case ENieLianStyple.lianxing:
+        //            break;
+        //        case ENieLianStyple.yankuang:
+        //            break;
+        //        case ENieLianStyple.tongkong:
+        //            break;
+        //        case ENieLianStyple.meimao:
+        //            break;
+        //        case ENieLianStyple.bizi:
+        //            break;
+        //        case ENieLianStyple.erduo:
+        //            break;
+        //        case ENieLianStyple.zuiba:
+        //            break;
+        //        case ENieLianStyple.fuse:
+        //            break;
+        //    }
+        //    //switch()
+        //}
+
+
+
+
+
+
+        private void CreateButtonFun(string path,int _part,string _name, GameObject _parent,int _id,int buttonstyple,ECustomStyple eCustomStyple) {
+            //Debug.Log(path);
+           // Debug.Log(_parent);
+            path = "CustomRole/" + path;
+            GameEntry.Resource.LoadAsset(AssetUtility.GetUISpriteAsset(path), new LoadAssetCallbacks(
+                (assetName, asset, duration, userData) =>
+                {
+                   // Debug.Log(path);
+                   // Debug.Log(_parent);
+
+                    Texture2D tex = (Texture2D)asset;
+                    var sprite = Sprite.Create(tex, new Rect(0, 0, tex.width, tex.height), Vector2.zero);
+                    GameObject _obj = GameObject.Instantiate(buttonItem);
+                    Image _objImg = _obj.transform.GetComponent<Image>();
+                    _obj.SetActive(true);
+                    _objImg.sprite = sprite;
+                    _obj.name = part+"";
+                    _obj.transform.SetParent(_parent.transform);
+                    UICustomBtn uICustomBtn = _obj.GetComponent<UICustomBtn>();
+                    uICustomBtn.id = _id;
+                    uICustomBtn.eButtonStyple = (EButtonStyple)buttonstyple;
+                    uICustomBtn.eCustomStyple = eCustomStyple;
+                    uICustomBtn.isCreate = false;
+                    uICustomBtn.part = _part;
+
+                    //GameObject 
+                    //img.sprite = sprite;
+                    //if (nativeSize)
+                    //{
+                    //    img.SetNativeSize();
+                    //}
+                    ChangeListBotton(_parent);
+                }));
+        }
+
+
+        //public void NieLian() { 
+        
+        //}
+
+
+        public void ClickFaceChangeBtn()
+        {
+            GameEntry.Event.Fire(this, CustomRoleFaceEventArgs.Create(EditableFacePart.eye, new Vector3(1, 0, 0)));
+        }
+    }
+    public enum ECustomStyple
+    {
+        None,
+        NieLian,
+        Body,
+        Cloth
+    }
+    public enum EButtonStyple
+    {
+        Button,
+        Scroll,
+        TiaoSe,
+        NorButton,
+    }
+    public enum ENieLianStyple {
+        None,
+        faxing,
+        lianxing,
+        yankuang,
+        tongkong,
+        meimao,
+        bizi,
+        erduo,
+        zuiba,
+        fuse
+    }
+    public enum EButtonShunXu {
+    
+        None,
+        First,
+        Second,
+        Third
+
+    }
+
+
+
+
+
+}

+ 11 - 0
Assets/GameMain/Scripts/UI/UICustom.cs.meta

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

+ 95 - 0
Assets/GameMain/Scripts/UI/UICustomBtn.cs

@@ -0,0 +1,95 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+namespace MetaClient
+{
+    public class UICustomBtn : MonoBehaviour
+    {
+        public UICustom uICustom;
+        [Header("选择界面分支")]
+        public ECustomStyple eCustomStyple = ECustomStyple.None;
+        [Header("按钮id")]
+        public int id;
+        [Header("功能分类")]
+        public EButtonStyple eButtonStyple = EButtonStyple.Button;
+
+        [Header("对应部位part")]
+        public int part=0;
+
+        //[Header("点击分支")]
+        //public ENieLianStyple eNieLianStyple = ENieLianStyple.None;
+        [Header("是否重新生成列表")]
+        public bool isCreate = false;
+
+        public bool isZDYPart = false;
+
+        private float value = 0;
+        // Start is called before the first frame update
+        void Awake()
+        {
+            //Debug.Log("111");
+            Button btn = this.GetComponent<Button>();
+            btn.onClick.AddListener(CustomBtnFun);
+        }
+        void CustomBtnFun() {
+            //Debug.Log("111");
+            //return;
+            switch (this.eButtonStyple)
+            {
+                case EButtonStyple.Button:
+                    if (!isCreate)
+                    {
+
+                    }
+                    else
+                    {
+                       
+                        CreatImgListFun();
+                    }
+                    break;
+                case EButtonStyple.Scroll:
+                    if (!uICustom.scrollbar.gameObject.activeSelf)
+                    {
+                        uICustom.scrollbar.gameObject.SetActive(true);
+                    }
+                    // uICustom.scrollbar.value = GetValue();
+                    uICustom.SetValue(part, eCustomStyple);
+                    
+                    break;
+                case EButtonStyple.TiaoSe:
+                    break;
+                case EButtonStyple.NorButton:
+                    CreatImgListFun();
+                    break;
+            }
+
+
+
+        }
+
+        //float GetVale()
+        //{
+        //    return 1;
+        //}
+        void CreatImgListFun() {
+            if (uICustom.isTween)
+            {
+                return;
+            }
+            else
+            {
+                 //object[] _objects = new object[]{ eCustomStyple, id };
+                // uICustom.ClickBotton(_objects);
+                uICustom.ClickBotton(eCustomStyple, id,isZDYPart);
+                int _numIsZDYPart = isZDYPart ? 1 : 0;
+                uICustom.HistoryAdd(eCustomStyple + "," + isZDYPart + "");
+            }
+        }
+        // Update is called once per frame
+        void Update()
+        {
+
+        }
+    }
+}

+ 11 - 0
Assets/GameMain/Scripts/UI/UICustomBtn.cs.meta

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

+ 64 - 0
Assets/GameMain/Scripts/UI/UICustomNor.cs

@@ -0,0 +1,64 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+using DG.Tweening;
+namespace MetaClient
+{
+    public class UICustomNor : MonoBehaviour
+    {
+        //[Header("左边界面")]
+        //public GameObject leftView;
+
+        //[Header("右边界面")]
+        //public GameObject rightView;
+
+        public UICustom uICustom;
+        [Header("出现对象")]
+        public List<GameObject> objAppear;
+        [Header("消失对象")]
+        public List<GameObject> objDisAppear;
+
+        // Start is called before the first frame update
+        void Start()
+        {
+            Button btn =gameObject.GetComponent<Button>();
+            btn.onClick.AddListener(ClickBotton);
+        }
+        public void ClickBotton()
+        {
+            if (uICustom.isTween)
+            {
+                return;
+            }
+            uICustom.isTween = true;
+            uICustom.leftView.transform.DOLocalMoveX(uICustom.tween_leftMin, 2f).SetEase(Ease.InOutBack).OnComplete(() => {
+                //  ClickBtnFun(_objects);
+                objDisAppear.ForEach(i => i.SetActive(false));
+                objAppear.ForEach(i => i.SetActive(true));
+                uICustom.leftView.transform.DOLocalMoveX(0, 2f).SetEase(Ease.InOutBack).OnComplete(() => {
+                    uICustom.isTween = false;
+                    uICustom.HistoryAdd("firstpush");
+                    Debug.Log("222");
+                });
+            });
+            Debug.Log("333");
+            uICustom.rightView.transform.DOLocalMoveX(uICustom.tween_rightMax, 2f).SetEase(Ease.InOutBack).OnComplete(() => {
+                uICustom.rightView.transform.DOLocalMoveX(0, 2f).SetEase(Ease.InOutBack).OnComplete(() => {
+                });
+            });
+
+        }
+
+        void CustomBtnFun() {
+
+        }
+
+
+        // Update is called once per frame
+        void Update()
+        {
+
+        }
+    }
+}

+ 11 - 0
Assets/GameMain/Scripts/UI/UICustomNor.cs.meta

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

+ 7 - 0
Assets/GameMain/Scripts/UI/UIFormId.cs

@@ -38,5 +38,12 @@ namespace MetaClient
         /// 自定义角色。
         /// </summary>
         CustomRoleForm = 103,
+
+        /// <summary>
+        /// 自定义角色。
+        /// </summary>
+        FinchFace = 103,
+
+        CustomRole=104,
     }
 }

+ 1 - 1
Assets/GameMain/Model.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: b6dcc671de1083a49976dcc2678867e9
+guid: 90a2659ba8cb2444292868a41f75ccb9
 folderAsset: yes
 DefaultImporter:
   externalObjects: {}

+ 122 - 0
Assets/GameMain/Scripts/UIColorMix/ColorPick.cs

@@ -0,0 +1,122 @@
+using UnityEngine;
+using System.Collections;
+using UnityEngine.UI;
+public class ColorPick : MonoBehaviour
+{
+
+ public Image Saturation;
+public Image Hue;
+public Image Paint;
+ public RectTransform Point_Stauration;
+public RectTransform Point_Hue;
+private Sprite Saturation_Sprite;
+private Sprite Hue_Sprite;
+ private Color32 currentHue = Color.red;
+    public Text colorText;
+private void Awake()
+    {
+ }
+    private void Start()
+    {
+        UpdateStauration();
+        UpdateHue();
+    }
+    float sWidth = 200, sHeight = 200;
+    //更新饱和度
+    private void UpdateStauration()
+    {
+        Saturation_Sprite = Sprite.Create(new Texture2D((int)sWidth, (int)sHeight), new Rect(0, 0, sWidth, sHeight), new Vector2(0, 0));
+        for (int y = 0; y <= sHeight; y++)
+        {
+        for (int x = 0; x < sWidth; x++)
+         {
+                var pixColor = GetSaturation(currentHue, x / sWidth, y / sHeight);
+                Saturation_Sprite.texture.SetPixel(x, ((int)sHeight - y), pixColor);
+            }
+        }
+        Saturation_Sprite.texture.Apply();
+        Saturation.sprite = Saturation_Sprite;
+    }
+    //更新色泽度
+   private void UpdateHue()
+    {
+        float w = 50, h = 50;
+        Hue_Sprite = Sprite.Create(new Texture2D((int)w, (int)h), new Rect(0, 0, w, h), new Vector2(0, 0));
+        for (int y = 0; y <= h; y++)
+         {
+            for (int x = 0; x < w; x++)
+            {
+                var pixColor = GetHue(y / h);
+                Hue_Sprite.texture.SetPixel(x, ((int)h - y), pixColor);
+            }
+        }
+        Hue_Sprite.texture.Apply();
+        Hue.sprite = Hue_Sprite;
+    }
+    private Vector2 clickPoint = Vector2.zero;
+    public void OnStaurationClick(ColorPickClick sender)
+    {
+        var size2 = Saturation.rectTransform.sizeDelta / 2;
+        var pos = Vector2.zero;
+        pos.x = Mathf.Clamp(sender.ClickPoint.x, -size2.x, size2.x);
+        pos.y = Mathf.Clamp(sender.ClickPoint.y, -size2.y, size2.y);
+        Point_Stauration.anchoredPosition = clickPoint = pos;
+
+UpdateColor();
+    }
+    public void UpdateColor()
+    {
+        var size2 = Saturation.rectTransform.sizeDelta / 2;
+        var pos = clickPoint;
+        pos += size2;
+        var color = GetSaturation(currentHue, pos.x / Saturation.rectTransform.sizeDelta.x, 1 - pos.y / Saturation.rectTransform.sizeDelta.y);
+        Paint.color = color;
+        int r = Mathf.RoundToInt(color.r * 255.0f);
+        int g = Mathf.RoundToInt(color.g * 255.0f);
+        int b = Mathf.RoundToInt(color.b * 255.0f);
+        int a = Mathf.RoundToInt(color.a * 255.0f);
+        string theHexColor = string.Format("{0:X2}{1:X2}{2:X2}{3:X2}",r, g,b,a);
+        colorText.text = theHexColor + "";
+    }
+
+    public void OnHueClick(ColorPickClick sender)
+    {
+        var h = Hue.rectTransform.sizeDelta.y / 2.0f;
+        var y = Mathf.Clamp(sender.ClickPoint.y, -h, h);
+        Point_Hue.anchoredPosition = new Vector2(0, y);
+        y += h;
+        currentHue = GetHue(1 - y / Hue.rectTransform.sizeDelta.y);
+        UpdateStauration();
+        UpdateColor();
+    }
+    private static Color GetSaturation(Color color, float x, float y)
+    {
+        Color newColor = Color.white;
+        for (int i = 0; i < 3; i++)
+        {
+            if (color[i] != 1)
+            {
+                newColor[i] = (1 - color[i]) * (1 - x) + color[i];
+            }
+        }
+        newColor *= (1 - y);
+        newColor.a = 1;
+        return newColor;
+    }
+    //B,r,G,b,R,g //大写是升,小写是降
+    private readonly static int[] hues = new int[] { 2, 0, 1, 2, 0, 1 };
+    private readonly static Color[] colors = new Color[] { Color.red, Color.blue, Color.blue, Color.green, Color.green, Color.red };
+    private readonly static float c = 1.0f / hues.Length;
+    private static Color GetHue(float y)
+    {
+        y = Mathf.Clamp01(y);
+        var index = (int)(y / c);
+        var h = hues[index];
+        var newColor = colors[index];
+        float less = (y - index * c) / c;
+        newColor[h] = index % 2 == 0 ? less : 1 - less;
+        return newColor;
+    }
+}
+
+

+ 11 - 0
Assets/GameMain/Scripts/UIColorMix/ColorPick.cs.meta

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

+ 34 - 0
Assets/GameMain/Scripts/UIColorMix/ColorPickClick.cs

@@ -0,0 +1,34 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.EventSystems;
+using System;
+using UnityEngine.UI;
+public class ColorPickClick : MonoBehaviour,IPointerDownHandler,IDragHandler
+{
+    // Start is called before the first frame update
+    void Start()
+    {
+        
+    }
+    public Button.ButtonClickedEvent Click;
+
+    public Vector3 ClickPoint { get; set; }
+    public void OnPointerDown(PointerEventData eventData)
+    {
+        var rect = transform as RectTransform;
+        ClickPoint = rect.InverseTransformPoint(eventData.position);
+        Click.Invoke();
+    }
+    public void OnDrag(PointerEventData eventData)
+    {
+        var rect = transform as RectTransform;
+        ClickPoint = rect.InverseTransformPoint(eventData.position);
+        Click.Invoke();
+    }
+    // Update is called once per frame
+    void Update()
+    {
+        
+    }
+}

+ 11 - 0
Assets/GameMain/Scripts/UIColorMix/ColorPickClick.cs.meta

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

+ 6 - 1
Assets/GameMain/Scripts/Utility/AssetUtility.cs

@@ -6,7 +6,7 @@
 //------------------------------------------------------------
 
 using GameFramework;
-
+using UnityEngine;
 namespace MetaClient
 {
     public static class AssetUtility
@@ -60,5 +60,10 @@ namespace MetaClient
         {
             return Utility.Text.Format("Assets/GameMain/UI/UISounds/{0}.wav", assetName);
         }
+        public static string GetUISpriteAsset(string assetName)
+        {
+            Debug.Log("Assets/GameMain/UI/UISprites/"+assetName+".png");
+            return Utility.Text.Format("Assets/GameMain/UI/UISprites/{0}.png", assetName);
+        }
     }
 }

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 8626 - 0
Assets/GameMain/UI/UIForms/CustomRole.prefab


+ 8 - 0
Assets/GameMain/UI/UIForms/CustomRole.prefab.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: d4d7446448a48a6428edf9cb7e32d83c
+timeCreated: 1528026169
+licenseType: Pro
+NativeFormatImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/GameMain/UI/UISprites/Color.meta

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

BIN
Assets/GameMain/UI/UISprites/Color/baoi.png


+ 128 - 0
Assets/GameMain/UI/UISprites/Color/baoi.png.meta

@@ -0,0 +1,128 @@
+fileFormatVersion: 2
+guid: 6d959cc27ddc74146b64a66aa107c859
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 0
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: iPhone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/GameMain/UI/UISprites/Color/dui.png


+ 128 - 0
Assets/GameMain/UI/UISprites/Color/dui.png.meta

@@ -0,0 +1,128 @@
+fileFormatVersion: 2
+guid: f3d9f1d06db0a1649b39b8e9ee3fddda
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 0
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: iPhone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/GameMain/UI/UISprites/Color/guan.png


+ 128 - 0
Assets/GameMain/UI/UISprites/Color/guan.png.meta

@@ -0,0 +1,128 @@
+fileFormatVersion: 2
+guid: 4ba80fe04815e5343ad2f7a48da87f42
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 0
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: iPhone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/GameMain/UI/UISprites/Color/gundng.png


+ 128 - 0
Assets/GameMain/UI/UISprites/Color/gundng.png.meta

@@ -0,0 +1,128 @@
+fileFormatVersion: 2
+guid: 0d9f8c6b51ea280408555b5d662ada3e
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 0
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: iPhone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/GameMain/UI/UISprites/Color/hengd.png


+ 128 - 0
Assets/GameMain/UI/UISprites/Color/hengd.png.meta

@@ -0,0 +1,128 @@
+fileFormatVersion: 2
+guid: b89f2f4802c0939408e5fa5e60ecbdc5
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 0
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: iPhone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/GameMain/UI/UISprites/Color/kuang.png


+ 128 - 0
Assets/GameMain/UI/UISprites/Color/kuang.png.meta

@@ -0,0 +1,128 @@
+fileFormatVersion: 2
+guid: e3dff9ab59e9e7049ae29c24d175f521
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 0
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: iPhone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/GameMain/UI/UISprites/Color/wai.png


+ 128 - 0
Assets/GameMain/UI/UISprites/Color/wai.png.meta

@@ -0,0 +1,128 @@
+fileFormatVersion: 2
+guid: 15840b3394141514895d8f38f6c5c9ec
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 0
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: iPhone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/GameMain/UI/UISprites/CustomRole.meta

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

BIN
Assets/GameMain/UI/UISprites/CustomRole/OFF.png


+ 128 - 0
Assets/GameMain/UI/UISprites/CustomRole/OFF.png.meta

@@ -0,0 +1,128 @@
+fileFormatVersion: 2
+guid: 17503f9303574294bb34c41cc4e7abbf
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 0
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: iPhone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/GameMain/UI/UISprites/CustomRole/ON.png


+ 128 - 0
Assets/GameMain/UI/UISprites/CustomRole/ON.png.meta

@@ -0,0 +1,128 @@
+fileFormatVersion: 2
+guid: d3ff2f11d97fc494c85edf49ecc0e89f
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 0
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: iPhone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/GameMain/UI/UISprites/CustomRole/baocun.png


+ 128 - 0
Assets/GameMain/UI/UISprites/CustomRole/baocun.png.meta

@@ -0,0 +1,128 @@
+fileFormatVersion: 2
+guid: a89760bd6b3487f42a476050173b2d8b
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 0
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: iPhone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/GameMain/UI/UISprites/CustomRole/biili.png


+ 128 - 0
Assets/GameMain/UI/UISprites/CustomRole/biili.png.meta

@@ -0,0 +1,128 @@
+fileFormatVersion: 2
+guid: fa0fbba01e873b449951b7f7fc1139e5
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 0
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: iPhone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/GameMain/UI/UISprites/CustomRole/bizi.png


+ 128 - 0
Assets/GameMain/UI/UISprites/CustomRole/bizi.png.meta

@@ -0,0 +1,128 @@
+fileFormatVersion: 2
+guid: 244566cb4d97c5745bd1406fe246e67b
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 0
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: iPhone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/GameMain/UI/UISprites/CustomRole/bodysize.png


+ 92 - 0
Assets/GameMain/UI/UISprites/CustomRole/bodysize.png.meta

@@ -0,0 +1,92 @@
+fileFormatVersion: 2
+guid: 92d1474c33451d64d9b8a9b7f73437a1
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 0
+    wrapV: 0
+    wrapW: 0
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: 0
+  textureShape: 1
+  singleChannelComponent: 0
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/GameMain/UI/UISprites/CustomRole/bodyview.png


+ 128 - 0
Assets/GameMain/UI/UISprites/CustomRole/bodyview.png.meta

@@ -0,0 +1,128 @@
+fileFormatVersion: 2
+guid: d366276d67987794b9d9b5db2a5b7480
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 0
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: iPhone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/GameMain/UI/UISprites/CustomRole/bozithick.png


+ 92 - 0
Assets/GameMain/UI/UISprites/CustomRole/bozithick.png.meta

@@ -0,0 +1,92 @@
+fileFormatVersion: 2
+guid: 7c881fecdf3e1e84d8627d86f1c2c59f
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 0
+    wrapV: 0
+    wrapW: 0
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: 0
+  textureShape: 1
+  singleChannelComponent: 0
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/GameMain/UI/UISprites/CustomRole/boziwide.png


+ 92 - 0
Assets/GameMain/UI/UISprites/CustomRole/boziwide.png.meta

@@ -0,0 +1,92 @@
+fileFormatVersion: 2
+guid: 384c714394619bd40a66b8715f4c424e
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 0
+    wrapV: 0
+    wrapW: 0
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: 0
+  textureShape: 1
+  singleChannelComponent: 0
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/GameMain/UI/UISprites/CustomRole/circle.png


+ 128 - 0
Assets/GameMain/UI/UISprites/CustomRole/circle.png.meta

@@ -0,0 +1,128 @@
+fileFormatVersion: 2
+guid: d0ca39b623336474d8f76d3a147cf0c5
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 0
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: iPhone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/GameMain/UI/UISprites/CustomRole/datuilong.png


+ 92 - 0
Assets/GameMain/UI/UISprites/CustomRole/datuilong.png.meta

@@ -0,0 +1,92 @@
+fileFormatVersion: 2
+guid: 4ad0dfa60082c8e468583584242210df
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 0
+    wrapV: 0
+    wrapW: 0
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: 0
+  textureShape: 1
+  singleChannelComponent: 0
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/GameMain/UI/UISprites/CustomRole/datuishangthick.png


+ 92 - 0
Assets/GameMain/UI/UISprites/CustomRole/datuishangthick.png.meta

@@ -0,0 +1,92 @@
+fileFormatVersion: 2
+guid: d7bcee19e92fee744aa0ea57a3f7b053
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 0
+    wrapV: 0
+    wrapW: 0
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: 0
+  textureShape: 1
+  singleChannelComponent: 0
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/GameMain/UI/UISprites/CustomRole/datuishangwide.png


+ 92 - 0
Assets/GameMain/UI/UISprites/CustomRole/datuishangwide.png.meta

@@ -0,0 +1,92 @@
+fileFormatVersion: 2
+guid: ac036267acbc85045a4726340ecab702
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 0
+    wrapV: 0
+    wrapW: 0
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: 0
+  textureShape: 1
+  singleChannelComponent: 0
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/GameMain/UI/UISprites/CustomRole/datuixiathick.png


+ 92 - 0
Assets/GameMain/UI/UISprites/CustomRole/datuixiathick.png.meta

@@ -0,0 +1,92 @@
+fileFormatVersion: 2
+guid: d5db38eb2b16ff24e8b117f8c1320413
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 0
+    wrapV: 0
+    wrapW: 0
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: 0
+  textureShape: 1
+  singleChannelComponent: 0
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/GameMain/UI/UISprites/CustomRole/datuixiawide.png


+ 92 - 0
Assets/GameMain/UI/UISprites/CustomRole/datuixiawide.png.meta

@@ -0,0 +1,92 @@
+fileFormatVersion: 2
+guid: f45cf8f218c2a774eb4fe90c5a4e619a
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 0
+    wrapV: 0
+    wrapW: 0
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: 0
+  textureShape: 1
+  singleChannelComponent: 0
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/GameMain/UI/UISprites/CustomRole/deng.png


+ 128 - 0
Assets/GameMain/UI/UISprites/CustomRole/deng.png.meta

@@ -0,0 +1,128 @@
+fileFormatVersion: 2
+guid: 9cc16e32118196f4da0d8d3f4ddfbbea
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 0
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: iPhone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/GameMain/UI/UISprites/CustomRole/ditu.png


+ 128 - 0
Assets/GameMain/UI/UISprites/CustomRole/ditu.png.meta

@@ -0,0 +1,128 @@
+fileFormatVersion: 2
+guid: 2a9cdeeabcad10448bed32f28f0f9cd9
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 0
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: iPhone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/GameMain/UI/UISprites/CustomRole/erduo.png


+ 128 - 0
Assets/GameMain/UI/UISprites/CustomRole/erduo.png.meta

@@ -0,0 +1,128 @@
+fileFormatVersion: 2
+guid: e1e23aef153d1854a8bde7219d9dc7b2
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 0
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: iPhone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/GameMain/UI/UISprites/CustomRole/faixng.png


+ 128 - 0
Assets/GameMain/UI/UISprites/CustomRole/faixng.png.meta

@@ -0,0 +1,128 @@
+fileFormatVersion: 2
+guid: 2b85adb3ae0810749a8a7a0917a0eab4
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 0
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: iPhone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/GameMain/UI/UISprites/CustomRole/fangda.png


+ 128 - 0
Assets/GameMain/UI/UISprites/CustomRole/fangda.png.meta

@@ -0,0 +1,128 @@
+fileFormatVersion: 2
+guid: 4b62c0d98288d2540a5529d15ea6bde2
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 0
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: iPhone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/GameMain/UI/UISprites/CustomRole/fanhui.png


+ 0 - 0
Assets/GameMain/UI/UISprites/CustomRole/fanhui.png.meta


برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است