2013년 12월 17일 화요일

Unity3D에서 파티클의 시작과 정지를 코드로 제어하기

Unity3D에서 파티클을 만들어 사용할때 필요에 의해 재생하거나 멈춰주는 것을 코드로 제어하는 법입니다. 

현재 파티클을 사용하지 않는데도 재생중일 필요는 없으니까 필요할때만 재생시키는거죠.

아래 사항을 고려해서 제작하면 됩니다.


  1. 파티클은 ParticleSystem Component로 제작해야 함.
  2. 파티클을 정지함과 동시에 화면에서 사라지게 하기 위해서는 Stop()과 Clear() 함수를  모두 사용할 것.
  3. 파티클을 시작하기 위해서는 Play()함수를 사용할 것


예제 코드는 아래와 같아요. 
ParticleSystem testParticle         = null;

// 버튼이 눌러졌을때
if (Input.GetMouseButtonUp(0) == true)
{
    // 파티클이 있고
    if (testParticle)
    {
        // 파티클이 재생중이면 재생을 멈추고 지워줍니다
        if (testParticle.isPlaying == true)
        {
            testParticle.Stop();
            testParticle.Clear();   

            //Debug.Log("STOP");
        }
        // 재생중이 아니라면 재생해주고요
        else
        {
            testParticle.Play();

            //Debug.Log("PLAY");
        }
    }
    // 파티클이 없다면 새로 만들어주구요
    else
    {
        Vector3 pos       = Vector3.zero;
        pos.y               = 3;
        pos.x               = 3 - 30.0f;

        Transform particleObject        = (Transform)Instantiate(Resources.Load("Prefabs/Effects/pfBlockBomb", typeof(Transform)), pos, Quaternion.identity);

        testParticle        = (ParticleSystem)particleObject.GetComponent(typeof(ParticleSystem));

        //Debug.Log("CREATE");
    }

    return;
}

댓글 없음:

댓글 쓰기