Unity2019 トリガーのスクリプトでifが機能しません
オブジェクトが出現するトリガーのスクリプトを作っています。
このオブジェクトはプレイヤーの分身のようなもので(グラディウスでいうオプション)、
既に1つあれば2つ目、2つあれば3つ目と、触れるたびに1つずつ出現させたいと思っています。
発生している問題・エラーメッセージ
トリガーに触れると、一気に3つのオブジェクト(コードではoption1~3)が出てしまいます。
出現時にカウント(optionCount)するようにし、ifで条件をつけたのですが、機能しません。
なお、トリガーに触れるとトリガーは消え(Destroy)、
分身が既に3つあれば1upと表示されるようにしていますが、
それらも同時に行われます。
ifの内容を1つずつ実行させるようにするには、どのようにすれば良いでしょうか?
解決法を教えて頂けると嬉しいです。どうぞよろしくお願い致します。
該当のソースコード
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class OptionTrigger : MonoBehaviour
{
public GameObject option1;
public GameObject option2;
public GameObject option3;
int optionCount = 0;
private void OnTriggerEnter(Collider collision) { if (optionCount == 0) { option1.SetActive(true); option1.transform.position = this.transform.position; Destroy(gameObject); optionCount += 1; } if (optionCount == 1) { option2.SetActive(true); option2.transform.position = this.transform.position; Destroy(gameObject); optionCount += 1; } if (optionCount == 2) { option3.SetActive(true); option3.transform.position = this.transform.position; Destroy(gameObject); optionCount += 1; } if (optionCount > 2) { Destroy(gameObject); Debug.Log("1up"); } }
}
試したこと
ifの条件の中にOnTriggerEnterを内包させる、ということも試しましたが、
やはり上手くいきませんでした。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/12 04:03
2020/06/12 04:07
2020/06/12 04:20