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);
}
}
}
추가 활용 예제
- 점프 물리 구현하기
- 사용자가 스페이스바를 누를 때 점프하는 리지드바디를 구현합니다.
- 물체 충돌 감지
- 다른 물체와의 충돌 정보를 바탕으로 점수를 얻거나 게임 오브젝트를 제거하는 기능을 구현합니다.
- 상태 관리
- 리지드바디의 상태에 따라 다르게 동작하도록 설정해 복잡한 게임 플레이를 만듭니다.
이 가이드는 Unity의 리지드바디 2D를 쉽게 이해하고 활용할 수 있도록 돕기 위해 작성되었습니다. 다양한 설정과 프로퍼티를 실험하여 게임 개발에 활용해 보시기 바랍니다.