01 프로젝트 생성
유니티 허브에서 프로젝트를 생성한다.
02 플레이어 오브젝트 생성
Camera 컴포넌트의 Projection 변수가 Orthographic이면 2D 카메라이다.
카메라의 기본 위치(Position)는 (0, 0, -10)으로, 원점에 있는 오브젝트를 바라볼 수 있도록 설정되어 있다.
오브젝트를 이동시키기 위해 Player이라는 이미지를 가져온다.
Sprites에서 오브젝트를 생성한다.
오브젝트의 이름을 Player로 바꾸고, 저장해 둔 Player 이미지를 Sprite에 넣는다.
Transform으로 오브젝트의 위치를 조정할 수 있다.
Movement2D라는 스크립트를 생성하고, 컴포넌트로 적용시킨다.
03 transfrom.position
transform : 내가 소속되어 있는 게임오브젝트의 Transform 컴포넌트
이동 방향 : 오른쪽(1, 0, 0)
이동 속도 : 1
실행해 보면 오른쪽으로 1만큼 이동하는 것을 볼 수 있다.
04 Update()와 Time.deltaTime
게임이 실행되는 동안 계속 움직이도록 하려면 앞에서 배운 Update() 함수를 사용하면 된다.
Update 함수에서 이동, 회전, 크기 변화를 지속해서 변화하는 행위를 할 때에는 Time.deltaTime을 곱해줘야 한다.
Update() 메소드는 FPS에 따라 1초에 몇 번 호출될지 결정되기 때문이다.
Time.deltaTime
- 이전 Update() 종료부터 다음 Update() 시작까지의 시간
- 즉, 업데이트 사이의 시간
- ex) 1분(60초)에 Update()가 60번 호출된다면 Time.deltaTime은 1
- 사양이 좋지 않은 컴퓨터는 60초에 Update()가 60번 호출
- Time.deltaTime의 값은 1
- 사양이 좋은 컴퓨터는 60초에 Update()가 120번 호출
- Time.deltaTime의 값은 0.5
- 두 컴퓨터에서 캐릭터 이동을 했을 때
- 캐릭터의 Update() 1회 당 이동거리를 5m 라고 할 때
- 사양이 좋지 않은 컴퓨터는 60초(FPS 60)에 Update()가 60회 호출
- 사양이 좋은 컴퓨터는 60초에 Update()가 120회 호출
위와 같이 컴퓨터의 사양에 따라 이동 거리가 달라지는 것을 방지하기 위해 이전 Update() 종료부터 다음 Update() 시작까지의 시간인 Time.deltaTime을 곱하는 것이다.
05 Input.GetAxisRaw()
방향키 입력을 이용한 이동 방향 제어
Input Class
PC (키보드, 마우스), 모바일(터치, 가속도센서, 자이로센서) 등의 입력 메소드, 마우스 좌표와 같은 각종 프로퍼티 정보를 제공
Input.GetAxisRaw
유니티에 미리 설정된 단축키를 이용하는 함수
Edit - Project Settings - Input Manager에서 단축어를 확인할 수 있다.
실행해 보면 a d w s 단축키로 이동할 수 있다.
'PBL > Unity' 카테고리의 다른 글
유니티 2D 기초 - 게임 생성 함수 (0) | 2024.04.13 |
---|---|
유니티 2D 기초 - 게임오브젝트 물리와 충돌 (0) | 2024.04.09 |
유니티 기초 - 유니티 이벤트 함수 (0) | 2024.04.08 |
유니티 기초 - 스크립트 개요, 콘솔 뷰에 데이터 출력 (0) | 2024.04.02 |
유니티 기초 - 게임 오브젝트, 컴포넌트 (0) | 2024.04.02 |