2017-03-10 2 views
0

Ich versuche UnityEngine.UI.Image wie dieUnityEngine.UI.Image erweitern und zusätzliches Feld in Inspektoren ab Lager in

public class MyImage : Image { 
    public string Comment; 
} 

zu verlängern Aber ich sehe nicht, zusätzliches Textfeld Comment in Inspektoren. Ist es möglich, ein zusätzliches Feld hinzuzufügen, das im Inspector verfügbar wäre?

PS Es ausgelöst, wie für Extending Unity UI components with custom Inspector dupliziert, aber es ist nicht dupe. Ich frage nichts über custom Inspector. Es ist nur reguläres Feld mit default Inspector. Das Problem ist, dass das Feld im Inspektor überhaupt nicht angezeigt wird.

+2

Mögliche Duplikat [Erweiterung Unity UI-Komponenten mit benutzerdefinierten Inspector] (http: // Stackoverflow. com/questions/29052183/Erweiterung-Einheit-UI-Komponenten-mit-Custom-Inspector) – Maakep

Antwort

4

Leider kann die Inspektor-GUI die Basisklasse nicht automatisch erben. Sie müssen das selbst schreiben, genau wie in Extending Unity UI components with custom Inspector beschrieben.

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); 
    } 
} 

Ergebnis: MyImage's Inspector GUI

Verwandte Themen