🌍 Unity/유니티 엔진 동작 관련
Editor 에디터 인스펙터에 버튼 만들기
맨텀
2018. 1. 3. 01:16
아래의 에디터 스크립트는 별도로 동작하지 않으며,
원본이 되는 스크립트가 있고, 원본 스크립트가 사용되었다면 인스펙터에 버튼을 생성하는 스크립트이다.
해당 버튼을 통해 원본 스크립트의 함수를 호출할수 있다.
주로 데이터의 저장 / 삭제를 할당하여 테스트용으로 사용한다.
에디터 스크립트는 반드시 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); 를 호출시킨다음,
에디터 스크립트를 통해 그 함수를 호출하면 인스펙터에서 버튼만 눌러도 삭제가 된다!
이는 저장도 마찬가지. 버튼을 두개 만들면된다.