개발/Unity

유니티 Attribute - ExecuteInEditMode / ExecuteAlways로 편집 모드에서 스크립트 실행하기

피로물든딸기 2022. 7. 10. 10:54
반응형

Unity 전체 링크

 

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:

 

Easy 2D, 3D, VR, & AR software for cross-platform development of games and mobile apps. - Unity Store

Have a 2D, 3D, VR, or AR project that needs cross-platform functionality? We can help. Take a look at the easy-to-use Unity Plus real-time dev platform!

store.unity.com

 

Unity Pro:

 

Unity Pro

The complete solutions for professionals to create and operate.

unity.com

 

Unity 프리미엄 학습:

 

Unity Learn

Advance your Unity skills with live sessions and over 750 hours of on-demand learning content designed for creators at every skill level.

unity.com

반응형