今回はUnityでスプライト(2D)やゲームオブジェクト(3D)の向きを指定したり、回転を行う方法を紹介します。スクラッチの「〇度に向ける」と「〇度回す」に当たるものですね。
2Dのスプライトを90度に向ける(=上に向ける)スクリプトです。
(スクラッチの場合は、ネコを上に向ける場合は、「0度に向ける」ですね。)
2Dの場合は、Z軸を回転軸にして回転させます。
void Start()
{
transform.eulerAngles = new Vector3(0, 0, 90);//90度に向ける
}
90度に向けた後に、45度回してみましょう。結果、135度を向くことになりますね。
void Start()
{
transform.eulerAngles = new Vector3(0, 0, 90);//90度に向ける
transform.Rotate(0, 0, 45);//45度回転させる
}
ずっと回転し続けるコードです。1秒間に45度回転します。Update関数内に書いてくださいね。
Time.deltaTimeは前のフレームからの経過時間(秒)を表します。例えば、50fpsの場合は、0.02です。これを掛けることによって、45という数字の意味を1フレーム当たりの回転角度から1秒当たりの回転角度に変換することが出来ます。このTime.deltaTimeを掛けるのは、移動の時もよく使うので是非覚えておいてください。
void Update()
{
transform.Rotate(0, 0, 45 * Time.deltaTime);//1秒間に45度回転させる
}
基本的に2Dの時と同じです。3Dの犬をY軸を回転軸にして回転させます。
かわいい。
void Update()
{
transform.Rotate(0,120 * Time.deltaTime,0);//1秒間に120度回転させる
}