저번 포스팅에서 유니티를 다운 받았으면, 이번에는 게임에서 가장 중요한 Player(플레이어) 이동까지 다뤄보겠습니다.
1. 오브젝트 생성하기
왼쪽 바에 Hierarchy(하이어라키) 창에 오른쪽 마우스 클릭후 3D Object > Capsule 을 선택해 이름을 Player로 바꿔주세요.
그럼 이렇게 캡슐이 하나 생성이 됩니다.
같은 방법으로 Hierarchy(하이어라키) 창에서 오른쪽 마우스 클릭후 바닥을 하나 생성해줍니다. 3D Object > Plane
바닥이 하나 생성이 되었죠. 근데 너무 작으니까 오른쪽 Inspector창에서 Transform의 Scale 값을 (5, 5, 5)으로 바꿔줍니다.
바닥 크기가 (5, 5, 5) 만큼 커졌습니다. 근데 여기서 문제가 하나 생겼죠.
플레이어가 바닥을 뚫은 상태여서 플레이어의 Transform에서 Position Y의 값을 3으로 설정해 주겠습니다.
사진과 같이 플레이어가 바닥위에 떠 있습니다.
이제 플레이어의 이동을 위한 스크립트를 짜보겠습니다.
2. 플레이어 이동 스크립트 짜기
아래칸의 Project(프로젝트)창에서 오른쪽 마우스 클릭 후 폴더를 하나 만들어 줄게요. Create -> Folder
폴더가 생성이 되었으면, 폴더를 클릭후 C#스크립트를 하나 만들겠습니다. Create -> C# Script
스크립트 이름은 PlayerCtrl
클릭해줍니다. 이제 본격적으로 플레이어 이동을 위한 코드를 구현해 보도록 하겠습니다.
비주얼 스튜디오가 실행이 되때, 처음 모습입니다.
여기서 void Start() 함수는 게임 실행후 처음 딱 한번만 호출이 됩니다.
void Update() 함수는 게임 실행후 매 프레임마다 호출이 됩니다.
플레이어 이동이 딱 한번만 실행이 될 수 없으니,
Update()에 이동을 구현해보겠습니다.
public float speed = 2.0f;는 플레이어 속도를 2.0f 로 지정해 준 것입니다.
if (Input.GetKey(KeyCode.UpArrow))
{
transform.Translate(Vector3.forward* speed *Time.deltaTime);
}
에서 위방향키를 누르고 있으면, 2.0f의 속도로 앞으로 이동하겠다는 뜻입니다.
여기서,
GetKey : 누르고 있는 상태,
GetKeyDown : 키를 눌렀을때,
GetKeyUp : 키를 누르고 떼었을때
스크립트 코드 작성을 마쳤으면, 다시 유니티화면으로 돌아갑니다.
PlayerCtrl.cs 스크립트를 하이어라키창의 Player에 끌어다 줍니다.
Inspector창에 추가된 것을 볼 수 있습니다.
그리고 실행하기 전 가장 중요한 rigidbody 컴포넌트를 추가해주어야 합니다.
rigidbody 컴포넌트는 물체의 물리작용을 적용시켜주기 때문에 게임상에서 중력과 충돌을 감지하게 해줍니다.
이것을 추가하지 않으면, 게임을 실행했을때, 플레이어가 바닥에 닿지 않고 허공에 계속 떠있을 것입니다.
상단의 Component(컴포넌트)를 클릭하여 Physics -> Rigidbody
인스펙터 창에 Rigidbody가 생성되었습니다.
여기서 Use Gravity는 중력을 의미합니다.
Use Gravity를 체크 하면 바닥에 떨어져 착지할 것이고, 체크를 해제하면 허공에 떠 있을 것입니다.
MainCamera의 Transform의 Position Y를 5로 Z를 -15로 바꿔주세요. 그리고 게임을 실행해주시고, 방향키를 누르면,
플레이어가 이동하는 것을 볼 수 있습니다.
끝
'유니티(unity)' 카테고리의 다른 글
[Unity] 오브젝트 색깔 바꾸기(Material) - 3 (0) | 2021.07.17 |
---|---|
[Unity] 유니티 시작, 다운로드 - 1 (0) | 2021.06.30 |