Unity 代碼改宏定義


兩個函數

PlayerSettings.GetScriptingDefineSymbolsForGroup(targetGroup); //所有宏定義 ; 分割
PlayerSettings.SetScriptingDefineSymbolsForGroup(targetGroup, sz); //寫入全部宏,相當於改配置

使用筆記

需要考慮一組宏定義的互斥問題,要保持不改動的宏不變,示例代碼如下
public static void SetDebugerLevle(string logType)
{
    BuildTargetGroup targetGroup = BuildTargetGroup.Android;
    string ori = PlayerSettings.GetScriptingDefineSymbolsForGroup(targetGroup);
    string debugType = "Debuger_" + logType;

    List<string> defineSymbols = new List<string>(ori.Split(';'));
    for (int i = 0; i < defineSymbols.Count; ++i)
    {
        if (defineSymbols[i] == debugType)
        {
            Debug.LogFormat("========== debuglog {0}", logType);
            return;
        }

        if (defineSymbols[i].StartsWith("Debuger_"))
        {
            defineSymbols[i] = debugType;
            debugType = null;
            break;
        }
    }

    if (debugType != null)
    {
        defineSymbols.Add(debugType);
    }

    PlayerSettings.SetScriptingDefineSymbolsForGroup(targetGroup, string.Join(";", defineSymbols.ToArray()));
    Debug.LogFormat("========== debuglog {0}", logType);
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM