public void RecoveryGhostInfo(GhostEffectData ghostInfo) { m_ghostInfoPool.Enqueue(ghostInfo); RecoveryMesh(ghostInfo.mesh); ghostInfo.mesh = null; }
private void CreateEffect() { for (int i = 0; i < m_combineInstanceLength; i++) { if (i < m_skinnedMeshRendererLength) { m_skinnedMeshRenderers[i].BakeMesh(m_combineInstances[i].mesh); m_combineInstances[i].transform = m_skinnedMeshRenderers[i].transform.localToWorldMatrix; } else { m_combineInstances[i].mesh = m_meshFilters[i - m_skinnedMeshRendererLength].sharedMesh; m_combineInstances[i].transform = m_meshFilters[i - m_skinnedMeshRendererLength].transform.localToWorldMatrix; } } m_cacheMesh = GhostEffectManager.Instance.GetMesh(); m_cacheMesh.CombineMeshes(m_combineInstances); m_cacheGhostInfo = GhostEffectManager.Instance.GetGhostInfo(); m_cacheGhostInfo.Setup(m_cacheMesh, m_color, m_duration); m_ghostInfos.Add(m_cacheGhostInfo); }