안녕하세요 오늘은 많은 분들이 흥미있어 하는 게임개발과 관련된 내용을 가지고 왔습니다. 바로 Unity에서 키보드 입력을 활용하여 캐릭터를 움직이는 방법에 대해서 예제코드와 함께 설명해드리려고 합니다.Unity에서 키보드의 방향키를 사용하여 캐릭터를 움직이는 방법에는 여러방법이 있는데 그 중에서도 Input 클래스를 활용하여 키보드 입력을 감지하고, 그에 따라 캐릭터를 움직이는 방법에 대해서 소개하겠습니다.
Input 클래스를 이용한 키보드 입력 처리
Input 클래스 소개
Unity의 Input 클래스는 다양한 입력을 감지하는 기능을 제공합니다. 이 중에서 키보드 입력은 Input.GetKey
과 Input.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 관련 글도 읽어봐주세요 감사합니다.
'dotnet' 카테고리의 다른 글
Blazor와 Entity Framework Core 사용해서 데이터 바인딩하기 (0) | 2024.01.14 |
---|---|
[1장] 유니티에서 GUI 개발하기 Canvas와 UI 동적 생성, 원하는 위치에 배치하기 (0) | 2024.01.13 |
C# LINQ(Language-Integrated Query) 사용 방법과 활용 방법 (0) | 2024.01.10 |