1인 개발 게임 (Unity)/UNITY

[UNITY] 키보드 방향키로 캐릭터(오브젝트) 이동시키기

Z46 2024. 8. 8. 15:36

안녕하세요, 인친님들! 오늘은 게임 개발의 기본 중의 기본, 키보드 방향키를 이용해 캐릭터를 이동시키는 방법에 대해 알아보겠습니다.

 

이 기능은 거의 모든 2D 게임에서 필수적이며, 3D 게임에서도 자주 사용됩니다.

 

기본 설정

  1. 유니티 프로젝트를 엽니다.
  2. 이동시킬 캐릭터(오브젝트)를 생성하거나 선택합니다.
  3. 캐릭터에 새로운 C# 스크립트를 추가합니다. (예: CharacterMovement.cs)

 

스크립트 작성하기

아래의 코드를 CharacterMovement.cs 파일에 작성합니다:

using UnityEngine;

public class CharacterMovement : MonoBehaviour
{
    public float moveSpeed = 5f;  // 이동 속도

    void Update()
    {
        Vector3 movement = Vector3.zero;

        // 왼쪽 화살표 키 입력 확인
        if (Input.GetKey(KeyCode.LeftArrow))
        {
            movement.x = -1;
        }
        // 오른쪽 화살표 키 입력 확인
        else if (Input.GetKey(KeyCode.RightArrow))
        {
            movement.x = 1;
        }

        // 캐릭터 이동
        transform.position += movement * moveSpeed * Time.deltaTime;
    }
}

코드 설명

  1. moveSpeed 변수는 캐릭터의 이동 속도를 결정합니다. Inspector에서 조절 가능합니다.
  2. Update() 함수는 매 프레임마다 호출됩니다.
  3. Input.GetKey()를 사용하여 키 입력을 확인합니다:
    • KeyCode.LeftArrow는 왼쪽 화살표 키를 나타냅니다.
    • KeyCode.RightArrow는 오른쪽 화살표 키를 나타냅니다.
  4. 키 입력에 따라 movement 벡터를 설정합니다.
  5. transform.position을 변경하여 캐릭터를 이동시킵니다.
    • Time.deltaTime을 곱해 프레임 레이트에 관계없이 일정한 속도로 이동하게 합니다.

추가 팁

  • 위/아래 이동을 추가하려면, KeyCode.UpArrowKeyCode.DownArrow를 사용하고 movement.y를 조정하세요.
  • 부드러운 이동을 원한다면 Rigidbody2D(2D) 또는 Rigidbody(3D)를 사용하여 물리 기반 이동을 구현할 수 있습니다.
  • 캐릭터 스프라이트의 방향을 바꾸고 싶다면, 이동 방향에 따라 transform.localScale.x의 부호를 변경하세요.

 


검색어 해시태그:

#유니티 #Unity #게임개발 #GameDev #캐릭터이동 #CharacterMovement #키보드입력 #KeyboardInput #유니티튜토리얼 #UnityTutorial #2D게임 #2DGame #게임프로그래밍 #GameProgramming #인디게임개발 #IndieGameDev #유니티C# #UnityCs #게임메카닉 #GameMechanics