【问题标题】:Create Custom Unity Inspector Layout创建自定义 Unity Inspector 布局
【发布时间】:2018-09-04 03:29:53
【问题描述】:

所以我已经看到了其中一些统一的脚本,我想知道如何在我自己的脚本中重新创建它?

所以我有一个脚本,当单击对象时,它将调用另一个脚本上的函数。我希望能够传递参数等等,但是 Inspector 被一堆切换、int 字段等弄得一团糟。

有什么办法可以重现这种东西吗?

与其说是事件类型,不如说是小功能框。如果这是有道理的:)

谢谢!

【问题讨论】:

    标签: unity3d inspector


    【解决方案1】:

    您在该屏幕截图中显示的框是Event Trigger。据我所知,没有任何方法可以让您将 UI 对象与此基础类型分开。所以没有办法只绘制委托框。但是,您可以基于EventTrigger 创建一个类,然后您可以扩展EventSystemEditor。

    您还可以创建一个派生自 UnityEvent in this fashion 的类,它会以您想要的方式显示一个函数委托框。

    但是,同样,这不会为您提供为您绘制函数/委托框的绘图方法。我不知道让 Unity3D 让你这样做的单一方法。

    您可以查看完整的 GUI 绘图方法列表:

    https://docs.unity3d.com/ScriptReference/EditorGUILayout.html

    https://docs.unity3d.com/ScriptReference/EditorGUI.html

    但它只是不存在。


    我知道有些人已经设法通过 Inspector 魔法实现了类似的效果,重新创建了类似的方面和功能。我知道FullInspector 可以在其检查器中进行委托,您可以检查其源代码以了解如何操作,但最终可能需要大量工作。专门序列化委托是地狱般的,所以如果你想让它序列化,我什至不会打扰。我建议找到一条不同的阻力最小的路径。

    这里有一个替代方案:

    您可以通过反射收集目标类中的方法,并将它们显示在下拉菜单中。然后,一旦选择了一个方法,您就可以再次使用反射来查看该方法需要哪些参数,并使用 GUI 函数绘制从用户输入接收这些参数所需的适当字段。

    这绝对是可能的,但同样,我认为这需要相当多的时间来详细说明,而且您最好找到一种方法来满足您的要求,而无需这种级别的编辑器 GUI 恶作剧。

    【讨论】:

    • 太棒了!谢谢!
    猜你喜欢
    • 2018-01-23
    • 2012-10-28
    • 2016-12-10
    • 2016-10-12
    • 2016-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多