시작시 에디터 스크립트 실행
Unity 시작 직후에 사용자의 작업 없이 프로젝트 에디터 스크립트 코드를 실행하는 것이 유용한 경우가 종종 있습니다. 이것은 InitializeOnLoad 속성을 static constructor (정적 생성자)가 있는 클래스에 적용함으로써 얻을 수 있습니다. 정적 생성자는 클래스와 같은 이름의 함수로 정적으로 선언된 함수이며, 반환 값이나 인수가 없습니다(자세한 내용은 여기를 확인하시기 바랍니다) : -
1 2 3 4 5 6 7 8 9 |
using UnityEngine; using UnityEditor; [InitializeOnLoad] public class Startup { static Startup() { Debug.Log("Up and running"); } }
|
정적 생성자는 어떤 정적 함수와 클래스의 인스턴스가 사용되는 것보다 먼저 호출되는 것이 보증되고 있지만, InitializeOnLoad 속성에 의해 에디터 시작할 때 호출되는 것을 보장합니다.
이 기술이 사용되는 예는 에디터에서 일반 콜백을 설정할 때(“프레임 업데이트” 등) 입니다. EditorApplication 클래스에는 update라는 대리자(Delegate)가 있고, 이것은 에디터가 실행되는 동안 초당 여러 번 호출됩니다. 프로젝트 시작할 때 이 대리자를 사용하려면 다음과 같은 코드를 사용합니다 : -
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
using UnityEditor; using UnityEngine;
[InitializeOnLoad] class MyClass { static MyClass () { EditorApplication.update += Update; }
static void Update () { Debug.Log("Updating"); } } |
ref : https://docs.unity3d.com/kr/530/Manual/RunningEditorCodeOnLaunch.html
'게임엔진(GameEngine) > Unity3D' 카테고리의 다른 글
Prefab Control, UnpackPrefab completely (0) | 2020.12.20 |
---|---|
모바일 기기의 Tile Based Rendering(타일 기반 렌더링) (0) | 2020.02.24 |
에디터에서 해당 오브젝트에 대한 prefab path 얻어오기 : Get a prefabs file location in Unity (0) | 2019.09.07 |
컴포넌트를 추가 할때 호출 되는 함수 Reset() (0) | 2019.09.01 |
Coroutine 과 Thread 차이 (0) | 2019.06.20 |