万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

Shurikenパーティクルシステムのバグ? Unity

URL: http://answers.unity3d.com/questions/536529/how-to-get-a-particlesystem-to-play-when-you-cant.html

positionで位置を指定してもAndroid実機だとうまく座標が合わず、0, 0, 0の位置に表示されるっぽい。

Unity 3時代にいろいろバグが有ったがUnity 4系では修正されてると思ったが、
この謎のバグはUnity 4.2で発生した。

一度enableにして、Clear()とStop ()をする。

    void Awake ()
    {
        // activeをfalseにする前にParticleを取得しておく!
        ParticleSystem particleSystem = GetComponentInChildren <ParticleSystem>();
        this.gameObject.SetActive (false);
        particleSystem.Clear ();
        particleSystem.Stop ();
        Destroy(this.gameObject, particleSystem.duration);
        particleSystem.Stop ();
    }

発射時にactiveにしつつ、Playする

    private void Fire () // 発射メソッド
    {
        this.gameObject.SetActive (true);
        ParticleSystem particleSystem = this.gameObject.GetComponentInChildren <ParticleSystem>();
        particleSystem.Play ();
    }

これで解決!