他のオブジェクトに触れると、向きを変えてはね返るように、スクリプトを作成してみましょう。
Cubeが前に向かって進み、壁にぶつかれば、逆方向に向きを変え、また進んで行きます。
関連記事:
2点間の往復運動をくり返す
4つの座標で回転して四角形に動く
オブジェクトの往復運動をつくる
キャラクターを行ったり来たりさせる
特定の座標まで行けば跳ね返る
特定の座標で移動を止める
Updateを使わずに特定の座標まで移動
3地点で方向転換しながら移動し続ける
Rayの照射が外れれば向きを変える
オブジェクトに触れると方向転換
Cubeを作成し、名前をWall1に変更。
サイズと位置を変え、トリガーにするにチェック。
タグ名をWallにします。
Wall1を複製して、Wall2に名前を変更。
位置を変えます。
ゲームビューではこのように見えています。
Cubeを作成して、座標をすべて0に。
リジッドボディを追加し、UseGravityのチェックを外します。
向いている方向をわかりやすくするために、Cubeに突起をつけましょう。
もう一つCubeを作成し、サイズを0.5に。
位置を変更しましょう。
Cube(1)を、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 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeMove : MonoBehaviour { void Update() { transform.Translate(new Vector3(0.1f, 0, 0)); } private void OnTriggerEnter(Collider other) { if (other.gameObject.tag == "Wall" ) { transform.Rotate(new Vector3(0, 180, 0)); } } } |
ゲームプレイしてみましょう。
壁オブジェクトにぶつかると、180度向きを変えて、また前に進みます。
関連記事:
2点間の往復運動をくり返す
4つの座標で回転して四角形に動く
オブジェクトの往復運動をつくる
キャラクターを行ったり来たりさせる
特定の座標まで行けば跳ね返る
特定の座標で移動を止める
Updateを使わずに特定の座標まで移動
3地点で方向転換しながら移動し続ける
Rayの照射が外れれば向きを変える