特定のエリアに侵入した後、n秒経過すれば、実行される仕組みをつくってみましょう。
今回の例では、BoxCollider内に入った状態で、2秒間経てば、プレーヤーを削除します。
関連記事:
Collider内にとどまればn秒間動けなくなる
特定エリアに近づくと追いかけてくる
エリアに入れば自動で移動(ムービングウォーク)
特定エリアに入った時は実行不可にする
エリアに入れば飛び上がる
領域に入っている間と離れたときに発生
触れた相手のコライダーを削除(無効にする)
オブジェクトの半分まで入れば実行
エリア内でランダム移動する
エリアに入れば音量を上げる
非アクティブのオブジェクトを当たり判定で取得
範囲内に侵入後、2秒経過すれば削除
PlaneとSphereを作成し、そろぞれ色をつけます。
Sphereの位置を中心から遠ざけて配置。リジッドボディを追加します。
空のオブジェクトを作成。
ボックスコライダーを追加して、トリガーにするにチェックを入れ、サイズを変更します。
シーンビューではこのように見えています。
このボックスコライダー内に侵入したあと、2秒経てばSphereが消えるようにします。
SphereMove.csを作成し、Sphereに追加します。
SphereMove.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class SphereMove : MonoBehaviour { private float speed = 1.0f; private float time = 2.0f; void Update() { float moveX = Input.GetAxis("Horizontal") * Time.deltaTime * speed; float moveZ = Input.GetAxis("Vertical") * Time.deltaTime * speed; transform.position = new Vector3 ( transform.position.x + moveX, transform.position.y, transform.position.z + moveZ ); } void OnTriggerStay(Collider other) { if (other.gameObject.name == "GameObject") { time -= Time.deltaTime; if(time <= 0) { Destroy(this.gameObject); } } } } |
ゲームプレイして、十字キーで操作しましょう。
ボックスコライダーの範囲内に侵入したあと、2秒経てばSphereは削除されます。
関連記事:
Collider内にとどまればn秒間動けなくなる
特定エリアに近づくと追いかけてくる
エリアに入れば自動で移動(ムービングウォーク)
特定エリアに入った時は実行不可にする
エリアに入れば飛び上がる
領域に入っている間と離れたときに発生
触れた相手のコライダーを削除(無効にする)
オブジェクトの半分まで入れば実行
エリア内でランダム移動する
エリアに入れば音量を上げる
非アクティブのオブジェクトを当たり判定で取得