ExecuteInEditMode

반응형

작업할때 디자이너분들이 작업하기 편하게 "ExecuteInEditMode"를 자주 쓰는 편인데

어느날 에디터 실행후 종료시에 이상한 에러가 뜬다.

봤더니 에디터 실행 후 종료시에 ExecuteInEditMode 코드가 있는 스크립트의 start 함수가 호출된다.

누가 호출하는걸까..콜백도 없고...

그래서 디버그를 다 찍어서 editor을 실행하니 ExecuteInEditMode 코드가 있는 스크립트에서는


1. 에디터 실행 - script의 OnDestroy 실행, Start 실행

2. 에디터 종료 - script의 OnDestroy 실행, Start 실행


위와 같은 루틴을 탄다.



[ExecuteInEditMode]

public class ExecuteTest : MonoBehaviour {


// Use this for initialization

void Start () {

Debug.Log("Start");

}

// Update is called once per frame

void Update () {

Debug.Log("Update");

}


void OnDestroy()

{

Debug.Log("OnDestroy");

}

}


위 코드를 하이라키에 오브젝트 하나 만들어 add 시킨 후 테스트 해 보면 

아래와 같이 로그가 찍힌다.


에디터 실행..............................................에디터 종료.......................................

OnDestroy -> Start -> Update -> OnDestroy -> Start -> Update



에디터에서만 이렇게 동작하겠지만...

'Unity > Unity Study' 카테고리의 다른 글

unity의 awake  (0) 2017.09.24
Inspector에서 AnimationCurve 버그  (0) 2017.07.21
unity에서 shader를 짤때..  (0) 2017.07.10
ARB_precision_hint_fastest  (0) 2017.07.10
The Magic Of Material Property Blocks  (0) 2017.06.23
TAGS.

Comments