Sokovan 게임제작, 오브젝트 회전 + 시간 간격

Se0ng_1l·2022년 7월 22일
0
post-thumbnail

이 글은
https://www.inflearn.com/course/유니티-게임-프로그래밍-에센스
강의를 요약한 강의노트 입니다.
유니티를 처음 접하시는 분들이거나 좀 더 기반을 다지고 싶으신 분들에게 👍강력하게 추천합니다.

📌Transform

Transform이란, 자기 자신의 위치와 크기 각도의 정보를 가진 컴포넌트
Rotate()함수 : 물체를 회전시킬 수 있는 함수

코드 작성

public Transform myTransform;
myTransform.Rotate(60, 60, 60);    

⭐️Tip

Transform컴포넌트는 유니티에디터 상에 존재하는 모든 오브젝트는 가지고 있다.
따라서 위 코드와 같이 작성해도 되지만, 유니티에서 편의성을 제공해 아래와 같이 소문자 transform의 shortcut방식으로 작성해서 접근할 수 있다.

transform.Rotate(60, 60, 60);

📌Time.deltaTime

Update()의 맹점 :
게이머의 컴퓨터에 따라 프레임이 달라져 같은 게임안에서 게이머의 환경에 따라 공평한 게임을 진행할 수 없는 문제가 발생한다.
❗️해결 방법 ➡️ 현실 시간을 적용시킨다.

Time.deltaTime
화면이 한번 깜빡이는 시간(한 프레임의 시간)을 리턴
60fps라면 1 / 60초를 리턴
120fps라면 1 / 120초를 리턴
만약 A의 컴퓨터가 n의 fps환경일 때 캐릭터를 1초에 1m를 이동시키고 싶다.
= 1초에 1m * (1 / n)를 n번 연산하여 그 결과를 누적한다.
= 1초에 1m를 이동

void Update()
{
    transform.Rotate(60 * Time.deltaTime, 60 * Time.deltaTime, 60 * Time.deltaTime);
}
profile
치타가 되고 싶은 취준생

0개의 댓글