Transfrom.RotateやTransform.Translateで思うような挙動にならない時はだいたいこれなのでまとめます.
症状の例
- オブジェクトを前に飛ばしたいのに,変な方向へ行ってしまう.
- x軸で回転させた後,y軸で回転させると思うような方向へ回転しない.
原因
解決策
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);