Пример #1
0
    public void RecoveryGhostInfo(GhostEffectData ghostInfo)
    {
        m_ghostInfoPool.Enqueue(ghostInfo);

        RecoveryMesh(ghostInfo.mesh);
        ghostInfo.mesh = null;
    }
Пример #2
0
    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);
    }