유니티 기초 강좌: 플레이어 이동 기능 추가

안녕하세요! 이번 강좌에서는 유니티를 사용하여 간단한 플레이어 이동 기능을 개발하는 방법에 대해 알아보겠습니다. 유니티는 다양한 게임과 애플리케이션을 개발할 수 있는 강력한 엔진으로, 많은 개발자들이 선호하는 플랫폼입니다. 이번 강좌는 유니티에 대한 기본적인 이해가 있는 분들을 대상으로 하며, 초보 개발자분들도 쉽게 따라할 수 있도록 자세히 설명하겠습니다.

1. 프로젝트 설정

처음 유니티를 시작할 때, 프로젝트를 설정하는 것이 중요합니다. 아래의 절차에 따라 새로운 3D 프로젝트를 생성해 보겠습니다.

  1. 유니티 허브를 열고 New Project 버튼을 클릭합니다.
  2. 프로젝트 종류로 3D를 선택합니다.
  3. 프로젝트 이름을 “PlayerMovement”로 설정하고 Create 버튼을 클릭합니다.

프로젝트가 생성되면, 메인 에디터 화면이 열립니다. 이곳에서 씬(Scene)을 만들고 게임 객체를 추가할 수 있습니다.

2. 씬 구성하기

이제 기본적인 씬을 설정하겠습니다. 3D 오브젝트인 큐브를 추가하고, 플레이어 캐릭터를 만들기 위해 변경해보겠습니다.

2.1 큐브 추가하기

큐브를 추가하는 방법은 다음과 같습니다:

  1. Hierarchy 창에서 우클릭하여 3D Object > Cube를 선택합니다.
  2. 큐브가 생성되면, Inspector 창에서 큐브의 Transform 설정을 조정하여 위치를 변경합니다 (예: (0, 0.5, 0)로 설정).

2.2 카메라 설정하기

플레이어가 큐브를 잘 볼 수 있도록 카메라 위치를 조정합니다:

  1. Hierarchy에서 Main Camera 객체를 선택합니다.
  2. Inspector에서 Transform의 Position을 (0, 2, -5)로 설정합니다.
  3. Camera의 Rotation을 (15, 0, 0)으로 설정하여 큐브를 바라보도록 합니다.

3. 플레이어 이동 스크립트 만들기

이제 플레이어가 이동할 수 있도록 스크립트를 추가하겠습니다. 스크립트를 만들고 게임 오브젝트에 부착하는 과정은 다음과 같습니다.

3.1 스크립트 생성하기

  1. Project 창에서 Assets 폴더를 우클릭하고 Create > C# Script를 선택합니다.
  2. 스크립트 이름을 PlayerController로 지정합니다.

3.2 스크립트 내용 작성하기

이제 PlayerController.cs 파일을 열어 아래의 코드를 입력합니다:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerController : MonoBehaviour
{
    public float moveSpeed = 5.0f;

    void Update()
    {
        float horizontal = Input.GetAxis("Horizontal");
        float vertical = Input.GetAxis("Vertical");

        Vector3 direction = new Vector3(horizontal, 0, vertical);
        transform.Translate(direction * moveSpeed * Time.deltaTime, Space.World);
    }
}

3.3 스크립트 부착하기

작성한 스크립트를 큐브(플레이어 오브젝트)에 부착합니다:

  1. Hierarchy에서 큐브를 선택합니다.
  2. Inspector에서 Add Component 버튼을 클릭하고 PlayerController를 검색하여 추가합니다.

4. 플레이어 이동 테스트하기

이제 모든 설정이 완료되었습니다. 플레이어가 이동하는지를 테스트하려면, 아래 절차를 따라주세요:

  1. 상단 메뉴에서 File > Save를 클릭하여 씬을 저장합니다.
  2. 상단 메뉴에서 Play 버튼을 클릭하여 게임을 실행합니다.
  3. 키보드의 화살표 키 또는 WASD 키를 이용하여 플레이어를 이동시켜 보세요.

5. 추가 기능 구현하기

기본적인 이동 기능만으로는 게임이 흥미롭지 않을 수 있습니다. 따라서 더 많은 기능들을 추가해보겠습니다.

5.1 점프 기능 추가하기

자, 이제 점프 기능을 추가해봅시다. 점프 기능을 추가하기 위해 물리 엔진을 사용해야 합니다. 이 예제에서는 볼륨체로서 큐브에 리지드바디(Rigidbody) 컴포넌트를 추가하고, 스크립트에 점프 기능을 구현합니다.

void Start()
{
    rb = GetComponent();
}

void Update()
{
    ...
    if (Input.GetKeyDown(KeyCode.Space) && isGrounded)
    {
        rb.AddForce(Vector3.up * jumpForce, ForceMode.Impulse);
    }
}

5.2 장애물과 상호작용하기

플레이어가 장애물과 상호작용하도록 만들기 위해, 충돌 감지를 구현할 수 있습니다. 예를 들어, 플레이어가 목표 지점에 도달하거나 어떤 아이템을 수집했을 때, 점수를 증가시키는 기능을 추가할 수 있습니다.

6. 최종 테스트 및 개선 사항

모든 기능이 정상적으로 작동하는지 확인한 후, 게임의 재미를 더할 수 있는 요소를 고민해봅시다. 예를 들어, 그래픽을 개선하거나, 배경 음악을 추가하는 방법도 있습니다.

7. 결론

오늘은 유니티에서 플레이어 이동 기능을 구현하는 방법을 배웠습니다. 기본적인 지식을 바탕으로 더 많은 기능들을 추가하고 게임을 개선해 나가시기 바랍니다. 연습을 통해 더 나은 개발자가 될 수 있습니다. 감사합니다!

8. 참고 자료

유니티 공식 문서와 커뮤니티 포럼은 훌륭한 학습 자료입니다. 필요한 경우, 다음 링크를 방문하여 추가적인 정보를 찾아보세요: