관리 메뉴

도드넷

유니티 변수 묶기 & 정리하기 오딘 인스펙터 무료? - Markup Attributes 본문

창고/게임 개발 [Hidden]

유니티 변수 묶기 & 정리하기 오딘 인스펙터 무료? - Markup Attributes

도드! 2023. 1. 19. 13:29
반응형

 

유니티 바닐라 인스펙터는...

너무 기본적이다.

 

엄청난 양의 변수와 데이터를 관리하기에는 너무 기본적으로 인스펙터가 흘러넘치는것을 넘어 에디터에서 엄청난 렉,

끊김까지 일으킬 수 있다. (기본적인 [HideInInspector] 와 [Header("-------")] 로는 도저히 관리/정리/감당할 수 없다.)

 

이때 가장 필요한것은 유니티 인스펙터에서 변수를 묶고 정리할 수 있는 익스텐션, 추가 기능이다.

 

 아쉽게도 유니티 자체적으로 이런 기능을 제공하지 않고 있다.

게임의 복잡도와 규모가 증가하는 것에 대해서 엔진 자체가 그 어떤 서비스도 제공하지 않고있다는 것이다.

꽤나 실망스러운데 유니티 애셋 스토어에 이것을 해결할 수 있는 대안인, 오딘 인스펙터가 존재한다.

 

오딘 인스펙터는 개인 사용권이 약 5만원 ~ 6만원이다. (너무 인기가 있어서 유니티 개인 유료 버전이라고 보면됨.)

꽤나 다양한 기능을 제공하는것 같은데 내가 원하는것은 정말 간단히

 

변수를 묶고 변수를 숨기고 거나 접는것이다.

 

쓸대없이 쓰지도 않는 기능에 돈 쓰는게 아까워서 조금 찾아보니 MIT 저작권의 오픈소스 패키지가 깃헙에 존재했다.

무료 오딘 인스펙터?!

 

https://github.com/gasgiant/Markup-Attributes

 

 

바로 Markup Attributes 라는 오픈 소스 패키지다.

다운로드 방식은 조금 까다로운 git 링크를 사용한다.

(다운로드 방법은 이전글 참조)

 

Markup Attributes 사용하는 방법.

 

1. 패키지 매니저에서 git 링크를 이용해서 패키지를 다운로드한다.

 

2. 패키지 매니저에서 샘플을 다운로드 한다.

 

3. 샘플 씬을 열고 가능성과 기능을 연구해본다. (권장)

 

4. 유니티 변수 묶는 방법.

1) 일단 기본적인 네임 스페이스 참조.

 

2) 원하는 변수들 위에 ToggleGroup 혹은 Foldout 지정.

(만약 그냥 묶기/감추기만 사용하고 버튼같은것을 사용하고 싶지 않으면 이후부터는 생략하고

간단히 monobehavior 대신 AttributeMarkUpBehavior 를 상속하게 만들면된다.)

 

3) 새로운 에디터 스크립트 작성. (Editor 폴더에 넣어야됨.)

 

추가 참조

using UnityEditor;
using MarkupAttributes.Editor;

 

typeof에 타겟 스크립트 클래스 이름을 넣는다.

그리고 OnInspectorGUI를 통해 마크업 그리게 만들기.

 

5. 버튼 추가하기

 

위에서 작성한 에디터 스크립트에 다음을 추가한다.

위의 버튼 추가 방법은 특정 이름을 가지는 변수를 버튼으로 대체하게 된다. (위에추가 아래에추가는 sample 참조.)

주의 : 아래의 커스텀 클래스와 함께 사용하게 될경우 작동하지 않는 경우가 있음.

버튼용 변수는 언제나 아래 커스텀 클래스 보다 먼저 선언되어야함.

 

6. 커스텀 클래스에서 묶기 및 Markup Attribute 사용하기.

그냥 커스텀 클래스 변수위에 [MarkedUpType]을 추가한다.

 

 

반응형
Comments