728x90
#if 조건부 컴파일으로 특정 코드만 실행하는 용도
#if USE_NEW_SYSTEM
Debug.Log("이거");
#else
Debug.Log("아니면 이거");
#endif // 끝
1. 에디터로 추가하기
Edit → Project Settings → Player → Other Settings → Script Compilation → Scripting Define Symbols
2. 코드에서 Script Define Symbols 추가/제거
Enum을 사용하는 것이 더 편하고 직관적
public static class DefineSymbolManager
{
// ✅ Enum으로 정의
public enum DefineSymbol
{
USE_NEW_SYSTEM,
DEBUG_MODE,
PRO_VERSION
}
// ✅ 심볼 추가
public static void AddDefineSymbol(DefineSymbol symbol)
{
string symbolName = symbol.ToString(); // Enum 값을 문자열로 변환
string defines = PlayerSettings.GetScriptingDefineSymbolsForGroup(BuildTargetGroup.Standalone);
if (!defines.Contains(symbolName))
{
defines += ";" + symbolName;
PlayerSettings.SetScriptingDefineSymbolsForGroup(BuildTargetGroup.Standalone, defines);
}
}
// ✅ 심볼 제거
public static void RemoveDefineSymbol(DefineSymbol symbol)
{
string symbolName = symbol.ToString();
string defines = PlayerSettings.GetScriptingDefineSymbolsForGroup(BuildTargetGroup.Standalone);
if (defines.Contains(symbolName))
{
defines = defines.Replace(symbolName, "").Replace(";;", ";");
PlayerSettings.SetScriptingDefineSymbolsForGroup(BuildTargetGroup.Standalone, defines.Trim(';'));
}
}
// ✅ 심볼이 존재하는지 확인
public static bool HasDefineSymbol(DefineSymbol symbol)
{
string symbolName = symbol.ToString();
string defines = PlayerSettings.GetScriptingDefineSymbolsForGroup(BuildTargetGroup.Standalone);
return defines.Contains(symbolName);
}
}
적용 확인 후 사용
- 플랫폼별 코드 분기
- 디버깅 및 테스트용 코드 분리
- 특정 기능 활성화/비활성화
[MenuItem("Tools/Settings/ScriptDefineSymbols")]
-> 에디터 메뉴에 항목 추가해서 편하게 실행 ㄱㄱ
// 'Tools → Settings → ScriptDefineSymbols' 항목 클릭 시 실행되는 메서드
[MenuItem("Tools/Settings/ScriptDefineSymbols")]
public static void SetScriptDefineSymbols()
{
DefineSymbolManager.AddDefineSymbol(DefineSymbolManager.DefineSymbol.DEBUG_MODE);
}
728x90
'Unity' 카테고리의 다른 글
텍스트 이펙트 패키지 (0) | 2025.04.09 |
---|---|
Lean.Common; 이슈 (0) | 2025.03.31 |
SystemInfo.deviceUniqueIdentifier 식별자 (1) | 2025.03.17 |
TMP Input Field “No Monobehaviour Scripts” (0) | 2025.03.06 |
유니티 패키지 (커스텀 NUnit,Newtonsoft Json) (0) | 2025.02.25 |