/// <summary>
        /// 执行切片
        /// </summary>
        /// <param name="atlasPath"></param>
        /// <param name="width"></param>
        /// <param name="height"></param>
        /// <param name="clipType"></param>
        public static void ClipAtlas(string atlasPath, float width, float height, string clipType)
        {
            if (!atlasPath.EndsWith(".png") || atlasPath.EndsWith(".tag"))
            {
                Debug.LogError("--->> 目前仅支持.png/.tga");
                return;
            }

            JsonData jsonData = GetJsonData(atlasPath, clipType);

            TextureImporter importer = AssetImporter.GetAtPath(atlasPath) as TextureImporter;
            Dictionary <string, SpriteMetaData> nameDic = TransNameDic(importer.spritesheet);


            List <SpriteMetaData> metaDatasNew = new List <SpriteMetaData>();

            SpriteMetaData[] metaDatas = importer.spritesheet;
            for (int i = 0; i < metaDatas.Length; i++)
            {
                SpriteMetaData source = metaDatas[i];

                string clipName; //切片名称

                if (IsClipName(source.name))
                {
                    //是切片数据,不会为它生成切片
                    AddToMetaDatas(metaDatasNew, source, false);
                    continue;
                }
                else
                {
                    clipName = GetClipName(source.name, clipType); //切片名称

                    metaDatasNew.Add(source);
                }


                SpriteMetaData clipData = new SpriteMetaData();

                Rect source_rect = source.rect;
                clipData.name = clipName;


                if (jsonData != null && jsonData.Keys.Contains(clipName))
                {
                    //json里有数据
                    JsonData data = jsonData[clipName];

                    JsonData rectData  = data["rect"];
                    JsonData pivotData = data["pivot"];


                    Rect    rectOld     = new Rect(source_rect.x + (int)rectData["offetX"], source_rect.y + (int)rectData["offetY"], (int)rectData["width"], (int)rectData["height"]);
                    Vector2 pivotOld    = new Vector2((float)(double)pivotData["x"], (float)(double)pivotData["y"]); //中点取json里面的
                    Vector2 pivotPosOld = KuiUtil.CalcPivotPos(rectOld, pivotOld);

                    Rect rectNew = KuiUtil.CalcRectByPivot(pivotPosOld, pivotOld, new Size(width, height));

                    //偏移坐标取之前的,尺寸取这次的
                    //Rect rect = new Rect(source_rect.x + (int)rectData["offetX"], source_rect.y + (int)rectData["offetY"], width, height);
                    Rect rect = new Rect(rectNew.x, rectNew.y, width, height);
                    clipData.rect  = rectNew;
                    clipData.pivot = pivotOld;

                    Debug.Log("切片数据被覆盖\t" + atlasPath + " " + clipType);
                }
                else
                {
                    Rect rect = new Rect(source_rect.x + (source_rect.width - width) / 2, source_rect.y + (source_rect.height - height) / 2, width, height);

                    clipData.rect  = rect;
                    clipData.pivot = new Vector2(0.5f, 0.5f);
                }

                AddToMetaDatas(metaDatasNew, clipData, true);
            }

            if (metaDatasNew.Count > 0)
            {
                importer.spritesheet = metaDatasNew.ToArray();
                EditorUtility.SetDirty(importer);
                importer.SaveAndReimport();

                SaveJsonData(atlasPath, importer.spritesheet);
            }

            AssetDatabase.SaveAssets();
        }