public void Destory()
        {
            Triangles = null;
            Uv        = null;

            if (null != AnimationsWithAttach)
            {
                var itor = AnimationsWithAttach.GetEnumerator();
                while (itor.MoveNext())
                {
                    Dictionary <string, MeshAnimationData> dataDict = itor.Current.Value;
                    if (null != dataDict)
                    {
                        var dataItor = dataDict.GetEnumerator();
                        while (dataItor.MoveNext())
                        {
                            dataItor.Current.Value.Destory();
                        }

                        dataItor.Dispose();
                        dataDict.Clear();
                    }
                }

                itor.Dispose();
                AnimationsWithAttach.Clear();
                AnimationsWithAttach = null;
            }

            Animations = null;
        }
        public void BuildAnimByCombinedTex(MeshSkinData skinData, int attachId)
        {
            int totalNum = skinData.arrayLength; //attach num

            //int maxVertex = skinData.maxVertexCount;

            if (attachId >= totalNum)
            {
                UnityEngine.Debug.LogError("over the attach size");
                return;
            }

            //读取8个动作数据
            for (int i = 0; i < 8; i++)
            {
                string animationName = g_defaultAnimationArray[i];
                if (!animationName.StartsWith("Wait") && !skinData.isLoadAllInMainScene)
                {
                    continue;
                }

                MeshSkinData.ClipData clip = skinData.meshes[attachId].clips[i];

                int frameCount = clip.frames.Length;
                if (frameCount == 0)
                {
                    continue;
                }

                Vector3[][] animData = new Vector3[frameCount][];

                //每个动作顶点
                for (int curFrame = 0; curFrame < frameCount; curFrame++)
                {
                    animData[curFrame] = clip.frames[curFrame].vertexs;
                }

                Dictionary <string, MeshAnimationData> animationDataDict;
                bool hasDict = AnimationsWithAttach.TryGetValue(attachId, out animationDataDict);
                if (!hasDict)
                {
                    animationDataDict = new Dictionary <string, MeshAnimationData>();
                    AnimationsWithAttach.Add(attachId, animationDataDict);
                }

                animationDataDict.Add(animationName,
                                      new MeshAnimationData(animationName, animData, skinData.GenerateNormal));
            }
        }