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);
参考
リファレンス
[Transform.Translate]
(http://docs.unity3d.com/ja/current/ScriptReference/Transform.Translate.html)
[Transform.Rotate]
(http://docs.unity3d.com/jp/current/ScriptReference/Transform.Rotate.html)