본문 바로가기
C#

[C#, Unity] 캐릭터 움직임

by Minius 2023. 2. 5.
반응형

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 이라는 시간 인자를 곱해준다.

 

 

댓글