1. 문제 상황
- AnyState에서 특정 Death 애니메이션으로 전이 시 SetInteger 파라미터로 조건을 전달했지만, 애니메이션이 멈추는 현상이 발생.
2. 원인 분석
- Death 애니메이션과 다른 상태 연결 실험
→ Death 상태를 Idle, Attack 등과 연결했을 때는 정상 재생됨. - 다른 애니메이션들도 AnyState 전이 테스트
→ 동일하게 조건 유지 시 반복 전이 발생. Death 뿐 아니라 AnyState 자체 문제임을 확인. - 직접 애니메이션 실행 (Animator.Play)
→ SetInteger를 사용하지 않고 Animator.Play("Death") 등으로 직접 실행하면 정상 재생되는 것을 확인. - Any State가 현재 실행중인 Animation도 포함
→ SetInteger로 Any State에서 Death Animation으로 넘어가는 조건이 항상 참으로 고정되어 있어서
Death Animation -> Death Animation으로 계속해서 호출이 되어 애니메이션이 멈추는 것처럼 보이게 됌
3. 해결 방법
- 조건 파라미터를 SetInteger에서 SetTrigger로 변경하여 한번 만 체크
4. 개인 적인 생각
- 이번 경우 Death는 한번 만 체크하면 돼서 Tirgger로 설정했지만 실행 후 다른 스테이트로 넘어가야 된다면 Integer와 Trigger를 같이 사용하는 식으로 체크를 해보아도 될거 같다.
- 현재 실행중인 Animation도 Any State일거라고 생각을 못했는데, 역시 당연한 것은 없고 조금 더 확장작으로 생각할 수 있는 계기가 된 것 같다.
'Unity > 트러블 슈팅' 카테고리의 다른 글
| [Unity] 발사체 반사 방향이 이상하던 문제 (0) | 2025.05.21 |
|---|---|
| [Unity] MonoBehaviour 생성자 오류 (0) | 2025.05.20 |
| [Unity] 타일맵 크기 변경 오류 (0) | 2025.05.16 |
| [Unity] Animator 반복 재생 프레임 끊김 (0) | 2025.05.13 |
| [Unity] Sprite가 TileMap에 제대로 안들어 갈 때 (1) | 2025.05.07 |