본문 바로가기

TIL(Today I Learned)/오늘 무엇을 배웠을까

TIL(Today I Learned) - 34

Unity에서 플레이어 무적 상태와 장애물 충돌 처리

1. Physics.IgnoreLayerCollision을 활용한 간단한 무적 처리

  • 주요 발견: 무적 상태를 수동으로 확인하며 충돌을 처리하는 대신, Physics.IgnoreLayerCollision을 사용해 레이어 기반 충돌 무시를 설정하는 것이 더 효율적입니다. 이를 통해 플레이어와 장애물 간의 충돌을 무적 상태일 때 비활성화할 수 있습니다.
  • 장점: 조건문을 통한 충돌 처리 코드보다 간단하고, Unity의 물리 엔진을 활용해 성능에도 이점이 있습니다.

2. 이벤트 기반의 체력 관리 시스템

  • 주요 발견: OnHealthChanged, OnLifeChanged, OnPlayerDeath 같은 Action 이벤트를 PlayerHealth 클래스에서 사용하면 체력 변화에 대해 독립적으로 반응할 수 있어 코드의 결합도가 낮아집니다. 이를 통해 UI, 사운드, 애니메이션 등의 요소가 플레이어의 체력 변화에 유연하게 대응할 수 있습니다.
  • 장점: 이벤트 시스템을 통해 체력 시스템을 게임의 다른 부분과 분리하여, 유지보수와 확장성을 높일 수 있습니다.

3. 충돌 감지와 무적 처리의 효율성

  • 구현 방식: 무적 상태 시 "Player"와 "Enemy" 레이어 간 충돌을 Physics.IgnoreLayerCollision으로 비활성화하면, 불필요한 충돌 체크를 없앨 수 있습니다. 이를 통해 충돌을 수동으로 확인하거나 상태를 관리하는 코루틴 없이 간결하게 무적 상태를 구현할 수 있습니다.

4. 간결한 솔루션 추천의 중요성

  • 교훈: 여러 솔루션을 검토할 때 단순하고 효율적인 방법을 우선으로 고려하는 것이 중요합니다. 복잡한 조건문 대신 Unity의 기능을 적극 활용하는 것이 성능과 코드 유지보수 측면에서 큰 도움이 됩니다.

'TIL(Today I Learned) > 오늘 무엇을 배웠을까' 카테고리의 다른 글

TIL(Today I Learned) - 36  (0) 2024.11.06
TIL(Today I Learned) - 35  (1) 2024.11.04
TIL(Today I Learned) - 33  (0) 2024.10.31
TIL(Today I Learned) - 32  (0) 2024.10.30
TIL(Today I Learned) - 31  (0) 2024.10.29