【问题标题】:Extending UnityEngine.UI.Image and add extra field available in Inspector扩展 UnityEngine.UI.Image 并在 Inspector 中添加额外的可用字段
【发布时间】:2017-03-10 11:46:00
【问题描述】:
我正在尝试像这样扩展UnityEngine.UI.Image
public class MyImage : Image {
public string Comment;
}
但我在检查器中没有看到额外的文本字段 Comment。是否可以添加检查器中可用的额外字段?
PS 它触发了 Extending Unity UI components with custom Inspector 的重复,但它不是重复的。我不问任何关于custom Inspector 的事情。这只是default Inspector 的常规字段。问题是该字段根本没有出现在检查器中。
【问题讨论】:
标签:
unity3d
unity5
unity3d-gui
unity3d-editor
【解决方案1】:
不幸的是,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);
}
}
结果: