· 2 min read

Unity - Assembly Definition

Unity Assembly Definition(.asmdef)으로 프로젝트를 모듈 단위로 분리하는 방법. 컴파일 시간 단축, 순환 참조 방지, 테스트 격리 실전 가이드.

요약

Assembly를 나누어, 모듈별 의존성을 명확하게 관리하고, 컴파일 시간을 줄인다.

내용

기본 Unity 컴파일 시스템은 2개의 Assembly를 만들어낸다.

image1
image1

프로젝트 안 소스파일들이 기본적으로 Assembly-CSharp에 포함되고, “Editor” 란 이름의 Directory안의 소스파일들은 Assembly-Csharp-Editor에 포함된다.

결국, 특정 소스코드를 1줄만 수정을 해도 그 소스코드가 포함된 어셈블리를 다시 컴파일 해야 한다. 이 과정에서 프로젝트가 커지고, 모듈이 많이 붙을 수록 컴파일 시간이 길어진다.

이 문제를 해결할 수 있는 기능이 Unity 2018에 추가된 Assembly Definition 기능이다.

스크립트 컴파일 및 어셈블리 정의 파일(Script compilation and assembly definition files) - Unity 매뉴얼

image2 image3

기타

컴파일 타임과 상관없이 모듈화하여 종속성 관리하는 것이 구조적으로 올바르기 때문에
이 기능을 적용하고 잘 사용해야 할 필요성이 있다.

Related Posts

View All Posts »
Unity로 VR 악기 앱 만들기 — 루프 스테이션 1인 밴드 (Solo Band Studio)

Unity로 VR 악기 앱 만들기 — 루프 스테이션 1인 밴드 (Solo Band Studio)

Meta Quest용 VR 음악 창작 툴을 Unity로 개발한 과정. 피아노·드럼·베이스를 연주하고 루프 스테이션으로 혼자 합주를 완성한다. AI와 함께 한 달 만에 만든 대학 수업 프로젝트.

#Unity #VR #Audio #CSharp
실시간 멀티플레이 게임 아키텍처 회고 — 루니아 원정대 5년 후

실시간 멀티플레이 게임 아키텍처 회고 — 루니아 원정대 5년 후

모바일 실시간 멀티플레이 게임 루니아 원정대의 서버 5종 + 클라이언트 2종 전체 아키텍처를 설계했던 경험. 커스텀 ECS, 커맨드 동기화, 분산 서버, 재접속 시스템까지 — 5년이 지난 지금 그때의 기술 판단들을 돌아본다.

#Architecture #Retrospective #CSharp #Multiplay