【问题标题】:Unity Dropdown shows the first time around, duplicated textUnity Dropdown 首次显示重复的文本
【发布时间】:2020-08-31 20:18:43
【问题描述】:

我遇到了这个问题,我有一个下拉菜单,应该显示财务、库存和统计信息。当您单击它时,会出现其他 UI 面板。现在由于某种原因,它所说的选项都是金钱:(这是第一个选项的第一个项目名称)。这是为什么?我在下面附上了图片,显示了我的意思。 对不起,我还没有足够高的代表链接

Duplicated Text of Money

Another instance of ^

My Tabs

Dropdown Setup

【问题讨论】:

    标签: unity3d user-interface


    【解决方案1】:

    您的标题是游戏对象“标签”,因此它在下拉菜单中默认设置,因为没有精灵。我猜 Label 有一个文本组件,上面写着“Money”?

    【讨论】:

    • 我认为这缺少正确的解决方案。 Caption 字段是对第一次启用 UI 游戏对象或未选择任何内容时应显示的文本的引用。这个项目应该只显示在一个点上。此外,您可以看到他正在引用他应该引用的标签游戏对象,因为在显示层次结构的第三张图片中使用了相同的名称。看看我下面的答案,我想我可能已经想通了!
    【解决方案2】:

    让我们仔细看看您的第三张和第四张图片,并将它们与默认的 Dropdown UI 元素进行比较。

    所以在你的第三张图片中,你展示了一个类似的树,但是模板游戏对象发生了什么?看来您删除了它并用财务游戏对象替换它。这是你的首要问题。您不能删除下拉游戏对象的此模板游戏对象部分。模板由下拉代码使用,以进一步确定您在游戏中将看到的下拉菜单的样式,并为您提供一个模板供您查看。我不知道它是如何工作的所有内部细节,但我知道它肯定会在你的问题中发挥作用。

    我知道这一点,因为现在看看我的 Dropdown 组件。查看我的Template 字段并将其与您的字段进行比较。您的填写的是财务而不是模板,这就是您的下拉菜单填充财务字段而不是您尝试传递的值的原因。

    这是我建议你做的。我假设 FinancesTab、InventoryTab 和 StatsTab 都是您希望在单击相应的下拉项时打开的 UI 元素。如果是这样的话:

    1. 创建一个新的下拉游戏对象
    2. 不要删除其中的 Template GameObject 并保留 Dropdown GameObject 中的 Template 字段原样
    3. 将利用每个 UI 元素的 SetActive 函数(将它们放在公共字段中)的脚本添加到下拉游戏对象
    4. 将此代码设置为此,以便选择下拉列表上的某个项目时,它将所需的UI选项卡设置为SetActive(true);
    5. 现在在 OnValueChanged(Int32) 字段中引用新脚本,并在 OnValueChanged(Int32) 字段的下拉菜单中引用该脚本中的正确方法。

    我相信这应该可以解决您的问题并帮助您实现您想要的。如果我的步骤令人困惑,请查看下拉菜单上的 Dropdown APIYoutube tutorial。通过这两个链接,您绝对可以实现您想要的(这就是我想出来的!)。

    希望这会有所帮助!

    【讨论】:

    • 所以我创建了一个新的下拉菜单和所有这些,我是否要留下我创建的选项卡,让它们成为 Dropdown 游戏对象或模板视口内容的子项?
    • Nvm 我明白了!谢谢你们!
    • 没问题,很高兴它有帮助。如果它对您有用,请回答选择的解决方案,以便其他人可以看到它!
    猜你喜欢
    • 1970-01-01
    • 2014-06-28
    • 2019-10-15
    • 2020-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-11
    • 1970-01-01
    相关资源
    最近更新 更多