반응형
ExecuteInEditMode 또는 ExecuteAlways 속성을 스크립트에 추가하면
에디터가 플레이 모드가 아닌 동안에도 각 스크립트 컴포넌트의 콜백 함수가 실행된다.
또한, 플레이 모드가 종료되어도 오브젝트의 초기 조건이 변경되지 않고 그대로 남아있다.
오브젝트를 회전시키는 Rotate.cs를 큐브에 추가해보자.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[ExecuteInEditMode] //또는 [ExecuteAlways]
public class Rotate : MonoBehaviour
{
void Update()
{
this.transform.Rotate(new Vector3(0, 10, 0));
}
}
Play를 종료해도 오브젝트가 계속 움직이려고 한다.
그러나 실제 플레이 모드와 달리 천천히 움직이거나 끊기는 것처럼 움직이는 것을 알 수 있다.
ExecuteInEditMode는 Play와 달리 지속적으로 호출되지 않기 때문이다.
- Update는 Scene이 변경될 때만 호출
- OnGUI는 Game View가 이벤트를 받으면 호출
- OnRenderObject 및 기타 렌더링 콜백 함수는 Scene View / Game View가 다시 그려질 때 호출
이러한 원리로 특정 오브젝트가 조건에 따라 어떻게 배치되는 지 알고 싶을 때 유용하게 사용할 수 있다.
Unity Plus:
Unity Pro:
Unity 프리미엄 학습:
반응형
'개발 > Unity' 카테고리의 다른 글
유니티 - BFS를 이용하여 평면을 그리드로 나누기 (Converting a Plane to a Grid with BFS) (0) | 2022.07.16 |
---|---|
유니티 - 인보크로 일정 시간 이후 함수 실행하기, 반복하기 (Invoke) (0) | 2022.07.16 |
유니티 Attribute - MenuItem 속성으로 원하는 함수 실행하는 메뉴 만들기 (Calling Function with MenuItem) (0) | 2022.07.09 |
유니티 Attribute - DisallowMultipleComponent로 스크립트 중복 금지하기 (0) | 2022.07.09 |
유니티 에셋 - Lean Touch로 마우스 클릭 이펙트 보여주기 (Click Effect / Input Management) (0) | 2022.07.09 |
댓글