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 |