gpt4 book ai didi

c# - 使用 UIElements/UI Builder 绘制默认检查器

转载 作者:行者123 更新时间:2023-12-05 02:49:36 35 4
gpt4 key购买 nike

我有一个 LevelEditor 脚本,它有一个用 UIBuilder 和 UIElements 构建的自定义检查器编辑器。问题是我想在列表中缓存引用,但我不想为它制作自定义 ListView (在 UIElements 中实现起来有点困难,不值得花时间)所以我想我只是将 private List<MyType> _myVar; 设为[Serializefield] 然后在自定义的下方绘制 DefaultInspector

我找到了执行此操作的方法 DrawDefaultInspector 但遗憾的是它什么也没做。

public override VisualElement CreateInspectorGUI()
{
_visualTree.CloneTree(_rootElement);

// My custom editor code
...

DrawDefaultInspector();

return _rootElement;
}

感谢任何帮助...

最佳答案

您需要通过UIBuilder(或通过代码通过_rootElement.Add(IMGUIVisualElement))放置一个IMGUIContainer,然后在里面执行以下操作CreateInspectorGUI

public override VisualElement CreateInspectorGUI()
{
_visualTree.CloneTree(_rootElement);

// Your custom editor code
...

// Drawing the default inspector
var defaultInspector = _rootElement.Q<IMGUIContainer>();
defaultInspector.onGUIHandler = () => DrawDefaultInspector();

return _rootElement;
}

我通常做的是将 DefaultInspector 也放在折页中,以便设计人员可以使用自定义检查器,但每当他们需要一些他们看不到的高级内容时,他们可以使用默认检查器。

所以他们会看到这样的布局(默认检查器默认隐藏 :) ) enter image description here

关于c# - 使用 UIElements/UI Builder 绘制默认检查器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63977967/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com