【发布时间】:2020-08-26 09:16:24
【问题描述】:
所以在过去的几天里,我一直在尝试新的 Unity UI Builder,但遇到了以下问题:每当您简单地将 Vector3 字段添加到 uxml 并运行游戏时,Vector3 字段的缩放比例不正确。在编辑器中,它看起来像任何 Vector3 字段,就像 Unity 编辑器本身一样。下面是一个示例图像和 uxml。
<ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements">
<ui:VisualElement style="flex-grow: 1; position: absolute; height: 100%; width: 100%; justify-content: center; align-items: flex-start;">
<ui:VisualElement>
<uie:Vector3Field label="Vec3 Field" />
</ui:VisualElement>
</ui:VisualElement>
</ui:UXML>
我已经搞砸了构建器中呈现给我的每个字段,但没有任何成功。我可以取消 Vector3 字段并创建自己的字段,但这需要更多时间,因为我需要更深入地研究源代码。我希望有人可以帮助我。如果问题确实很常见,我会向 Unity 开发人员报告。
提前致谢!
【问题讨论】:
-
尝试进行实际构建,因为这个
xmlns:uie="UnityEditor.UIElements"可能会抛出一个异常来寻找这个UnityEditor.UIElements.Vector3Field类。 -
@AndrewŁukasik 我按照您的建议进行了构建,结果证明您是绝对正确的:imgur.com/a/E1LkYWu 有没有办法解决这个问题,或者我可以不在游戏 UI 中使用 Vector3 字段?
-
UnityEditor.*类仅用于编辑器,因此我们需要使用UnityEngine.*或创建我们自己的容器类型以供运行时使用(显示 vector3 并不难,因为它只有 3 x @987654329 @) -
@AndrewŁukasik 感谢您的建议,我会尝试看看是否可以为我的 UI 制作一些自定义元素。您应该将此添加为答案,以便我可以标记解决方案。