한 줄 요약
ExecuteInEditMode는 에디터 모드에서만 실행되므로 편집 중 객체의 변화를 즉시 반영하고 싶을 때 사용합니다.
ExecuteAlways는 에디터 모드와 플레이 모드 모두에서 스크립트가 실행되어야 할 때 사용합니다.
ExecuteInEditMode
using UnityEngine;
[ExecuteInEditMode]
public class ExampleInEditMode : MonoBehaviour
{
private void Update()
{
Debug.Log("Update called in Edit Mode");
}
}
ExecuteInEditMode는 스크립트가 에디터 모드에서도 실행되도록 합니다. 즉, 게임을 실행시키지 않더라도 에디터 모드에서 스크립트의 Update와 OnEnable 같은 MonoBehaviour 메서드가 호출됩니다.
그러나 이 특성은 플레이 모드와는 달리 에디터 모드에서만 실행됩니다.
ExecuteAlways
using UnityEngine;
[ExecuteAlways]
public class ExampleAlways : MonoBehaviour
{
private void Update()
{
Debug.Log("Update called Always");
}
}
ExecuteAlways는 스크립트가 에디터 모드뿐만 아니라 플레이 모드에서도 Update와 OnEnable 같은 MonoBehaviour 메서드가 호출되도록 해줍니다.
[ExecuteInEditMode]의 기능을 포함하면서도 플레이 모드에서도 계속 실행됩니다.