private static GhostMesh UF_CreateGhostMesh(string shaderName)
        {
            GhostMesh ret = mMeshStack.Pop();

            if (ret == null)
            {
                ret = new GhostMesh(shaderName);
            }
            if (ret.material == null || ret.material.shader == null)
            {
                ret.UF_SetMaterialShader(shaderName);
            }
            return(ret);
        }
        //添加绘制一个残影
        public void UF_Add(SkinnedMeshRenderer skinned, Vector3 pos, Quaternion quat, float life, Color color)
        {
            if (skinned == null)
            {
                return;
            }
            GhostMesh gMesh = UF_CreateGhostMesh(this.mShaderName);

            gMesh.UF_BakeMesh(skinned);
            gMesh.UF_SetColor(color);
            if (skinned.material != null)
            {
                gMesh.UF_SetTexture(skinned.material.mainTexture);
            }
            gMesh.positon    = pos;
            gMesh.quaternion = quat * RotationOffset;
            gMesh.life       = life;
            mListGhostMesh.Add(gMesh);
        }
 private static void UF_RecoverGhostMesh(GhostMesh gMesh)
 {
     gMesh.UF_Reset();
     mMeshStack.Push(gMesh);
 }