오브젝트 생성 최적화오브젝트를 여러 개 생성할 때 프레임 드롭이 일어나는 것을 발견하였다.30초 정도 게임을 진행시켰을 때 연출을 위해 쌓아둔 바둑돌들이 많이 쌓이며 프레임이 20대까지 떨어진다.이를 해결하는 방법을 연구해보자. 원인 분석우선, 씬에 존재하는 오브젝트는 거의 UI이고 성능에 크게 문제 될 것들이 없다.앞에서 말했듯이 바둑돌이 많이 쌓이는 것이 근본적인 문제인 것 같다. 첫 번째 시도단순하게 물체가 너무 많은 것 같아 움직이지 않는 바둑돌을 삭제하려는 시도를 했다.이때, 단순히 삭제하지 않고 바둑돌을 생성하는 객체에서 오브젝트 풀을 이용하여 관리하며 불필요한 생성을 막으려 했다.바둑돌의 RigidBody의 Sleep을 이용하여 Threshold를 적절히 조절하여 객체를 반환하..
Game/Unity
VContainerVContainer는 Unity를 위한 경량화된 DI(Dependency Injection) 컨테이너이다.DI는 객체 간의 의존성을 외부에서 주입하는 디자인 패턴으로, 코드의 결합도를 낮추고 유지보수성을 향상시키는데 도움을 준다.주요 특징가볍고 빠른 성능Unity의 컴포넌트 시스템과의 원활한 통합직관적인 API 제공코드의 모듈화와 테스트 용이성 향상https://vcontainer.hadashikick.jp/ About | VContainerVContainer - the fastest DI (Dependency Injection) for Unity Game Enginevcontainer.hadashikick.jp 기본 구성요소LifetimeScopeLifetimeScope는 VC..
Scirptable ObjectScriptableObject(SO)는 Unity에서 제공하는 데이터 컨테이너 클래스이다.MonoBehaviour와 달리 GameObject에 부착되지 않는 독립적인 데이터 에셋이다.즉, Prefab과 같이 에디터상에 유일하게 존재하는 것이다.또한, Scene과 독립적으로 존재하며 런타임에 변경된 내용을 정적으로 저장하여 가져갈 수 있다.Scene 전환 시에도 데이터가 유지되며 한 번 로드된 SO는 메모리에 캐싱되어 재사용할 수 있다.빌드 시 에셋으로 포함되어 배포되게 된다. Unity 에디터에서 직접 데이터를 수정하고 저장할 수 있기 때문에 밸런싱같은 작업에서 사용하기 매우 좋다. Data Container SOSO는 기본적으로 데이터 컨테이너이다.즉, 순수하게..