戦車で戦う2Dのゲームを作っていて、親オブジェクトの戦車に子オブジェクトとして衝突時の爆発パーティクル(テクスチャシートアニメーション)をつけました。
c#
1[SerializeField] private ParticleSystem particle; 2... 3... 4... 5... 6void OnCollisionEnter2D(Collision2D collision) 7 { 8 if(collision.gameObject.tag == "Ball"){ 9 particle.Play(); 10 11 //spriterenderer.sortingLayerName = "Death(Back)"; 12 script.P_DeathSound = 1; 13 GAMEARRANGE = 1; 14 } 15 16 if(collision.gameObject.tag == "PlayerBall"){ 17 particle.Play(); 18 19 //spriterenderer.sortingLayerName = "Death(Back)"; 20 script.P_DeathSound = 1; 21 GAMEARRANGE = 1; 22 } 23 }
こんな感じで実装して、うまくいきました。しかし、この後に「親オブジェクトのレイヤー変わるとエフェクトのレイヤーも変わっちゃうなあ」と思い、消す方法をいろいろスクリプトで試していました。(スプライトのカラーを透明にしたり)。
そしたら急に何故かパーティクルが表示されなくなりました。スクリプトを戻してもダメで、しかも編集画面にパーティクルエフェクトを簡単に再生できる画面があるじゃないですか。そこで再生を押してもなんか点滅するだけで再生もしてくれません。(もともとはされていました)
衝突判定は確認できていて、unity上にエラー報告もありません。
Unityの再起動はしました。
ミスで僕がどこかをいじってしまった説、もしくはバグで心当たりがあったら教えて欲しいです。。。。
Unityは最新の2020.3.4f1です。
もう一度パーティクルを作成したらいいのではないのでしょうか?
上の情報だけでは正直わからないので,同じように作成したほうが早い気がします
回答1件
あなたの回答
tips
プレビュー