C#
[C#, Unity] 캐릭터 움직임
Minius
2023. 2. 5. 14:44
반응형
2D 게임 개발 중, 각 메소드에 대한 설명
Input.GetKeyDown = 키를 누르는 순간
Input.GetKey = 키를 누르고 있는 동안
Input.GetKeyUp = 키를 떼는 순간
transform.Translate(x, y, z) = x, y, z 축으로 정한만큼 이동
unity의 transform.Translate는 1초당 화면 깜빡임 (frame)으로 오브젝트의 움직임을 표현한다.
따라서 각 기기마다 프레임이 다를 수 있다.
갤럭시 휴대폰도 60Hz, 120Hz 중 고를 수 있다.
따라서 게임 개발자가 프레임당 속도를 5로 지정하고,
60Hz로 플레이하는 사람이 있다고 한다면 1초당 5 * 60 = 300의 속도로 캐릭터가 움직이는 게임을 할 것이고
120Hz로 플레이하는 사람은 5 * 120 = 600의 속도로 캐릭터가 움직이는 게임을 할 것이다.
이를 보정하여 두 사용자 모두 같은 게임을 플레이 할 수 있도록 Unity에서는 속도에 Time.deltaTime 이라는 시간 인자를 곱해준다.
