落下するオブジェクトが地面に着地すれば、前に向かって走り出すように、スクリプトを作成してみましょう。
重力によってSphereが落下。
Planeにぶつかったタイミングで、前に向かって動いていきます。
関連記事:
4つの座標で回転して四角形に動く
ぶつかると最初からスタート
特定エリアに入った時は実行不可にする
ぶつかると逆方向に向きを変えて進む
触れている相手に一定間隔で力を加える
傾斜を上っていくPrefab
地面に触れると走り出す
Planeを作成し、Z方向を伸ばします。
Sphereを作成し、リジッドボディを追加。
座標を変更します。
SetMove.csを作成し、Sphereに追加します。
SetMove.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 SetMove : MonoBehaviour { private bool flag; private float speed; void Start() { speed = 0.1f; } void Update() { if(flag) { transform.Translate(new Vector3(0, 0, speed)); } } void OnCollisionEnter(Collision other) { if(other.gameObject.name == "Plane") { flag = true; } } } |
ゲームプレイしてみましょう。
着地してPlaneに触れると、Sphereが動き出します。
関連記事:
4つの座標で回転して四角形に動く
ぶつかると最初からスタート
特定エリアに入った時は実行不可にする
ぶつかると逆方向に向きを変えて進む
触れている相手に一定間隔で力を加える
傾斜を上っていくPrefab