문제
오브젝트 풀에 객체를 생성하고 해제하는 과정에서
객체 클래스와 오브젝트 풀 클래스 간에 생기는 연결이 불필요해 보임
해결 방안
객체 선언 시, 해제할 때 처리하는 콜백함수만 있다면 깔끔하게 처리가능
방법
하나의 클래스가 여러객체를 관리한다는 점에서 옵저버 패턴과 비슷하기에 결합해서 코드 작성
코드
public class bombManager : objectPool
{
public GameObject m_bomb;
// Start is called before the first frame update
void Start()
{
/* delete 콜백 */ utility.Del cb_delete = new utility.Del(DeleteBomb);
// 오브젝트 풀에 미리 생성
InitObjectMemory(m_bomb, 5, cb_delete);
}
public void MakeBomb(Vector3 pos)
{
// 1. 생성된 오브젝트 사용
GameObject obj = MakeObject();
// 2. 위치 지정
obj.transform.position = pos;
// 3. 물폭탄 동작 시작
obj.GetComponent<bomb>().StartBomb();
}
'Programming' 카테고리의 다른 글
[C#] 이란 (1) | 2020.03.09 |
---|---|
소켓 프로그래밍 (0) | 2020.03.03 |
[C++]가상 함수 (0) | 2020.03.03 |
C#의 Delegate - CallBack 만들기 (0) | 2020.02.25 |
SVN과 GIT (0) | 2020.02.06 |