본문 바로가기
Unity/UnityEditor

[Localization] OdinInspector 와 Localization Editor 충돌 해결

by Kyoung2 2022. 10. 14.
반응형

개발을 편하게 만드는 요소중의 하나가 바로 Inspector 창이다. 쉽게 값을 변경할 수 있고 수치를 변경하며 확인을 할 수 있다.   이러한 요소를 더 쉽게 만들어주는 에셋이 있는데 바로 Odin Inspector 이다. 이 에셋은 사용자가 보다 편하게 인스펙터 창을 커스텀할 수 있게 템플릿을 제공하는 역할을 하고, Dictionary와 같이 인스펙터창에서 볼 수 없는 내용을 보게하고 저장할 수 있게 함으로써,  편리성을 강조했다.  하지만 자동적으로 Editor 소스를 변경하고 수정하다 보니 본래의 Editor 요소들과 충돌할 때가 종종 있다. 이를 해결하기 위한 방법을  정리한다.

 

https://assetstore.unity.com/packages/tools/utilities/odin-inspector-and-serializer-89041

 

Odin Inspector and Serializer | 유틸리티 도구 | Unity Asset Store

Use the Odin Inspector and Serializer from Sirenix on your next project. Find this utility tool & more on the Unity Asset Store.

assetstore.unity.com

오딘 인스펙터는 개인적으로 구매하여 사용하고 있는 에셋이다.  인스펙터 창을 정리하고 값을 확인함에 아주 편리한 기능들이 다수 있어 사용중이다. 

 

https://docs.unity3d.com/Packages/com.unity.localization@1.0/manual/index.html

 

About Localization | Localization | 1.0.5

About Localization Use the Localization package to configure localization settings for your application. Add support for multiple languages and regional variants, including: String localization: Set different strings to display based on locale. Use the Sma

docs.unity3d.com

해당 레퍼런스는 유니티에서 패키지를 통해 제공하는 Localization 이라는  에셋이다. 다국어 지원을 편리하게 하는 기능을 제공한다.  

 

사용을 하다보니 이부분에서 이렇게 될거라곤 생각을 못한 부분이다. 인스펙터가 문제가 있으면 인스펙터를 건드리는 애를 확인해야하는데.. 엄한곳을 찾고있었다. 이 케이스가 아니고도 여러 케이스가 있을 수 있다.  오딘 인스펙터와 모든 에디터 소스는 충돌할 수 있으니 이렇게 해결하면 된다.

 

 

Localization 에서는 오디오 소스에 나라별 또는 지역별로 같은 키값으로 다른 음원을 재생시켜주는 Localize event를 제공한다. 저 Localize 버튼을 클릭했을 때,  Localize Audio Clip Event 를 적용하고 확인할 수 있는 테이블이 Add Component 된다.

 

Table Collection에서 미리 설정한 Addrassables 자산 데이터들을 호출 할 수 있게 지정해놓을 수 있으며, 런타임중에 로컬 설정을 변경할 시 변경된 음원으로 재생된다. String 또한 지원되니 좋은 툴이라고 할 수 있다.

이것이 정상이다.  하지만 오딘 인스펙터를 설정하면 전혀 다른 얘기가 된다.

오딘 인스펙터를 적용하면 Table Collection 에서 테이블을 지정할 수 없게끔 설정이 변경되고 런타임중에도 확인할 수 없어 애를 먹었다. 이쯤 되면 너가 멍청해서 그런거 아니냐? 라고 말할 수 있다. 그렇다. 멍청함을 담당하고있다. 

난 미리 오딘인스펙터를 임포트 시켜놓고 Localization 패키지를 임포트 시켰다. 처음 본 화면이 이거다. 버전이 변경되면서 이렇게 됐나? 왜 이렇게 되어있을까? 설정해놓은 테이블의 String Name을 호출하면 되지 않을까? 라는 여러가지 시도를 해놓고 근본적인 결론에 다다른 케이스다.  아무튼 해결법은 간단하다.

유니티 툴 상단에 Tools - > Inspector -> Preferences 를 클릭한다. 오딘 인스펙터 버전별로 다르다.

이런 형태일수도 있다. 어찌되든 Preferences로 진입하자.

그러면 위의 사진과 같은 창이 뜬다. 여기서 Editor Types 를 클릭한다.

창 상단에 검색 필드에서 Localization을 클릭한다.

체크 해제 전
체크 해제 후

UnityEngine에서 체크된 Localization 항목을 체크해제하면 본래의 Editor로 변경된다. 

이걸 미리 확인하기 위해서는  Modules 탭으로 들어가서 에러 여부를 확인하고  Editor Types 에서 체크 여부를 변경하면 된다.

 

728x90
반응형

# 로딩 화면 동작 코드(Code) 설정하기
loading