Unity 검색

Odin을 활용한 생산성 팁: 툴을 이용하여 툴 만들기

2021년 9월 16일 게임 | 5 분 소요
Odin
Odin

Unity의 검증된 솔루션 파트너(VSP) Odin은 프로젝트의 생산성을 개선하는 제품군을 제공합니다. 워크플로를 간소화하는 100가지 이상의 속성을 갖춘 Odin Inspector를 사용하면 커스텀 에디터 코드를 작성할 필요 없이 강력하고 사용하기 쉬운 커스텀 에디터를 마음껏 활용할 수 있습니다. 또한, 강력하고 확장 가능한 Odin Serializer와 작업을 스캔하여 근본적인 문제를 파악하는 Odin Validator를 함께 사용하면 프로젝트를 더 효율적으로 관리할 수 있습니다. 

Odin을 최대한 효율적으로 활용하고 싶으신가요? 이번 포스팅에서는 시간을 절약하고 효율성을 극대화하며 전체 프로세스를 개선하는 다섯 가지 팁을 살펴 보겠습니다.

Menu 6

그룹 속성을 활용해 흩어진 인스펙터 정리하기

인스펙터 변수가 많은 대규모 스크립트는 보기에도 불편하고 추적하기에도 어려움이 따를 수 있습니다. Odin에서는 그룹을 사용하여 이 문제를 해결합니다. 그룹을 활용하면 관련 프로퍼티를 결합하고 다양한 방식(예: 레이블링 박스, 드롭다운, 멀티페이지 탭)으로 묶을 수 있으므로 인스펙터를 깔끔하고 관리하기 쉽게 유지할 수 있습니다.

그렇다면 그룹은 실제로 어떻게 작동할까요? 동일한 이름으로 속성을 연결하면 관련된 멤버들을 결합할 수 있습니다. 아래 GIF에서는 Odin을 활성화 또는 비활성화하여 그룹 속성이 제공하는 효과를 일부 보여줍니다.

Menu 5

속성 내에서 직접 C# 표현식 작성하기

다수의 속성은 편리하게 멤버를 참조할 수 있는 문자열 파라미터 또는 평가할 C# 표현식을 포함합니다. 이를 통해 인스펙터에 기본적인 로직을 빠르게 주입할 수 있습니다.

속성 표현식은 ‘@’ 기호로 시작되는 문자열로 표시되며 매우 유연합니다. 속성 표현식을 사용하면 무수한 멤버를 추가로 만들지 않고도 커스텀 로직과 동작을 Odin의 속성에 추가할 수 있습니다. 아래 예시에서 식이 얼마나 간단한지 확인해 보세요.

C# expressions

버그 방지를 위해 유효성 검사 속성 사용하기

특정 컴포넌트의 작동 방식을 모르면 실수가 발생하는 경우가 종종 있는데, 예를 들어 잘못된 값을 설정하거나 필수 값의 할당을 누락할 수 있습니다. 대부분 개발자는 사용자 친화적인 커스텀 에디터를 수동으로 만들어 문제를 해결하려고 합니다.

Odin은 이런 문제가 발생할 경우를 대비하여 개발자를 지원하기 위해 수많은 속성을 갖추고 있습니다. 다음 GIF에서는 ChildGameObjectsOnly, ValidateInput, Required 등 일반적인 속성 몇 가지를 볼 수 있습니다.

Validation attributes to avoid introducing bugs

Odin Inspector를 사용하는 프로젝트에 글로벌 커스텀 유효성 검사 규칙을 도입할 수도 있습니다.

실제로 이 모든 기능을 한데 모으는 역할은 Odin Validator 애드온이 담당합니다. 이 애드온은 프로젝트를 스캔하고 해결되지 않은 오류가 있으면 경고를 표시합니다. 프로젝트 내부 수천 곳에 예기치 않게 오류를 발생시킬 수 있는 새로운 요구사항이 도입되었다고 가정해 보세요. Odin Validator를 사용하면 더 쉽게 이 문제를 감지하고 바로잡을 수 있습니다.

속성을 사용해 커스텀 Unity 에디터 창 빌드하기

Odin 클래스의 유형으로 OdinEditorWindow 및 OdinMenuEditorWindow 두 가지가 있습니다. 이번 섹션에서는 OdinEditorWindow를 중심으로 살펴보겠습니다. 

에디터 창을 사용하여 프로젝트 개요를 조회하거나 대규모 데이터 세트를 처리하고, 커스텀 툴을 제작하면 프로젝트의 제작 워크플로를 더 효과적으로 간소화할 수 있습니다.

예를 들어 OdinEditorWindow를 사용하면 단일 클래스를 상속받아 Odin 드로잉 시스템 전체에 액세스할 수 있습니다. EditorWindow가 아닌 OdinEditorWindow를 상속받으면 커스텀 에디터 GUI 코드를 작성하지 않고도 필드, 프로퍼티, 메서드를 효과적으로 렌더링할 수 있습니다. 아래 GIF를 통해 이 과정이 얼마나 간단하게 이루어질 수 있는지 볼 수 있습니다.

Menu 3

SerializedScriptableObject를 상속받아 다형성 데이터 구조 직렬화하기

Unity가 단순하면서도 효율적인 직렬화를 우선시한다는 사실은 잘 알려져 있습니다. 하지만 딕셔너리나 상속, 델리게이트와 같이 복잡한 데이터 구조와 특징을 활용하는 것이 권장되거나 심지어 필수적인 특별한 경우도 있습니다. 

Odin Serializer를 사용하면 인스펙터에서 저장과 렌더링이 즉시 지원되므로 이와 같은 복잡한 요소를 편하게 사용할 수 있습니다. 실제로 [SerializeReference] 덕분에 인스펙터 내에서 다형성 (상속) 직렬화 기능의 최신 부분 집합을 활용할 수 있습니다. 다음 예시를 통해 직렬화 및 인스펙터 기능 중 일부를 볼 수 있습니다.

Menu 1

Odin은 다양한 도구를 제공하여 프로젝트의 생산성을 높이고 워크플로를 개선하도록 지원합니다. 이번 포스팅에서 소개한 기능을 사용해 보고, 올해 말로 예정된 Validator 주요 업데이트를 비롯한 새로운 기능도 관심 있게 봐주시기 바랍니다.

Odin을 시작하려면 Unity 에셋 스토어에서 Personal 라이선스를 다운로드하세요. Enterprise 솔루션이 필요하다면 여기에서 자세히 알아보세요. 더 많은 팁은 Odin YouTube 채널을 확인하세요.

2021년 9월 16일 게임 | 5 분 소요
관련 게시물