본문 바로가기
dotnet

C# Unity에서 키보드 방향키로 캐릭터 움직이는 방법

by hera1 2024. 1. 18.

Unity에서 키보드 방향키로 캐릭터 움직이는 방법

안녕하세요 오늘은 많은 분들이 흥미있어 하는 게임개발과 관련된 내용을 가지고 왔습니다. 바로 Unity에서 키보드 입력을 활용하여 캐릭터를 움직이는 방법에 대해서 예제코드와 함께 설명해드리려고 합니다.Unity에서 키보드의 방향키를 사용하여 캐릭터를 움직이는 방법에는 여러방법이 있는데 그 중에서도 Input 클래스를 활용하여 키보드 입력을 감지하고, 그에 따라 캐릭터를 움직이는 방법에 대해서 소개하겠습니다.

Input 클래스를 이용한 키보드 입력 처리

Input 클래스 소개

Unity의 Input 클래스는 다양한 입력을 감지하는 기능을 제공합니다. 이 중에서 키보드 입력은 Input.GetKeyInput.GetAxis를 통해 처리할 수 있습니다.

GetKey 메서드를 활용한 간단한 움직임 처리하기

using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
    public float speed = 5f;

    void Update()
    {
        // 좌우 이동
        if (Input.GetKey(KeyCode.LeftArrow))
        {
            transform.Translate(Vector3.left * speed * Time.deltaTime);
        }
        else if (Input.GetKey(KeyCode.RightArrow))
        {
            transform.Translate(Vector3.right * speed * Time.deltaTime);
        }

        // 상하 이동
        if (Input.GetKey(KeyCode.UpArrow))
        {
            transform.Translate(Vector3.forward * speed * Time.deltaTime);
        }
        else if (Input.GetKey(KeyCode.DownArrow))
        {
            transform.Translate(Vector3.back * speed * Time.deltaTime);
        }
    }
}

위 코드와 같이 Input.GetKey 메서드를 사용하여 방향키를 누르고 있는 동안에만 캐릭터가 이동하도록 처리했습니다. Time.deltaTime을 통해 이동 속도를 프레임에 따라 조절하였습니다.

GetAxis 메서드를 이용한 움직임 처리하기

using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
    public float speed = 5f;

    void Update()
    {
        // 좌우 이동
        float horizontalInput = Input.GetAxis("Horizontal");
        transform.Translate(Vector3.right * horizontalInput * speed * Time.deltaTime);

        // 상하 이동
        float verticalInput = Input.GetAxis("Vertical");
        transform.Translate(Vector3.forward * verticalInput * speed * Time.deltaTime);
    }
}

Input.GetAxis 메서드를 사용하면 키 입력의 강도에 따라 부드럽게 이동할 수 있습니다. 이 경우에는 Horizontal과 Vertical 축을 사용하여 좌우 및 상하 이동을 처리했습니다.

 

Unity로 게임 개발을 진행하 때 가장 기초가되는 방향키로 캐릭터를 움직이는 방법에 대해서 살펴보았습니다. 가장 간편한 방법이라고 말씀드리르 수 있는 Input 클래스를 활용하여 키보드 입력을 감지 방법에 대해서 안내드렸습니다. 여러분들이 이번 기회에 키보드 입력을 처리하는 방법을 익히고, 이를 응용하여 게임의 다양한 기능을 개발할 수 있었으면 좋겠습니다. 긴 글 읽어주셔서 감사합니다. 다른 dotnet 관련 글도 읽어봐주세요 감사합니다.