Version: 2020.2
언어: 한국어
도메인 및 씬 재로드 비활성화에 대한 세부 정보
스크립트 직렬화

실행 시 에디터 스크립트 코드 실행

때로는 Unity가 사용자의 작업을 요구하지 않고 실행되는 즉시 프로젝트에서 일부 에디터 스크립트 코드를 실행할 수 있는 것이 유용합니다. 정적 생성자가 있는 클래스에 InitializeOnLoad 속성을 적용하여 이렇게 할 수 있습니다. 정적 생성자는 클래스와 이름이 동일한 함수로, 정적으로 선언되고 반환 타입 또는 파라미터가 없습니다. 자세한 내용은 여기를 참조하십시오.

using UnityEngine;
using UnityEditor;

[InitializeOnLoad]
public class Startup {
    static Startup()
    {
        Debug.Log("Up and running");
    }
}

정적 생성자는 항상 정적 함수 또는 클래스의 인스턴스가 사용되기 전에 호출되지만, InitializeOnLoad 속성을 사용하면 에디터가 실행될 때 호출되도록 합니다.

이 기술은 예를 들어 에디터에서 일반 콜백(“프레임 업데이트”)을 설정할 때 사용할 수 있습니다. EditorApplication 클래스에는 에디터 실행 중에 1초에 여러 번 호출되는 업데이트라는 대리자가 있습니다. 프로젝트 실행 시에 이 대리자를 활성화하려면 다음와 같은 코드를 사용해야 합니다.

using UnityEditor;
using UnityEngine;

[InitializeOnLoad]
class MyClass
{
    static MyClass ()
    {
        EditorApplication.update += Update;
    }

    static void Update ()
    {
        Debug.Log("Updating");
    }
}

도메인 및 씬 재로드 비활성화에 대한 세부 정보
스크립트 직렬화