2026년 3월 17일 화요일

Time.delta 사용법

유니티에서 매 루틴이 돌아가는 시간이 일정치 않습니다. 그 시간은 Time.delta에 저장되어 있습니다.

그러므로 일정한 속도의 변화를 줄 경우 이 Time.delta를 이용할 수 있습니다.

void Update
{
    transform.position.x += speed * Time.deltaTimr;
}

그런데 일정한 비율로 변화가 일어날 때는 어떨까요? 이를테면 매 초마다 두배로 늘어나는 경우 말이죠.

이럴 때도 똑같은 방법으로 할 수 있을까요?

void Update
{
    const scalePerSec = 2;
    size *= scalePerSec * Time.deltaTime;
}
실제로 이렇게 하면 제대로 동작하지 않습니다. Time.delta가 매우 작은 값이기 때문에 size는 계속 감소해버리죠.
이럴 경우는 지수함수를 사용해야 합니다.
void Update
{
    const scalePerSec = 2;
    size *= Mathf.Exp(scalePerSec, Time.deltaTime);
}


댓글 없음:

댓글 쓰기