PhysicsMaterial2D는 Unity에서 2D 물리 엔진을 사용하는 경우, 물체의 물리적 특성을 정의하는 데 사용된다. 2D 물리 엔진에서도 마찰력(Friction)과 반발력(Bounciness)을 설정하여 물체의 상호작용을 제어할 수 있다. 이는 3D에서 사용하는 PhysicMaterial과 유사하지만 2D 환경에 맞게 최적화되어 있다.
PhysicsMaterial2D 생성 및 적용 예시
1. 기본 개념
마찰력(Friction): 물체가 서로 미끄러질 때 저항하는 힘. 높은 마찰력은 물체가 더 많이 저항하도록 하고, 낮은 마찰력은 물체가 쉽게 미끄러지도록 한다.
반발력(Bounciness): 물체가 충돌할 때 얼마나 튀어오르는지를 결정한다. 높은 반발력은 물체가 더 많이 튀어오르게 하고, 낮은 반발력은 거의 튀어오르지 않게 한다.
2. PhysicsMaterial2D 생성 및 설정
PhysicsMaterial2D 생성
Unity 에디터에서 Project을 연다.
마우스 오른쪽 버튼을 클릭하여 컨텍스트 메뉴를 연다.
Create > Physics Material 2D를 선택한다.
새로운 PhysicsMaterial2D 파일이 생성된다. 이름을 예를 들어 BouncyMaterial2D로 지정.
PhysicsMaterial2D 설정
생성된 BouncyMaterial2D 파일을 선택한다.
인스펙터(Inspector) 창에서 Friction과 Bounciness 값을 설정한다. 예를 들어, Friction을 0.2로, Bounciness를 0.8로 설정.
물체에 PhysicsMaterial2D 적용
Hierarchy 창에서 2D 물체(예: 공, 박스)를 선택한다.
물체의 Collider 2D 컴포넌트 (예: BoxCollider2D, CircleCollider2D)를 인스펙터 창에서 확인한다.
Collider 2D 컴포넌트의 Material 속성에 아까 생성한 BouncyMaterial2D을 드래그 앤 드롭한다.
3. 스크립트를 사용한 적용 예시
C# 스크립트를 통해 PhysicsMaterial2D을 적용하는 방법도 있다.
'''c
public class ApplyPhysicsMaterial2D : MonoBehaviour
{
public PhysicsMaterial2D bouncyMaterial2D;
void Start()
{
Collider2D collider2D = GetComponent<Collider2D>();
if (collider2D != null)
{
collider2D.sharedMaterial = bouncyMaterial2D;
}
}
}
'''
스크립트를 Unity 프로젝트에 추가하고, 예를 들어 ApplyPhysicsMaterial2D.cs로 저장
스크립트를 2D 물체(예: 공, 박스)에 추가
인스펙터에서 BouncyMaterial2D 필드에 아까 생성한 BouncyMaterial2D을 할당
이렇게 하면 게임이 시작될 때 해당 물체에 BouncyMaterial2D이 적용
결론
PhysicsMaterial2D는 Unity의 2D 물리 엔진에서 물체의 물리적 상호작용을 제어하는 데 사용된다. 이를 통해 물체의 마찰력과 반발력을 설정하여 물체가 다른 물체와 충돌하거나 미끄러질 때의 반응을 조정할 수 있다. PhysicsMaterial2D은 에디터에서 생성하고 설정하거나, 스크립트를 통해 동적으로 적용할 수 있다.