테스트 종료 시 뜨는 에러
1914
작성한 질문수 17
Play 버튼을 한번 더 눌러 테스트를 종료할 때 위와 같은 에러 미시지가 뜹니다.
어디서 뜬 에러인지 추적이 안 되어서 원인을 찾기가 어려운데, 이런 에러는 어떻게 해결해야 하나요?
답변 5
2
안녕하세요,
살짝 살펴봤는데 [Did you spawn new GameObjects from OnDestroy?]
~이라는 유니티의 물음에서 힌트를 얻으시면 되겠습니다.
전반적으로 코드를 본인의 스타일로 수정하셨는데,
OnDestroy 코드에서 FM 방식의 처리를 위해
Action -= 해제를 하는 부분을 넣어주셨습니다.
(ex. F02_PlayerController의 Line 65)
여기서 문제는 A01_Manager.Input은 Instance._input을 호출하고,
Instance는 다시 get { Init(); return _instance; } 로 되어 있는데,
Init() 내부에서는 다시 new GameObject("GameManager")등의 코드를 호출할 수가 있습니다.
결국 유니티 Scene이 소멸되면서 객체들을 정리하고 있어서 OnDestroy를 호출했는데,
이 부분의 코드에서 싱글톤 Instance에 접근하면서 Init()이 호출되었고
간접적으로 new GameObject을 하면서 소멸된 객체를 다시 생성한 셈이 되겠습니다.
그러니 아무리 열심히 Scene 정리를 해도 항상 찌꺼기가 남는 셈이 되는거죠,.
해결 방법은 간단한데 그냥 A01_Manager의 Instance get { }에서 Init();을 제거해주시고
Instance 초기화 코드를 다른 방식으로 호출되게 맞춰주면 되겠습니다.
1
그리고 보니 이런 문제를 어떻게 찾는지 문의 주셨는데,
(뭐 사실 감이긴 하지만) 에러 메시지를 보니까 PoolManager 쪽이 삭제되지 않은 것 같아,
PoolManager의 Init()에 브레이크포인트를 걸고 Scene을 종료해봤습니다.
그랬더니 PlayerController 쪽에서 Manager.Instance을 호출하면서
PoolManager를 다시 Init() 하는 부분이 있었습니다.
0
감사합니다! 에러 메시지를 봐도 Destroy때 뭔가 생성한 기억이 없는데 싶어 의아했는데...
Destroy 때 매니저 클래스를 부르면 GameManager가 호출되면서 재생성될거란 생각을 못했네요.
강의대로 안 해서 생긴 오류인데도 난잡한 코드 봐주셔서 감사합니다 ㅠㅠ
0
안녕하세요,
해당 문제는 보통 특정 객체가 삭제되어야 할 때,
(Singleton 등으로 인해) 잘못된 시점에서 다시 생성하는 상황에서 종종 발생하는데,
에러 메시지만 봐서는 위치를 파악하기 힘듭니다.
프로젝트를 통으로 압축해서 rookiss@naver.com로 보내주시면 살펴보겠습니다.
감사합니다!
UI 기능 관련 질문이 있습니다!
0
24
2
픽셀 좌표 스크린 좌표
0
26
0
전체적으로 코드 읽는게 굉장히 오래 걸리네요...
0
67
2
카메라 #2 수업 캐릭터 쓰러짐 해결
0
79
1
플레이어 움직임이 끝날때, 기울어짐 현상
0
81
1
Input 적용과 관련하여 질문 있습니다.
0
72
1
디버그 불가.. Unity에 연결 불가
0
76
1
달리기 애니메이션 에러
0
85
2
오랜만에 게임을 만들다가 사운드 관련해서 뭔가 궁금한게 있어서 봤습니다
0
63
1
GetKey 오류
0
109
2
에셋을 어디에 올려두신지 알 수 있나요?
0
104
1
재귀호출? 오류나는데 왜 이래요 ?
0
167
6
Animation blending 파라미터 계산
0
65
1
newPos와 to지점이 겹쳐져야 하는거 아닌가요?
0
94
3
오브젝트 복제하니까 자꾸 이런게 뜨면서 꺼집니다
0
85
2
질문있습니다
0
142
2
아 이거 소스코드 같은거 없나요?
0
140
3
질문 드립니다. string.IsNullOrEmpty(name)
0
85
2
@Managers 가 씬에 배치되어 있어도 문제가 되지 않나요?
0
133
2
유니티6 NavMesh 안되는분들
1
174
1
Unity6 Unity-Chan Material 마젠타 문제 해결법
7
524
1
GetComponent<Poolable> 질문드립니다.
0
99
2
UI 불러오지 못함
0
116
2
UI 자동화 #1 - Util.cs의 FindChild함수에서 component.name에 컴포넌트 이름이 뜹니다.
0
152
2





