11
8

More than 5 years have passed since last update.

Transform.RotateやTransform.Translateで思うように動かない時の対処法

Posted at

Transfrom.RotateやTransform.Translateで思うような挙動にならない時はだいたいこれなのでまとめます.

症状の例

  • オブジェクトを前に飛ばしたいのに,変な方向へ行ってしまう.
  • x軸で回転させた後,y軸で回転させると思うような方向へ回転しない.

原因

デフォルトがローカル座標である.
スクリーンショット 2016-05-04 14.48.48.jpg

解決策

speedとangleはあらかじめ宣言しておく.

正面(キャラクターのZ軸正の方向)に進みたい時

GoStraight1.cs
this.transform.Translate(Vector3.forward * Time.deltaTime * speed);

もしくは

GoStraight2.cs
this.transform.Translate(this.transform.forward * Time.deltaTime * speed, Space.World);

ワールド座標のx軸で回転したい時

ObjectRotate.cs
this.transform.Rotate(Vector3.right * angle, Space.World);

参考

リファレンス
Transform.Translate
Transform.Rotate

11
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
8