前提・実現したいこと
衝突数を決めて、その数に達したらオブジェクトを消したい
発生している問題・エラーメッセージ
その数に達してもオブジェクトが消えず、その後も衝突した分数が増えていってしまう
該当のソースコード
using System.Collections; using System.Collections.Generic; using UnityEngine; // 数回衝突すると、消す public class OnCollision_Hide4 : MonoBehaviour { public string targetObjectName1; // 目標オブジェクト名:Inspectorで指定 public string targetObjectName2; // 目標オブジェクト名:Inspectorで指定 public string targetObjectName3; // 目標オブジェクト名:Inspectorで指定 public string targetObjectName4; // 目標オブジェクト名:Inspectorで指定 public int kazu; // 数:Inspectorで指定 public int addkazu; // 追加する数:Inspectorで指定 public int lastkazu; // 最後の数:Inspectorで指定 void Start() { // 最初は何もしない } void OnCollisionEnter2D(Collision2D collision) { // 衝突したとき // もし、衝突したものの名前が目標オブジェクトだったら if (collision.gameObject.name == targetObjectName1) { // カウンターの値を増やす kazu = kazu + addkazu; } // もし、衝突したものの名前が目標オブジェクトだったら if (collision.gameObject.name == targetObjectName2) { // カウンターの値を増やす kazu = kazu + addkazu; } // もし、衝突したものの名前が目標オブジェクトだったら if (collision.gameObject.name == targetObjectName3) { // カウンターの値を増やす kazu = kazu + addkazu; } // もし、衝突したものの名前が目標オブジェクトだったら if (collision.gameObject.name == targetObjectName4) { // カウンターの値を増やす kazu = kazu + addkazu; } void FixedUpdate() { // ずっと行う(一定時間ごとに) // カウンターが最終値になったら if (kazu == lastkazu) { // 自分自身を消す this.gameObject.SetActive(false); }} } }
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/10 07:59