구동 시 편집기 스크립트 코드의 실행
때때로, Unity가 시작되자 마자 사용자의 작업이 필요 없이 일부 편집기 스크립트 코드를 실행할 수 있게 되면 매우 유용합니다. 이 작업은 _static constructor_을 가진 클래스에 InitializeOnLoad
속성을 적용하여 할 수 있습니다. static constructor는 클래스와 같은 이름을 가진 함수로, 반환 타입(return type)이나 매개변수(parameter) 없이 선언됩니다(더 자세한 정보를 보려면, here 참조):-
using UnityEngine; using UnityEditor; [InitializeOnLoad] public class Startup { static Startup() { Debug.Log("Up and running"); } }
static constructor는 항상 어떤 static function이나 클래스의 인스턴스의 사용보다 먼저 호출됨을 보장하지만, InitializeOnLoad 속성은 그것이 편집기가 시작하면 호출되도록 하고 있습니다.
이 기술이 사용될 수 있는 예제로 편집기에서 주기적인 콜백(callback)을 설정할 때 입니다(말하자면, 그 "frame update"). EditorApplication 클래스는 update 라 불리는 대리인(delegate)을 가지고 있는데, 이는 편집기가 실행되는 동안 초당 여러 번 호출됩니다. 프로젝트가 시작될 때 이 대리인을 허용하려면, 다음과 같은 코드를 사용할 수 있을 것 입니다:-
using UnityEditor; using UnityEngine; [InitializeOnLoad] class MyClass { static MyClass () { EditorApplication.update += Update; } static void Update () { Debug.Log("Updating"); } }
- 출처: 유니티코리아위키 (CC BY-NC-SA 2.0)