해결된 질문
작성
·
213
0
강의에선 Poolable 컴포넌트를 유니티 실행 전에 유니티에서 드래그앤드롭으로 미리 넣어줍니다.
제 질문은 강의처럼 미리 넣어주는게 아닌 실행된 뒤에 코드에서 GetOrAddComponent함수를 통해 넣어주려고 합니다.
그런데 코드에서 GetOrAddComponent함수를 통해 넣어주면 복제가 된 뒤에 넣어져 풀링이 되지 않습니다.
ResourceManager의 Instantiate 함수를 보면 Object.Instantiate를 실행하기 전에 풀링된 오브젝트가 있는지 확인을 해서 그런거 같습니다.
Pop()함수가 호출이 안되니 _pool Dictionary에 새로 생성되지 않습니다.
제 생각에는 Push 함수에서도 CreatePool을 해주는 방식이나 ResourceManager의 Instantiate 함수 안에서 Object.Instantiate를 실행하기 전에 오브젝트의 이름이나 태그를 통해 미리 넣어주고 복사하는 방식이 생각이 나는데 전자는 강의에서 말씀하신 예외사항에 대처할 수 없고 후자는 그리 효율적이라고 생각되지 않습니다.
혹시 다른 좋은 방법이 있을까요?
강의에서 말씀한 내용이라면 죄송합니다.
답변 1
0
이런 부분은 정답이 없고 원하시는대로 응용하시면 됩니다.
최근 진행하는 프로젝트에서는 이름으로 찾기도 하고 뭐 수단과 방법을 가리지 않고 돌아가게 하시면 됩니다.