2017-03-10 2 views
0

에서 사용할 여분의 필드를 추가 나는UnityEngine.UI.Image 확장 및 관리자

public class MyImage : Image { 
    public string Comment; 
} 

같은 UnityEngine.UI.Image을 확장하려고하지만 관리자의 별도의 텍스트 필드 Comment이 표시되지 않습니다. 인스펙터에서 사용할 수있는 추가 필드를 추가 할 수 있습니까?

PSExtending Unity UI components with custom Inspector에 대해 복제 된 것으로 트리거되었지만 복제본이 아닙니다. 나는 custom Inspector에 대해 아무것도 묻지 않는다. default Inspector의 일반 필드 일뿐입니다. 문제는 필드가 관리자에게 전혀 나타나지 않는다는 것입니다.

+2

[사용자 지정 경위와 확장 유니티 UI 구성 요소 (의 사용 가능한 복제에 http : // 유래. com/questions/29052183/extend-unity-ui-components-with-custom-inspector) – Maakep

답변

4

불행히도 Inspector GUI는 기본 클래스로부터 자동으로 상속받을 수 없습니다. Extending Unity UI components with custom Inspector에 설명 된 것과 같이 직접 작성해야합니다.

MyImage.cs

using UnityEngine; 
using UnityEngine.UI; 

[ExecuteInEditMode] 
public class MyImage : Image 
{ 
    public string Comment; 
} 

MyImageEditor.cs

using UnityEditor; 
using UnityEngine; 

[CustomEditor(typeof(MyImage))] 
public class MyImageEditor : UnityEditor.UI.ImageEditor 
{ 
    public override void OnInspectorGUI() 
    { 
     base.OnInspectorGUI();//Draw inspector UI of ImageEditor 

     MyImage image = (MyImage)target; 
     image.Comment = EditorGUILayout.TextField("Comment", image.Comment); 
    } 
} 

결과 : MyImage's Inspector GUI