인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

literate_t님의 프로필 이미지
literate_t

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진

Pool Manager #3

Q 눌러 씬 변환할 때 UnityChan 오브젝트 말인데요.

작성

·

71

·

수정됨

0

로그인 씬에서 게임 씬으로 넘어갈 때 @Pool_Root가 가지고 있던 UnityChan 오브젝트들이 GameScene에 활성 상태로 존재하게 되는 부분이 되게 의아한데 질문이 없는 게 신기하군요.

Q를 누르면 씬이 전환되면서 Managers.Clear();를 호출하니까, PoolManager.Clear()도 호출됩니다.

public void Clear()
{  
    foreach (Transform child in _root.transform)
    {
        // child 밑에 child tree가 있어도 가장 상위 child를 해제하면
        // 하위 child도 전부 해제된다
        Object.Destroy(child.gameObject);
    }

    _pool.Clear();
}

 

위와 같이 DontDestroyOnLoad에 속한 오브젝트들을 전부 해제합니다. 참고로 풀링하는 UnityChan 객체들은 생성 이후에 바로 Managers.Resource.Destroy(go)를 호출해 PoolManager로 돌려보내는, 강의 마지막 부분을 따르고 있습니다.

이렇게 DontDestroyOnLoad로 돌려 보낸(Pool_Root가 DontDestroyOnLoad에 있으므로) UnityChan 객체들을 게임 씬으로 전환하면서 Clear() 하면서 Object.Destroy()를 호출하는데, UnityChan 객체가 죽지 않고 살아나서 Game 씬에 올라가 있는 이유가 무엇인지 궁금합니다.

image.png

 

질문 취소합니다!!

게임 씬에 UnityChan을 생성하는 부분이 있었네요!
졸려서 정신이 없는가 봅니다. 자러 가겠습니다.

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

literate_t님, 질문을 찾아서 해결하셨다니 다행입니다! 게임 개발에서는 복잡한 상황이 많아서 놓치는 점이 있을 수 있는데, 해결하셨다니 축하드립니다. 편안한 휴식 취하시고 다음에 또 질문이 생기면 언제든지 문의 주세요! 😊

이미지 출처 및 추가 정보

literate_t님의 프로필 이미지
literate_t

작성한 질문수

질문하기