오브젝트 풀링

    오브젝트 풀링 (Ojbect Pooling)

    오브젝트 풀링 (Ojbect Pooling)

    위 게임은 뱀파이어 서바이벌이라는 게임인데, 오브젝트 풀링에 분명히 신경을 많이 썼을 것으로 예상돼서 가져왔다. 오브젝트 풀링은 대표적이고 전통적인 최적화 기술 중 하나고 다양한 방면에서 활용할 수 있다. 꽤나 중요하고 자주 쓰는 기술이다 보니 검색하면 관련 내용들이 무수히 나온다. 하지만, 그렇다고 유니티가 따로 오브젝트 풀링 관련된 API를 제공하지는 않는다. 반면 코코스 크리에이터에서는 오브젝트 풀링 API를 제공하고 있다. 그리고 코코스는 오브젝트를 노드로 부르기 때문에 그 이름이 노드 풀링(Node Pooling)이다. 오브젝트 풀링은 여러가지 예외처리, 최적화 처리를 해줘야 해서 built-in 된 API를 그대로 쓰는 것보다는 직접 구현하는 것이 적절하다고 생각하지만, 그래도 한 번 정리해본..

    [예제 게임] GameScene #1 (오브젝트 풀링)

    [예제 게임] GameScene #1 (오브젝트 풀링)

    1. 레이아웃(Layout) 생성 GameScene에도 똑같이 기본 캔버스 아래에 배경 이미지를 넣어준다. 그리고 물고기들이 참조할 영역(어디를 기준으로 +5 높이에서 떨어지고, 어디를 기준으로 아래로 내려가면 사라지는지)이 필요한데, 이를 위해 Layout 노드를 만들어준다. 레이아웃은 기본으로 스프라이트 컴포넌트를 가지고 있는데 배경은 필요 없으므로 스프라이트 컴포넌트는 비활성화하거나 지워준다. 사이즈도 캔버스와 동일한 크기로 설정해준다. 원래 레이아웃은 자식 노드들을 규칙성을 가지고 정렬할 때 (ex. 인벤토리의 아이템들 정렬) 사용하는 노드다. Type은 이 레이아웃 아래 자식들의 정렬 방식을 뜻한다. Resize Mode는 부모 캔버스의 사이즈가 바뀔 때, 이 레이아웃도 사이즈를 변경하는데 컨테..