Inspector에 쉽게 임의의 표시를 추가하고 싶습니다.
3668 단어 Unity
컨디션
이 기사는 Unity 5입니다.3.2 f1을 사용했다.
전언
인스펙터에 표시하고 싶은 값이 있지만, 학급마다 전용 커스텀 에디터를 쓰는 게 귀찮아서 가능한 한 쉽게 실현할 수 있는 방법을 조사했다.
절차.
MonoBehavior 확장
MonoBehavior를 계승하는 클래스를 만들고 디스플레이 데이터를 가져오는 방법을 추가합니다.
클래스 이름은 Custom MonoBehavior입니다.
CustomMonoBehaviour.csusing UnityEngine;
public abstract class CustomMonoBehaviour : MonoBehaviour {
public abstract string GetCustomInspectData();
}
Custom MonoBehavior를 객체로 하는 Editor 클래스 만들기
Custom Editor 속성의 두 번째 매개변수를 트루로 설정하면 Custom MonoBehavior를 상속하는 클래스도 객체가 됩니다.
클래스 이름은 Custom MonoBehaviour Inspctor입니다.
※ 이 스크립트는 Editor 폴더에 배치해야 합니다.그렇지 않으면 출력을 구축할 때 오류가 발생합니다.
CustomMonoBehaviourInspctor.csusing UnityEditor;
[CustomEditor(typeof(CustomMonoBehaviour), true)]
public class CustomMonoBehaviourInspctor : Editor {
public override void OnInspectorGUI() {
DrawDefaultInspector(); // デフォルトの表示内容
EditorGUILayout.TextArea((target as CustomMonoBehaviour).GetCustomInspectData()); // 追加表示分
}
}
스크립트에 Custom MonoBehavior 적용
Custom MonoBehaviour를 상속하고 GetCustom InspectData를 표시할 데이터를 출력합니다.
클래스 이름은 HogeScript로 설정됩니다.
HogeScript.cspublic class HogeScript : CustomMonoBehaviour {
public override string GetCustomInspectData() {
return transform.position.ToString();
}
}
결실
다음 그림에서 보듯이 inspector의 HogeScript 디스플레이가 추가되었습니다.
후기
인스펙터에 표시하고 싶은 값이 있지만, 학급마다 전용 커스텀 에디터를 쓰는 게 귀찮아서 가능한 한 쉽게 실현할 수 있는 방법을 조사했다.
절차.
MonoBehavior 확장
MonoBehavior를 계승하는 클래스를 만들고 디스플레이 데이터를 가져오는 방법을 추가합니다.
클래스 이름은 Custom MonoBehavior입니다.
CustomMonoBehaviour.csusing UnityEngine;
public abstract class CustomMonoBehaviour : MonoBehaviour {
public abstract string GetCustomInspectData();
}
Custom MonoBehavior를 객체로 하는 Editor 클래스 만들기
Custom Editor 속성의 두 번째 매개변수를 트루로 설정하면 Custom MonoBehavior를 상속하는 클래스도 객체가 됩니다.
클래스 이름은 Custom MonoBehaviour Inspctor입니다.
※ 이 스크립트는 Editor 폴더에 배치해야 합니다.그렇지 않으면 출력을 구축할 때 오류가 발생합니다.
CustomMonoBehaviourInspctor.csusing UnityEditor;
[CustomEditor(typeof(CustomMonoBehaviour), true)]
public class CustomMonoBehaviourInspctor : Editor {
public override void OnInspectorGUI() {
DrawDefaultInspector(); // デフォルトの表示内容
EditorGUILayout.TextArea((target as CustomMonoBehaviour).GetCustomInspectData()); // 追加表示分
}
}
스크립트에 Custom MonoBehavior 적용
Custom MonoBehaviour를 상속하고 GetCustom InspectData를 표시할 데이터를 출력합니다.
클래스 이름은 HogeScript로 설정됩니다.
HogeScript.cspublic class HogeScript : CustomMonoBehaviour {
public override string GetCustomInspectData() {
return transform.position.ToString();
}
}
결실
다음 그림에서 보듯이 inspector의 HogeScript 디스플레이가 추가되었습니다.
후기
using UnityEngine;
public abstract class CustomMonoBehaviour : MonoBehaviour {
public abstract string GetCustomInspectData();
}
using UnityEditor;
[CustomEditor(typeof(CustomMonoBehaviour), true)]
public class CustomMonoBehaviourInspctor : Editor {
public override void OnInspectorGUI() {
DrawDefaultInspector(); // デフォルトの表示内容
EditorGUILayout.TextArea((target as CustomMonoBehaviour).GetCustomInspectData()); // 追加表示分
}
}
public class HogeScript : CustomMonoBehaviour {
public override string GetCustomInspectData() {
return transform.position.ToString();
}
}
Custom Editor에서는 On Inspector GUI가 인터페이스를 대상으로 해도 이동하지 않으므로 사용할 수 없습니다.
Reference
이 문제에 관하여(Inspector에 쉽게 임의의 표시를 추가하고 싶습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/soyliquid/items/4fef7663a886a54696c2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)