신입 개발자 공부 과정

Unity 2D 게임 개발 - 캐릭터 기본 이동 구현 (Rigidbody2D + Input System) 본문

유니티 게임개발 따라하기

Unity 2D 게임 개발 - 캐릭터 기본 이동 구현 (Rigidbody2D + Input System)

Lewisjkim 2025. 5. 20. 16:36

지난 시간에는 유니티 프로젝트를 생성하고 2D 환경을 설정하는 방법까지 진행했습니다. 이번 포스트에서는 플레이어 캐릭터가 키보드 입력에 따라 좌우로 움직이고 점프할 수 있도록 구현해보겠습니다.

1. Rigidbody2D와 Collider2D 추가

우선, 플레이어로 사용할 GameObject를 선택한 뒤 다음 컴포넌트를 추가합니다:

  • Rigidbody2D: 물리 계산을 위해 필수
  • BoxCollider2D: 충돌 처리를 위한 박스 모양 콜라이더

Rigidbody2D의 Gravity Scale은 3 정도로 설정하면 자연스러운 낙하가 됩니다.

2. C# 스크립트 작성 (PlayerMovement.cs)


using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
    public float moveSpeed = 5f;
    public float jumpForce = 10f;
    private Rigidbody2D rb;
    private bool isGrounded;

    void Start()
    {
        rb = GetComponent<Rigidbody2D>();
    }

    void Update()
    {
        float moveInput = Input.GetAxis("Horizontal");
        rb.velocity = new Vector2(moveInput * moveSpeed, rb.velocity.y);

        if (Input.GetKeyDown(KeyCode.Space) && isGrounded)
        {
            rb.velocity = new Vector2(rb.velocity.x, jumpForce);
        }
    }

    void OnCollisionEnter2D(Collision2D collision)
    {
        if (collision.contacts[0].normal.y > 0.5)
            isGrounded = true;
    }

    void OnCollisionExit2D(Collision2D collision)
    {
        isGrounded = false;
    }
}

3. Input System으로 확장 가능

위 예제는 기본 입력 시스템을 사용하지만, Input System 패키지를 활용하면 게임패드나 모바일까지 확장하기 쉬워집니다.