• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    해결됨

Poolable 컴포넌트를 코드를 통해 넣어주려면

24.03.14 18:28 작성 조회수 81

0

강의에선 Poolable 컴포넌트를 유니티 실행 전에 유니티에서 드래그앤드롭으로 미리 넣어줍니다.

제 질문은 강의처럼 미리 넣어주는게 아닌 실행된 뒤에 코드에서 GetOrAddComponent함수를 통해 넣어주려고 합니다.

그런데 코드에서 GetOrAddComponent함수를 통해 넣어주면 복제가 된 뒤에 넣어져 풀링이 되지 않습니다.

ResourceManager의 Instantiate 함수를 보면 Object.Instantiate를 실행하기 전에 풀링된 오브젝트가 있는지 확인을 해서 그런거 같습니다.

Pop()함수가 호출이 안되니 _pool Dictionary에 새로 생성되지 않습니다.

제 생각에는 Push 함수에서도 CreatePool을 해주는 방식이나 ResourceManager의 Instantiate 함수 안에서 Object.Instantiate를 실행하기 전에 오브젝트의 이름이나 태그를 통해 미리 넣어주고 복사하는 방식이 생각이 나는데 전자는 강의에서 말씀하신 예외사항에 대처할 수 없고 후자는 그리 효율적이라고 생각되지 않습니다.

혹시 다른 좋은 방법이 있을까요?

강의에서 말씀한 내용이라면 죄송합니다.

답변 1

답변을 작성해보세요.

0

이런 부분은 정답이 없고 원하시는대로 응용하시면 됩니다.
최근 진행하는 프로젝트에서는 이름으로 찾기도 하고 뭐 수단과 방법을 가리지 않고 돌아가게 하시면 됩니다.