728x90
플레이어 이동 방법을 2가지 소개하겠습니다.
1. Rigidbody2D 컴포넌트를 사용하는 방법
2. Transform 컴포넌트를 사용하는 방법
Rigidbody 2D 컴포넌트는 오브젝트를 물리 엔진이 제어하게 만듭니다.
Transform 은 게임 오브젝트의 포지션, 회전, 스케일, 부모-자식 상태를 저장하기 위해 사용한다.

1의 방법을 위해서는 maxSpeed와 rigid 변수가 필요하다.
2의 방법을 위해서는 speed와 tf 변수가 필요하다.
1. Rigidbody 2D 컴포넌트를 사용하는 방법

float h를 통해서 플레이어가 어디로 가고 싶은지에 대한 방향 정보를 가져온다.
가져온 정보를 이용하여 플레이어를 그쪽 방향으로 밀어준다.

하지만 여기서 AddForce는 힘을 계속해서 플레이어에게 가해주기 때문에 속도가 무한대로 늘어날 수 있다.
따라서 public int maxSpeed의 값을 이용하여 플레이어의 속도에 제한을 주는 것으로 문제를 해결한다.
2. Transform 컴포넌트를 사용하는 방법

float h를 통해서 플레이어가 어디로 가고 싶은지에 대한 방향 정보를 가져온다.
방향 정보에 speed를 곱하여 속도를 높여주고, Time.deltaTime을 곱하여 어떠한 프레임에서도 같은 속도로 갈 수 있게 정해준다.
그리고 현재 위치에서 다음 위치로 이동시켜준다.

728x90
'Unity' 카테고리의 다른 글
[Unity] Trigger, Sprite를 이용한 오브젝트 비활성화 (0) | 2020.03.26 |
---|---|
[Unity] TextMesh를 이용한 오브젝트 위에 글씨 만들기 (0) | 2020.03.25 |
[Unity] Mathf.Cos(), Mathf.Sin()을 이용한 무작위 경계 함수 만들기 (0) | 2020.03.24 |
[Unity] RaycastHit2D를 이용한 플레이어 점프 구현 (0) | 2020.03.23 |
[Unity] Animator, Sprite Renderer를 이용한 애니메이션 설정 (0) | 2020.03.22 |