[TIL] Platform Effector 2D - 일방통행 플랫폼 (1)

MINO·2024년 10월 15일
1
post-thumbnail

2024-10-15


구현 목표

1. 아래에서 위로만 올라갈 수 있는 (일방통행) 발판
2-1. 발판을 밟고 있을 때 : 시간이 지날 때마다, 발판이 부서지는 것처럼 Sprite 변경
2-2. 발판이 부서졌을 때 : 발판의 Sprite, Collider2D 를 비활성화
2-3. 발판에서 떨어졌을 때 : 발판의 Sprite, Collider2D 를 초기화


Platform Effector 2D

일방 충돌, 측면 마찰/바운스 제거 등 다양한 “플랫폼” 동작을 적용하기 위해 사용.

이펙터와 함께 사용하는 콜라이더는 일반적으로 다른 콜라이더와 충돌할 수 있도록
is Trigger 의 속성은 해제한다.
(마찬가지로, Collider2D 컴포넌트가 존재해야 하고, Used By Effector 속성은 체크해줘야 한다.)

Collider2D 컴포넌트가 없거나 Used By Effector 속성을 체크해주지 않으면,
아래의 주의 메시지를 볼 수 있다.
"This effector will not function unitl there is at least one enabled 2D collider with 'Used by Effector' checked on this GameObject."

Collider 2DPlatform Effector 2D

Property

  • Use Collider Mask : 플랫폼에 의한 오브젝트(레이어) 필터링을 거칠지 선택
    - Collider Mask : 상호작용할 콜라이어의 레이어 지정

  • Rotational Offset : 기울어진 발판을 만들 때 회전 보정을 설정하는 속성
    - 기본 값 (0) : 상단에서만 캐릭터가 서거나 충돌

  • 임의의 값 설정(90) : 플랫폼의 오른쪽 면만이 충돌 가능, 상호작용 가능

  • Use One Way : 콜라이더가 한 방향으로만 충돌하게 할지를 설정

  • Use One Way Grouping : 여러 개의 플랫폼 콜라이더를 하나의 그룹으로 동작하게 만든다.
    - Ex) 캐릭터 오브젝트 - Arm, Body 오브젝트의 각각 Collider 2D 를 하나의 그룹으로 묶어서 상호작용
    - 블로그 참고

  • Surface Arc : 플랫폼이 충돌을 처리할 각도의 범위를 설정
    - 180도 : 플랫폼의 반쪽 전체에서 충돌이 가능 (위쪽 뿐만 아니라 좌우 측면에서도 충돌 가능)
    - 360도 : 플랫폼의 모든 방향에서 충돌이 가능 (상하좌우 모든 면에서 충돌 가능)

  • Use Side Friction : 측면 쪽에 마찰력을 사용할지 설정

비활성화활성화
측면에 마찰력이 없어 캐릭터가 하강측면에 마찰력이 있어 캐릭터가 공중에 정지
  • Use Side Bounce : 측면 쪽에 반발력을 사용할지 설정
    - Ex) 활성화 : 플랫폼의 측면 충돌 시 오브젝트가 튀어 나가는 효과
    • Ex) 비활성화 : 플랫폼의 측면 충돌 시 단순히 멈추거나 미끄러지는 효과
  • Side Arc : 측면 충돌 범위를 설정 (마찰력이나 반발력을 적용할 측면 각도 정의)
    - 0 : 캐릭터가 플랫폼의 측면에서 충돌하지 않음
    - 0 보다 클 때 : 플랫폼의 측면에서 충돌할 수 있는 각도가 증가 (1번 영역 : Surface Arc / 2번 영역 : Side Arc)

profile
안녕하세요 게임 개발하는 MINO 입니다.

0개의 댓글