やりたいこと
例えば、ボタンを押したら、3秒かけて360度回転したい場合
開店後は停止する。
コード
[SerializeField]GameObject handle; bool rotStart = false; float speed = 3.0f; float rotAngle = 360f; float variation; float rot; void Start () { variation = rotAngle / speed; } void Update () { if (rotStart) { handle.transform.Rotate (0, 0, variation * Time.deltaTime); rot += variation * Time.deltaTime; if (rot >= rotAngle) { rotStart = false; handle.transform.localRotation = Quaternion.Euler (0, 0, 180); } } } public void OnBtn () { //回転角度を初期化する。 rot = 0f; handle.transform.localRotation = Quaternion.Euler (0, 0, 0); rotStart = true; }
解説
handle = 回転するオブジェクト
rotStart = アニメーション開始フラグ
speed = 秒数
rotAngle = 回転させたい角度
variation = 1秒間の変化量
rot = 回転した角度の総数を入れる変数