UnityでCubeを90度回転させようと思った時、transform.Rotateで90度回転すると一気に回転してしまい、見ていて回転しているのが分かりずらいのでゲームオブジェクトをゆっくり回転させる方法を書き残しておきます。
コルーチンを使えば、ゲームオブジェクトをゆっくり90度回転させることができます。
bool rot = true;
float speed = 1f;
void Start()
{
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Space) && rot == true) {
rot = false;
StartCoroutine(rt());
}
}
IEnumerator rt()
{
int i = 0;
while(i < 90)
{
i++;
this.transform.Rotate(0,speed,0);
yield return null;
}
rot = true;
}
上のコードでは、スペースキーを押すとゲームオブジェクトが90度回転します。また三行目のspeedの値を変えることで回転するスピードを変えることができます。
回転中はコルーチンを呼び出さないためにbool型の変数を使いました。(一行目の「bool rot = true;」のこと)