아래의 에디터 스크립트는 별도로 동작하지 않으며,
원본이 되는 스크립트가 있고, 원본 스크립트가 사용되었다면 인스펙터에 버튼을 생성하는 스크립트이다.
해당 버튼을 통해 원본 스크립트의 함수를 호출할수 있다.
주로 데이터의 저장 / 삭제를 할당하여 테스트용으로 사용한다.
에디터 스크립트는 반드시 Editor라는 이름의 폴더에 넣어야한다. (빌드시에 포함되지않음)
(최상위 폴더의 Editor가 아니더라도 하위에있는 Editor 폴더 아래에만 있으면 된다.)
using UnityEngine;
using System.Collections;
using UnityEditor;
[CustomEditor(typeof(클래스명))]
public class 클래스명 : Editor
{
public override void OnInspectorGUI()
{
DrawDefaultInspector();
클래스명 myScript = (클래스명)target;
if(GUILayout.Button("버튼이름"))
{
myScript.메소드명();
}
}
}
예를들어서 PlayerPref로 저장시스템을 구축했을 때,
해당 데이터를 삭제한 상태에서 테스트 하고 싶을 때가 있다.
그럴경우 함수 하나를 만들고 그 속에 PlayerPref.DeleteKey(string key); 를 호출시킨다음,
에디터 스크립트를 통해 그 함수를 호출하면 인스펙터에서 버튼만 눌러도 삭제가 된다!
이는 저장도 마찬가지. 버튼을 두개 만들면된다.
'🌍 Unity > 유니티 엔진 동작 관련' 카테고리의 다른 글
유니티 인터페이스로 호출 (Unity interface call / check) (0) | 2019.11.21 |
---|---|
Unity 씬 로딩 될때마다 호출되는 함수 (OnSceneLoaded ) (0) | 2019.10.15 |
유니티 StopCoroutine이 동작하지 않을 때 Unity Stop Coroutine doesn't work (0) | 2019.05.01 |
유니티 커스텀 프로퍼티 드로워 (Unity Custom property drawer) (0) | 2019.01.06 |
유니티 프로퍼티 (인스펙터 정리) PropertyAttribute (0) | 2019.01.05 |