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); }