0. 메모리 최적화는 모바일 게임을 만들 때 특히 중요하다. - PC는 실제 메모리 사양보다 더 많이 사용할 수 있다. - 모바일은 게임에 사용할 수 있는 메모리가 실제 사양보다 적다. 1. Asset 중복 유니티는 중복 파일 체크를 하지 않기 때문에 동일한 Asset( font, audio, texture, mesh, 등 )을 여러 폴더에 뒀을 때 메모리를 불필요하게 차지할 수 있다. 2. Asset Bundle Asset Bundle을 사용할 때 Asset 디펜던시로 인해서 하나의 Asset이 중복되어 메모리에 올라갈 수 있다. EX) 하나의 Texture를 공유하는 여러 프리팹을 번들로 만들고 Texture는 번들로 만들지 않으면 Texture가 중복으로 들어가게 된다.( addressables 사..
ScriptableObject는 대량의 데이터를 저장할 수 있는 데이터 컨테이너로 데이터를 저장하고 있기 때문에 변경되지 않는 데이터를 갖는 프리팹의 경우 ScriptableObject를 사용하면 인스턴스화할 때마다 데이터를 중복하여 만들지 않기 때문에 메모리 사용을 줄일 수 있다. MonoBehaviour와 같이 ScriptableObject는 Unity의 Object에서 파생되지만 MonoBehaviour와 달리 GameObject에 연결할 수 없고 에셋으로 저장된다. 편집기에서 사용할 때 데이터 저장은 아무 때나 가능하다. 다만 게임을 플레이하는 중에는 데이터를 저장할 수 없고 저장된 데이터를 사용하는 것만 할 수 있다. 편집기에서 에셋 형태로 ScriptableObject에 저장한 데이터는 세션 ..
1. 중첩 Canvas 1.1 Canvas 안의 요소가 변경되면 Canvas 안의 모든 요소가 갱신된다. 1.2 Canvas가 중첩됐을 때 부모와 자식 Canvas 사이에는 서로 영향을 주지 않는다. (부모 Canvas의 크기가 변경되는 경우는 예외) 위의 두 가지 때문에 변경이 잦은 요소를 중첩된 Canvas 중 자식 Canvas에 두어 별도로 관리하면 성능이 향상될 가능성이 높다. 2. 계층의 깊이를 낮게 유지 UI의 RectTransform은 계층구조로 이루어져 있다. 때문에 계층의 깊이가 깊어질수록 Canvas 갱신 등의 비용이 커진다. 3. Re-parenting 주의 부모를 바꾸는 행위를 할 때 Canvas가 갱신될 가능성이 높기 때문에 자제하는 것이 좋다. 4. Pixel Perfect 사용..