플라네타리움 엔지니어링 스낵

Unity 2018.2에서 2018.3으로 이주하기

(한국어English)

안녕하세요. 플라네타리움에서 게임을 개발하고 있는 현승민입니다. 게임 개발팀에서는 Unity 2018.3에서 추가되거나 개선된 몇 가지 기능들을 사용하기 위해서 해당 버전으로 이주할 준비를 하고 있었습니다.

네스티드 프리팹 (Nested Prefab)

네스티드 프리팹을 통해 워크플로가 얼마나 개선되는가는 이미 여러곳에서 언급되고 있습니다.

동시 편집
기존에는 한 프리팹을 고치기 전에 먼저 팀에 얘기를 해 뒀어야 했습니다. 그렇지 않으면 각자의 로컬 저장소에서 저마다 고친 프리팹이 업스트림 저장소에 올릴 때 충돌하기 때문입니다. 하지만 새로운 프리팹은 변경점을 별도의 프리팹으로 구조화해서 이러한 충돌을 방지할 수 있는 방법이 생겼습니다. 여전히 동일한 프리팹 간에는 충돌이 발생할 여지가 있지만, 동일한 프리팹의 범주가 작아져서 그 빈도가 크게 줄었습니다.
다중 구조
기존에는 하나의 프리팹은 그 하위의 모든 객체를 직접 포함하는 단일 구조인 반면, 새로운 프리팹은 하위의 특정 객체를 또 다른 프리팹으로 분리하고, 그렇게 분리한 프리팹 하위의 객체는 해당 프리팹이 관리하도록 다중 구조로 만들 수 있습니다. 이는 프리팹의 모듈화가 가능해지고 재사용성이 좋아져서 중복도 줄어들게 됩니다.
변형
하나의 프리팹을 그대로 상속하지만, 내부 속성을 오버라이드 하거나 컴포넌트 혹은 게임 객체를 추가해서 변형 프리팹을 만들 수 있습니다. 이때 원본 프리팹의 변경이 변형 프리팹에 반영되는 성질이 있어서 프리팹을 관리하는 비용이 줄어듭니다.
프리팹 모드
기존에는 프리팹을 제작하거나 수정하기 위해서 신(scene)에 임시 인스턴스를 만들어서 그것을 수정 후 프리팹에 반영한 뒤 임시 인스턴스를 도로 지워주는 과정이 필요했습니다. 각각의 과정에서 손이 많이 가고 실수 할 여지가 있었는데, 새롭게 추가된 프리팹 모드는 이러한 워크플로를 간단하게 만들어 속도와 안정성에서 개선되었습니다. 아직 프리팹 모드에서 간헐적으로 그래픽 요소들이 보이지 않는 버그가 있는데, 이런 때에는 이전 방식으로 수정해야 하는 상황입니다.

메모리 프로파일러

더욱 강력해진 메모리 프로파일러를 사용해서 문제 해결에 더욱 세세하게 접근할 수 있습니다.

2D 애니메이션 v2

기존의 애니메이션 시스템은 워크플로가 너무 불편해서 새로운 애니메이션과 스파인이라는 외부 툴 중 하나로 이주할 필요가 있었습니다. 결과적으로는 스파인을 사용하게 됐지만, 새로운 애니메이션 또한 큰 개선을 확인할 수 있었습니다.

파티클 시스템

이펙트가 중요한 프로젝트를 진행 중이기 때문에 개선된 파티클 시스템을 통해 전반적인 이펙트 개선을 의도했습니다. 리소스에 아무런 수정도 하지 않았지만, 이펙트가 시각적으로 나아졌다는 아트팀의 피드백이 있을 정도로 확실한 개선점을 확인할 수 있었습니다.


하지만, 이주를 진행하기 하루 전 Unity 2019.1이 정식 출시되는 당황스러운 상황이 발생합니다. 다음 글에서는 Unity 2019.1에서 추가된 기능을 살펴보고 저희가 어떻게 대응했는지를 이야기 하겠습니다.