VertexAnimationClipInfo getOrAddAnimationInfo(string aniResName) { aniResName = aniResName.ToLower(); VertexAnimationClipInfo clipInfo = null; AnimationClipInfos.TryGetValue(aniResName, out clipInfo); if (clipInfo != null) { return(clipInfo); } var asset = Resources.Load <TextAsset>(aniResName); byte[] clipData = null; if (asset != null) { clipData = Resources.Load <TextAsset>(aniResName).bytes; } if (clipData == null) { Debug.LogError("animation clip data is null:" + aniResName); return(null); } clipInfo = new VertexAnimationClipInfo(); ByteBufferReader bbuffer = new ByteBufferReader(clipData); int Count = bbuffer.ReadInt(); for (int i = 0; i < Count; i++) { ClipMeshData meshData = GetMeshData(bbuffer); clipInfo.clipTotalTimeLen += meshData.timeLenth; clipInfo.clipLenghts.Add(meshData.timeLenth); clipInfo.everyClipFrameTimePoints.Add(new Vector2(meshData.Frame2TimePoint, meshData.Frame3TimePoint)); //,meshData.Frame4TimePoint clipInfo.clipMeshs.Add(meshData.GenMesh()); } bbuffer.Close(); clipData = null; AnimationClipInfos.Add(aniResName, clipInfo); return(clipInfo); }