Programing/Unity(C#)

[Unity] 땅에서 플랫폼 위로 점프하는 플레이어 (Platform Effector 2D)

hye3193 2024. 4. 21. 23:28

아래쪽에서 플랫폼이 있는 쪽으로 뛰어도 머리를 부딪히지 않고 통과하여 올라가게 만드는 방법은 유니티에 이미 존재하는 컴포넌트를 사용하면 간단하다

플랫폼 오브젝트에 Platform Effector 컴포넌트를 추가해준다

 

이때, Composite Collider 등의 컴포넌트에서 Used By Effector 옵션을 체크해줘야 플랫폼 이펙터가 정상적으로 적용된다

 

Platform Effector에서는 Use One Way 옵션에 체크해주면 된다

아래는 해당 컴포넌트의 옵션들에 대한 추가 설명

 

Use Collider Mask: Collider Mask 사용 여부를 묻는 옵션, 체크 해제할 경우 Collider Mask 옵션이 가려진다

Rotational Offset: 로컬 기준 위쪽을 가르키는 회전 오프셋

오프셋이 0일 때(Default)

 

오프셋이 90일 때. 반원에서 호 부분이 로컬 기준 위쪽으로 정의된다

실제로 이 상태에서 게임을 실행시켜보면 캐릭터가 그대로 바닥을 통과해서 밑으로 떨어진다

 

Use One Way: 체크 설정을 하게 되면 한쪽 방향으로만 콜라이더가 적용된다(위에서 아래로 갈 때에는 충돌 O, 아래에서 위로 갈 때는 충돌 X)

Use One Way Grouping: 여러 콜라이더들이 한 객체에 있을 때 이를 하나로 그룹화시켜서 충돌 처리를 하기 위한 설정

 

Use Side Friction: 측면에서 마찰력을 발생시킬 건지 여부 (측면에는 마찰력이 없어야 캐릭터가 벽에 붙는 현상이 없어지고, 그렇다고 플랫폼 자체에 마찰력을 없애 버리면 플레이어가 얼음 위에 있는 것처럼 계속 미끄러지는 현상이 발생한다)

Use Side Bounce: 측면에서 바운스를 발생시킬 건지 여부