Unity 리지드바디 2D 가이드

이 문서는 Unity의 리지드바디 2D에 대한 기본 개념과 프로퍼티를 설명합니다. 리지드바디 2D는 물리 기반의 게임 오브젝트를 만들기 위해 사용되며, 다양한 속성과 동작 방식으로 사용자의 요구에 맞출 수 있습니다.

리지드바디 2D 바디 타입

리지드바디 2D의 바디 타입은 주로 3가지로 나뉩니다:

바디 타입 설명
동적 (Dynamic) 물리 시뮬레이션을 통해 움직이며, 질량과 마찰 등의 모든 프로퍼티를 사용할 수 있습니다. 주로 인터랙티브한 객체에 사용됩니다.
키네마틱 (Kinematic) 사용자가 직접 제어하며 움직이도록 설계된 몸체입니다. 외부 힘의 영향을 받지 않고, 사용자가 프로그래밍으로 위치와 회전을 조정해야 합니다.
정적 (Static) 전혀 움직이지 않는 객체로, 질량이 무한대인 것처럼 작동합니다. 보통 장애물 역할을 합니다.

주요 프로퍼티 설명

리지드바디 2D에는 다양한 프로퍼티가 존재합니다. 아래는 주요 프로퍼티와 그 설명입니다:

프로퍼티 기능 설명
Body Type 리지드바디의 동작과 충돌 방식을 설정합니다.
Material 리지드바디에 공통 물리 머티리얼을 지정합니다.
Simulated 리지드바디의 물리 시뮬레이션과 상호작용 가능 여부를 설정합니다.
Use Auto Mass 콜라이더에서 자동으로 질량을 감지하여 설정합니다.
Mass 리지드바디의 질량을 정의합니다.
Linear Drag 스무딩을 위한 저항 계수를 설정합니다.
Gravity Scale 게임 오브젝트가 중력의 영향을 받는 정도를 정의합니다.
Collision Detection 충돌 검사 방식을 정의합니다.
Sleeping Mode 휴식 상태에서의 동작 방식을 정의합니다.
Interpolate 물리 업데이트 사이의 움직임 스무딩 방식을 설정합니다.

코드 예제

리스드바디 2D를 설정하기 위한 기본적인 코드 예제는 다음과 같습니다.

using UnityEngine;

public class ExampleScript : MonoBehaviour
{
    private Rigidbody2D rb;

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

        // 리지드바디의 질량 설정
        rb.mass = 1.0f;

        // 중력 영향을 설정 (0은 중력 무시)
        rb.gravityScale = 2.0f;
    }

    void Update()
    {
        // 키 입력에 따라 물체를 이동
        if (Input.GetKey(KeyCode.RightArrow))
        {
            rb.AddForce(new Vector2(1, 0), ForceMode2D.Force);
        }
    }
}

추가 활용 예제

  1. 점프 물리 구현하기
  2. 사용자가 스페이스바를 누를 때 점프하는 리지드바디를 구현합니다.
  3. 물체 충돌 감지
  4. 다른 물체와의 충돌 정보를 바탕으로 점수를 얻거나 게임 오브젝트를 제거하는 기능을 구현합니다.
  5. 상태 관리
  6. 리지드바디의 상태에 따라 다르게 동작하도록 설정해 복잡한 게임 플레이를 만듭니다.

이 가이드는 Unity의 리지드바디 2D를 쉽게 이해하고 활용할 수 있도록 돕기 위해 작성되었습니다. 다양한 설정과 프로퍼티를 실험하여 게임 개발에 활용해 보시기 바랍니다.