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

标签 unity-game-engine unity3d-gui unity3d-editor

我正在尝试像这样扩展UnityEngine.UI.Image

public class MyImage : Image {
   public string Comment;
}

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

PS 它因 Extending Unity UI components with custom Inspector 重复而触发但这不是骗人的。我不会询问任何有关自定义检查器的问题。它只是带有默认检查器的常规字段。问题是该字段根本没有出现在检查器中。

最佳答案

不幸的是,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

关于unity-game-engine - 扩展 UnityEngine.UI.Image 并添加 Inspector 中可用的额外字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42717649/

相关文章:

c# - 如何获取和设置 Range 属性的最小值和最大值?

C# .NET 3.5 : Memory Pool, 知道对象何时被释放?

unity-game-engine - 如何通过 C# 更改 Canvas 渲染相机

user-interface - 如何使用 Unity UI 滚动到 ScrollRect 中的特定元素?

unity3d - Unity 中 UI 元素之间的碰撞

c# - (Unity3D)如何在脚本上添加注释或文档

unity-game-engine - 团结 : Is it possible to use 2 passes consecutively?

c# - 自定义窗口模仿 SceneView

unity-game-engine - 如何使 Vector3 字段的行为类似于 CustomEditor 中 Transform 的字段

c# - 统一 5 : Clean way to manage dynamically created GameObjects