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 |