オブジェクトが回転しながら移動するように、スクリプトを作成してみましょう。
Z方向を前方移動とすると、回転させると進行方向も変わってしまいます。
ワールド座標を使えば、そのオブジェクト自身の方向とは無関係に、移動させることができます。
ワールド座標による移動方向
Cubeを作成します。
CubeMove.csを作成し、Cubeに追加します。
CubeMove.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeMove : MonoBehaviour { float speed = 5.0f; void Update() { if(Input.GetKey(KeyCode.Space)) { transform.Translate(0, 0, speed * Time.deltaTime, Space.World); transform.Rotate(0, 3.0f, 0); } } } |
ゲームプレイしてみましょう。
スペースキーを押すと、回転しながら前に向かって移動します。
transform.Translateに第4引数として、Space.Worldを入れました。
これによって、ワールド座標を用いて移動することができます。
今回の例では、Z方向に向けて移動していますが、回転によってCube自身のZ座標も変わります。
シーンギズモのZ座標を見てもわかるように、ワールド座標としてのZの方角に向かって進んでいます。