Menu
CoddyTech

매초 회전하기

Coddy Unity 여정의 Unity 스크립팅 기초 섹션에 포함된 레슨. 67개 중 4번째.

transform.Rotate(x, y, z)는 GameObject를 각 축을 중심으로 해당 각도만큼 회전시킵니다. Update()에서 호출하면 매 프레임 조금씩 회전하므로 오브젝트가 계속 회전합니다.

하지만 1초는 몇 프레임일까요? 빠른 컴퓨터에서는 120프레임일 수 있고, 휴대폰에서는 30프레임일 수 있습니다. 단순한 transform.Rotate(0, 0, 5)는 빠른 컴퓨터에서 네 배 더 빠르게 회전합니다. Unity의 해결책은 Time.deltaTime입니다. 이는 마지막 프레임 이후 경과한 시간(초)입니다. 속도에 이 값을 곱하면 모든 기기에서 속도가 초당을 의미하게 됩니다.

여기서는 바퀴가 z축을 중심으로 초당 45도 회전합니다.

public float speed = 45f;

void Update()
{
    transform.Rotate(0, 0, speed * Time.deltaTime);
}

초당 60프레임일 때 Time.deltaTime은 약 0.0167이므로, 매 프레임 45 * 0.0167만큼, 즉 약 0.75도 회전하며, 이를 60번 반복하면 45도가 됩니다. 초당 30프레임일 때는 매 프레임 두 배만큼 회전하지만, 그래도 1초 동안 회전하는 각도는 45도가 됩니다.

challenge icon

챌린지

쉬움

큐브에는 speed가 90인 Spinner 스크립트가 있습니다. Update()에서 어떤 기기에서든 큐브가 매초 speed도씩 y축을 중심으로 회전하도록 만드세요.

Play를 눌러 확인한 다음 Check를 누르세요.

직접 해보기

using UnityEngine;

public class Spinner : MonoBehaviour
{
    public float speed = 90f;

    void Update()
    {
        // 여기서 큐브를 y축을 중심으로 회전시키세요
    }
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

Unity 스크립팅 기초의 모든 레슨