2014. 10. 5.

유니티에서 Auto Destroy Particle System 제작하기

유니티의 파티클은 화려하고 사용하기 쉬운 훌륭한 시스템이지만, 기본적으로 파티클이 끝나도 오브젝트가 여전히 게임상에 남아있어, 파티클이 끝나면 오브젝트를 지워주는 작업을 해줘야합니다.
화려한 파티클! 하지만, Destroy를 직접 해주지 않으면, 파티클 LifeTime이 끝나도 오브젝트가 계속 남아있다
유니티에서 제공하는 IsAlive 함수는, 파티클이 끝났는지 여부를 알려줍니다. 이것을 이용해 ParticleSystemAutoDestroy라는 스크립트를 만들고, 어떤 파티클을 만들던 이 스크립트만 추가해주면, 자동으로 파티클이 끝났을 때, 파티클 오브젝트도 사라지도록 만들어봅시다.
using UnityEngine;
using System.Collections;

public class ParticleSystemAutoDestroy : MonoBehaviour
{
  private ParticleSystem ps;

  void Start ()
  {
    ps = GetComponent ();
  }
 
  void Update ()
  {
    if (ps) {
      if (!ps.IsAlive ()) {
        Destroy (gameObject);
      }
    } 
  }
}
이제 어떤 파티클을 만들건 이 스크립트만 추가해주면, 파티클 LifeTime이 끝남과 동시에 파티클 오브젝트도 사라지게 됩니다.

댓글 1개: