扩展UnityEngine.UI.Image并添加Inspector中可用的额外字段

Tem*_*ema 1 unity-game-engine unity3d-editor unity3d-gui unity5

我试图延长UnityEngine.UI.Image这样的

public class MyImage : Image {
   public string Comment;
}
Run Code Online (Sandbox Code Playgroud)

但是我没有Comment在检查器中看到额外的文本字段。是否可以添加检查器中可用的额外字段?

PS它触发为使用自定义Inspector扩展Unity UI组件重复,但不是重复的。我什么也没问custom Inspector。它只是的常规字段default Inspector。问题在于该字段根本没有出现在检查器中。

zwc*_*oud 5

不幸的是,Inspector GUI无法自动从基类继承。您需要自己编写该代码,就像使用自定义Inspector扩展Unity UI组件中所描述的一样。

MyImage.cs

using UnityEngine;
using UnityEngine.UI;

[ExecuteInEditMode]
public class MyImage : Image
{
    public string Comment;
}
Run Code Online (Sandbox Code Playgroud)

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

结果: MyImage的检查器GUI