public void PlayShadowAnim(int index)
    {
        if (!startPlayAnim)
        {
            return;
        }
        int shadowGOListCount = shadowGameObjectList.Count;

        if (index > shadowGOListCount - 1)
        {
            return;
        }
        GameObject startGameObject = shadowGameObjectList[index];

        if (startGameObject == null)
        {
            return;
        }
        AnimFrameData animFrameData = animFrams[GetNextAnimFrameIndex(shadowPlayIndex, index * 5 + 1)];

        if (animFrameData == null)
        {
            return;
        }
        MeshFilter[] meshFilters     = startGameObject.GetComponentsInChildren <MeshFilter>();
        int          meshFilterCount = meshFilters.Length;

        for (int i = 0; i < meshFilterCount; i++)
        {
            animFrameData.SetAnimDataByIndex(i, meshFilters[i]);
        }
    }
    void StoreAnimFrame()
    {
        int storeIndex = GetNextAnimFrameIndex(lastAnimFrameIndex);

        if (totalAnimFrameNum >= storeAnimFrameNum)
        {
            firstAnimFrameIndex = GetNextAnimFrameIndex(firstAnimFrameIndex);
        }
        else
        {
            totalAnimFrameNum++;
        }
        if (animFrams[storeIndex] == null)
        {
            animFrams[storeIndex] = new AnimFrameData(meshRenderers);
        }
        else
        {
            animFrams[storeIndex].StoreAnimMesh(meshRenderers);
        }
        lastAnimFrameIndex = storeIndex;
    }