Villkorlig kompilering och UNITY_EDITOR
↑Snabböversikt
Section titled “Snabböversikt”C# kan inkludera eller exkludera kod under kompileringen med preprocessor-direktiv. I Unity används symbolen UNITY_EDITOR när kod kompileras för editorn. Det passar för små editorvillkor men ersätter inte tydliga assemblygränser.
Rätt syntax
Section titled “Rätt syntax”Skriv #if UNITY_EDITOR och avsluta med #endif. #ifeditor är inte ett giltigt C#-direktiv.
using UnityEngine;
public sealed class EditorOnlyLog : MonoBehaviour{ private void Start() {#if UNITY_EDITOR Debug.Log("Det här loggas i Unity Editor.");#endif }}När UnityEditor behövs
Section titled “När UnityEditor behövs”#if UNITY_EDITORusing UnityEditor;#endifusing UnityEngine;
public static class SceneHelper{#if UNITY_EDITOR [MenuItem("Tools/HCSTech/Print project path")] private static void PrintPath() => Debug.Log(Application.dataPath);#endif}UnityEditor finns inte i vanliga spelbyggen. Lägg större editorverktyg i en särskild Editor-mapp eller assembly.
Kontrollera båda miljöerna
Section titled “Kontrollera båda miljöerna”- Avgör om funktionaliteten hör hemma i runtime eller editor.
- Använd symboler bara där de förtydligar koden.
- Prova både Play mode och en riktig player-build.
- Om koden växer, använd asmdef i stället för många spridda villkor.
