코드 및 공부/기타

The type or namespace name 'EditorWindow' 오류

ekrxjvpvj0110 2025. 1. 9. 20:15

유니티 버전 - 2022.3.17f1

 

 

 

 

 

The type or namespace name 'EditorWindow'


빌드시 다음과 같은 오류가 발생하는이유는 EditorWindow는 에디터 전용 클래스이기때문에, 런타임 빌드에서는 사용할 수 없기때문입니다

Assets\Scripts\스트립트명.cs(6,36):
error CS0246: The type or namespace name 'EditorWindow' could not be found (are you missing a using directive or an assembly reference?)
 

'EditorWindow' / 'MenuItemAttribute' / 'MenuItem'

 

 

 

 

따라서, EditorWindow를 상속받는 스크립트는 Editor라는 이름의 폴더에 위치해야합니다

아래처럼 InGameControlWindow를 Editor 폴더 아래 넣고 다시 빌드해보면 오류 없이 빌드가 수행됩니다

 

 

 

만약 하나의 스크립트내에서 에디터 코드와 런타임 코드를 모두 사용해야한다면 지시문을 이용하여 분리할 수 있습니다

using UnityEngine;

public class ExampleScript : MonoBehaviour
{
    void Start()
    {
        Debug.Log("분리");
    }

#if UNITY_EDITOR
    using UnityEditor;

    [MenuItem("Tools/Do Something")]
    public static void DoSomething()
    {
        EditorWindow.GetWindow<MyEditorWindow>("Editor Window");
    }
#endif
}