• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

강의 후반부에 나오는 오류가 저는 안떠요?!

21.03.13 01:12 작성 조회수 112

0

강의 후반부에 Destory() 관련해서 설명하실 때, 강의상에서는 애니메이터가 포함된 오브젝트가 없어졌다라고 오류가 뜨던데 저는 해당 오류를 겪지 않습니다

poolable 관련해서 보면, 풀에는 4개의 유니티짱이 있고 하나는 scene에 있습니다. scene에 있는 녀석이 죽으면 오류가 안뜨고, 풀에 있는 걸 켜고 그게 죽으면 오류가 뜹니다

그 뒤에 나오는 부분을 따라해봐도 역시나 처음이랑 결과가 같습니다

한가지 더, 제가 알맞게 이해한건지 알고 싶습니다

마지막에 강의에서 가장 중요한 걸 짚어주실때, 이전 강의에서 참조형이 메모리에서 사라질 때를 설명하신 부분에 대한 걸 다시 한번 언급 하시더라고요. 여기서 제가 이해한건 poolable 적용이 된 오브젝트는 destroy이 되어도 이게 꺼진거지, 완전히 없어진건 아니라서 null 체크 하는것만으로는 충분하지가 않다. 그래서 extension에다가 IsValid()를 만든다. 이렇습니다. 

그런데 계속 헷갈리는건 UnityChan이 poolable이건 아니건 어쨋든                 Managers.Game.Despawn(targetStat.gameObject);로 없앤거잖아요? 그럼 그냥 없어져야 되는거 아닌가요? pool로 돌아가는게 아니라.

어느부분에서 이게 발생하는지 잘 모르겠습니다

답변 1

답변을 작성해보세요.

0

1.

다르게 동작하는 이유는 말씀주신 내용만으로는 저도 알 수 없습니다.
최종 코드에서의 PoolManage 코드와 완전 동일한게 맞는지 확인해보시고
디버깅을 통해 오류를 파악하는 연습이 필요합니다.
그래도 모르시겠으면 전체 프로젝트를 압축해서 rookiss@naver.com로 보내주시면 되겠습니다.

2.

Game.Despawn은 Managers.Resource.Destroy를 해주고
ResourceManager의 Destroy 코드를 보면
Poolable Component가 있으면 Object.Destroy를 하지 않고 풀에 돌려 보내고 있습니다.