ParticleSysmte.Play()を何度か繰り返し呼び出すとパーティクルが発生しなくなる不具合に遭遇。
Unity上では問題なく動いていたが、実機(iPhone)で動かすと不具合が発生する。
問題の発生したスクリプト
1 2 3 4 5 6 7 8 9 |
ParticleSystem _balloon; public void EmitBalloon() { if (this._balloon.isPlaying) return; this._balloon.Play(); } |
検索でUnityAnswersに以下の投稿を発見。
ParticleSystem.Play() does not play particle.
http://answers.unity3d.com/questions/513517/particlesystemplay-does-not-play-particle.html
上記を参考にしてスクリプトを変更。
変更後のスクリプト
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
ParticleSystem _balloon; public void EmitBalloon() { if (this._balloon.gameObject.activeSelf) return; StartCoroutine("EmitBalloonCoroutine"); } IEnumerator EmitBalloonCoroutine() { this._balloon.gameObject.SetActive(true); yield return new WaitForSeconds(10f); this._balloon.gameObject.SetActive(false); yield return null; } |
パーティクルの発生をPlay()ではなく、(Play on Awakeを有効にした上で)ゲームオブジェクトがEnableになった時に行うように変更。実機で動作を確認、不具合が解消された模様。
Unity4.5.0f6
コメントを残す
コメントを投稿するにはログインしてください。