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;
}

댓글 없음:

댓글 쓰기