
transform.forwardで可能。右はright、上はup。逆はマイナスをかければ良い。直接transform.positionを書き換えるとワールド座標での変更となってしまうため、オブジェクトの持つ正面方向へのベクトルを取得して利用する必要がある。射撃攻撃の実装などにも必須。
スクリプトからの位置座標の変更方法については「【Unity】スクリプトから位置座標を変更する」を参照。さらにTransform【トランスフォーム】コンポーネントについては「【Unity】位置、回転、大きさを変える」も参照しておくことを推奨。
また、その他のUnityに関する記事は【Unity】サイト内Tips記事リンクまとめにまとめてある。
方法
シンプルにオブジェクトのZ軸方向に動き続けるだけなら以下のようになる。スピードを調整したい場合はfloat型で定数をかけてやればよい。また、パソコンのスペックに依存せず動かしたい場合にはTime.deltaTimeなどをかけてやればよい。
gameObject.transform.position += gameObject.transform.forward;
バリエーション
正面以外でもオブジェクトの持つ向きに合わせたベクトルは以下のバリエーションが用意されている。背後、左、下に動かしたい場合はマイナスをかければ良い。
transform.forward | 正面(Z軸方向) |
transform.right | 右(X軸方向) |
transform.up | 上(Y軸方向) |