今天火柴人聯盟3公測了,看到一個殘影的效果,很有意思,上網查詢了一下實現方式,
實現思路:
將角色的網格復制出來,然后放置到新建的物體的MeshFilter組件上,每隔幾十毫秒在玩家的位置生成一個,這樣隨著玩家移動,不斷復制數個就會實現此效果。
實現代碼:
public class CharacterTrail : MonoBehaviour
{public MeshFilter m_filter;public Material material;private void Start(){StartCoroutine(CreateMesh());}IEnumerator CreateMesh(){while (Application.isPlaying){GameObject gameObject = new GameObject();gameObject.AddComponent<MeshFilter>().mesh = m_filter.mesh;gameObject.AddComponent<MeshRenderer>().sharedMaterial = material;gameObject.transform.position = transform.position;Destroy(gameObject, 0.7f);yield return new WaitForSeconds(0.1f);} }
}
實現效果:
參考:
CHARACTER TRAIL TUTORIAL in Unity (youtube.com)