特定の範囲に入れば、プレーヤーが浮上するしくみを作ってみましょう。
十字キーでCubeを操作し、あるエリアに触れたタイミングで、ジャンプをさせます。
関連記事:
領域に入っている間と離れたときに発生
範囲内に入ればオブジェクトを落下させる
乗れば上昇していく床
乗れば下降していく床
エリアに入れば自動で動く(ムービングウォーク)
特定エリアに近づくと追いかけてくる
エリア内にn秒間滞在すれば実行
Collider内にとどまればn秒間動けなくなる
指定した範囲に入るとジャンプ
平面とCubeを作成し、Cubeを少し中心からずらします。
Cubeにリジッドボディを追加します。
空のオブジェクトを作成し、ボックスコライダーを追加。
トリガーにするにチェックを入れ、中心に配置します。
シーンビューではこのように見えています。
CubeMove.csを作成し、Cubeに追加します。
CubeMove.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 31 32 33 34 35 36 37 38 39 40 41 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeMove : MonoBehaviour { private Rigidbody rb; void Start() { rb = GetComponent<Rigidbody>(); } void Update() { if (Input.GetKey(KeyCode.UpArrow)) { transform.Translate(0f, 0f, 0.1f); } if (Input.GetKey(KeyCode.DownArrow)) { transform.Translate(0f, 0f, -0.1f); } if (Input.GetKey(KeyCode.LeftArrow)) { transform.Translate(-0.1f, 0f, 0f); } if (Input.GetKey(KeyCode.RightArrow)) { transform.Translate(0.1f, 0f, 0f); } } private void OnTriggerEnter(Collider other) { if (other.gameObject.name == "GameObject" ) { rb.AddForce(new Vector3(0,500,0 )); } } } |
ゲームプレイして、Cubeを動かしてみましょう。
GameObjectにボックスコライダーにぶつかると、Cubeが飛び上がります。
関連記事:
領域に入っている間と離れたときに発生
範囲内に入ればオブジェクトを落下させる
乗れば上昇していく床
乗れば下降していく床
エリアに入れば自動で動く(ムービングウォーク)
特定エリアに近づくと追いかけてくる
エリア内にn秒間滞在すれば実行
Collider内にとどまればn秒間動けなくなる