반응형
유니티에서 스크립트 코드로 디파인 정의 추가 하기
- Unity Scripting Define Symbols - Preprocessor Symbols
유니티에서 #define을 사용 하여 특정 상황에 맞게 혹은 다르게 동작 하게 하려고 할 때 사용 할 수 있다.
단, 해당 스크립트 파일 최상단에서 정의 해야 하고 해당 파일에서만 적용이 된다.
다른 스크립트 파일에서는 동일 디파인이 적용이 안 되는 것.
유니티에서 전역으로 심볼을 디파인 (전처리기 디파인) 하는 방법은
Player Settings -> Other Settings -> Configuration -> Scripting Define Symbols
에 세미콜론(;)으로 구분 하여 디파인을 추가 하면 된다.
이 값을 수기로 그때 그때 상황별로 적용 하는 것이 귀찮고 잊어 버릴 때가 있는데
이 때 스크립트 코드로 자동 추가 되게 하면 훨신 편하고 또한 잊어 버릴 일도 없다.
- using System.Collections;
- using System.Collections.Generic;
- using System.Linq;
- using UnityEngine;
- using UnityEditor;
- /// <summary>
- /// Adds the given define symbols to PlayerSettings define symbols.
- /// Just add your own define symbols to the Symbols property at the below.
- /// </summary>
- [InitializeOnLoad]
- public class AddDefineSymbols : Editor
- {
- /// <summary>
- /// Symbols that will be added to the editor
- /// </summary>
- public static readonly string [] Symbols = new string[] {
- "MYCOMPANY",
- "MYCOMPANY_MYPACKAGE"
- };
- /// <summary>
- /// Add define symbols as soon as Unity gets done compiling.
- /// </summary>
- static AddDefineSymbols ()
- {
- string definesString = PlayerSettings.GetScriptingDefineSymbolsForGroup ( EditorUserBuildSettings.selectedBuildTargetGroup );
- List<string> allDefines = definesString.Split ( ';' ).ToList ();
- allDefines.AddRange ( Symbols.Except ( allDefines ) );
- PlayerSettings.SetScriptingDefineSymbolsForGroup (
- EditorUserBuildSettings.selectedBuildTargetGroup,
- string.Join ( ";", allDefines.ToArray () ) );
- }
- }
스크립트를 하나 만들고 위의 내용을 복사 하여 붙혀 넣은 후
18~20번째 중의 Symbols의 항목 값을 원하는 디파인 값으로 변경 하고
저장 후 유니티로 돌아 가면 컴파일 완료 후 Scripting Define Symbols 항목에 추가 된 것을 볼 수 있다.
“파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음"
참조:
https://answers.unity.com/questions/500128/set-preprocessor-symbols-from-editor-script.html
반응형
'Unity3D' 카테고리의 다른 글
Tiled GPU perf. warning: RenderTexture color surface (1920x1080) was not cleared/discarded. See TiledGPUPerformanceWarning.ColorSurface label in Profiler for info (0) | 2020.08.07 |
---|---|
유니티 스크립트로 컴포넌트 추가, 삭제, 활성, 비활성 방법 (0) | 2020.08.05 |
Unity3D에서 AndroidManifest.xml에 권한이나 속성을 추가 방법 (0) | 2020.06.17 |
안드로이드에서 부팅 후 유니티 앱 자동 실행 되게 하기. (0) | 2020.06.11 |
string.Format 메소드 for C# Unity3D (0) | 2020.05.26 |