问题标签 [unity-ui]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
151 浏览

unity3d - 出于某种原因,我在对象的检查器部分看不到覆盖选项

所以我现在想做的是一款手机游戏,同时遵循如何做的教程。我已经遇到了一个问题,即我在播放器(绵羊)的检查器部分中看不到预制件和覆盖选项。通常,在检查器的顶部,在“标签”和“图层”下,您可以选择预制件和覆盖,但出于某种原因我没有。我粘贴了整个图像,以便您可以查看对象所在的位置,希望能帮我解决这个问题

编辑:所以我已经解决了这个问题,多亏了 Iggy,但现在我有另一个问题可悲:(,事实上,每当我点击覆盖时,它不会显示一个名为“全部应用”的按钮,它只是说“没有覆盖” “,有人知道为什么吗?

0 投票
2 回答
2828 浏览

unity3d - Unity 2019 - 换行符 \n 不适用于 UI 文本元素

我在让换行符适用于我的 Unity UI 元素时遇到了一些困难。(Unity 2019.2.17f1 个人版)

我正在做的是:

结果:

预期输出:

现实:

我尝试过使用“\n”、“\\n”和“\r\n”。这些都没有给出预期的结果。

我使用将文本分配给组件

这种直接分配会不会有问题?我是否需要通过 toString() 推送我的字符串或以某种方式解析它以使 \n 被识别?

解决方法:我有一个解决方法。通过为我的 LanguagePack 使用 XML 文件,并在基本文件中插入(输入)换行符,我将换行符输入到我的 Unity UI 元素中。显然这并不理想。回读 Debug.Log 中的字符串不会显示最终使用了哪个换行代码:它只是根据 XML 文件中的(输入)换行符来中断字符串。

0 投票
1 回答
107 浏览

unity3d - 为什么我不能在我的函数中更新 Unity Text 的值?

我正在尝试根据发生的错误类型显示错误消息。为此,我有一个公共变量“errorMessage”,它附加到检查器中的 UI 文本。我可以在 start 函数中更改文本值,但似乎无法在 GetErrorMessage 函数中更改该值。以下是代码:

检查员:错误消息附加到我的 UI 文本

0 投票
2 回答
3747 浏览

unity3d - 自定义形状按钮 Unity UI

您好我正在尝试在统一(梯形)上创建自定义按钮。我成功地在 Photoshop 上创建了可见区域,并将其导入为 Sprite 2D UI,如下图所示:

在此处输入图像描述

问题出现了,当我尝试选择游戏中的一个按钮时,它们的边框相互重叠,因为透明区域仍被视为可点击按钮区域的一部分。我怎样才能删除这个?

在此处输入图像描述

编辑:

实际上,当我导入时,我希望方形框不计入图像中。我需要将橙色区域的边缘与该区域齐平,而不是整个区域(即包括透明框)。

在此处输入图像描述

0 投票
0 回答
322 浏览

unity3d - Unity UI Canvas & SetPass 调用 & TextMeshProUGUI 顺序

我正在尝试最小化 Unity 画布中的 SetPass 调用。

考虑以下示例:

画布中的渲染是逐层进行的。渲染顺序可以如下所示:

  1. 红色方块(+1 套传球)
  2. 文本“1”和黄色方块(+2 设置传球)
  3. 文字“2”和粉红色方块(+2 设置通行证)
  4. 文本“3”(+1 设置传球)

或者,它可能会好一点:

  1. 红色方块(+1 套传球)
  2. 黄色方块,然后是文本“1”(+1 设置通行证)
  3. 粉红色方块,然后发短信“2”和“3”(+2 设置通行证)

因此,绘图正在从默认图像材料切换到文本材料并返回。此绘图的结果将产生至少4 个绘图调用,而不是 2 个。即使只使用了 2 个材质。此示例还假设未对红色、黄色和粉色方块进行批处理。

问题:有没有办法确保文本始终绘制在顶部?

笔记:

  1. TextMeshPro UI 材料(移动覆盖)在这里没有帮助。
  2. 统一 2019.3.12.f1
  3. 所有文本实际上都作为最后一层放置(例如,它们上面没有任何绘图)。
  4. 批处理有时会有所帮助。但是,复杂的 UI 可能会使用多种材质。由于我的意图是始终在所有内容上绘制文本,因此没有通用的解决方案吗?
  5. Z 顺序使绘图顺序变得更糟,并且材料之间的切换发生得更频繁。
0 投票
1 回答
1709 浏览

unity3d - Unity:UI.Button 从脚本添加 OnClick 事件失败

在我的应用程序中,我有一个 GameObject 列表,我正在通过代码为列表中的每个 GameObject 创建一个按钮。问题是,当我通过代码添加和 onClick 事件时,按钮 onClick 列表中没有显示任何内容,当我单击按钮时没有任何反应,并且在此过程中没有任何错误。这是我的代码的样子:

我在编辑器脚本中创建了一个 GUILayout.Button 来调用“生成”方法。按钮已创建,我没有收到任何错误,但按钮中没有添加任何事件。

0 投票
1 回答
944 浏览

c# - Unity:在不移动子游戏对象的情况下更改 UI 游戏对象父级和位置

我在 Unity 中有一个 UI,我不断地将项目从一个地方移动到另一个地方。

其中一些项目是容器,我决定给每个容器自己的子游戏对象,表示并包含打开后的实际容器的内容(也就是激活游戏对象)。我选择这样做是为了更容易跟踪每个容器的实际容器。

我想要什么:更改项目的父项时(又名移动它,因为我所有的父母都有布局组),子游戏对象应该保持在相同的世界位置

我所拥有的:更改项目的父项时,子游戏对象会更改世界位置

我能做什么:我可以每次重置子游戏对象的位置,就像我第一次使用此代码实例化游戏对象时所做的一样(相关游戏对象被拉伸)

我想知道的是:Monobehavior 或 Unity 中是否有一些东西可以防止子游戏对象移动

以下是它适用的一种情况的逐步图像: 在这里我有一个袋子叫

在这里,我的房间里有一个名为“sac a dos”的袋子

现在我打开了袋子,它出现在屏幕中间

现在我打开了袋子,它出现在屏幕中间

我现在创建了一个名为

我现在在同一个地方创建了一个名为“Coffre”的胸部物品,导致袋子被放置为胸部容器子游戏对象的子项

在这里,我打开了箱子,显示了作为箱子容器子游戏对象的子项放置的包,并定位在正确的位置

在这里,我打开了箱子,定位在正确的位置,并显示了作为箱子容器子游戏对象的子项放置的包

这里我打开了胸部的包,由于包的位置发生了变化,导致包的子游戏对象放错了位置

这里我打开了胸部的包,由于包的位置发生了变化,导致包的子游戏对象放错了位置

0 投票
1 回答
48 浏览

unity3d - 当 X 位置不为 0 时,为什么 Unity 按钮会停止工作?

我对 Unity 很陌生。我有一个在编辑器中完美运行的按钮。当我构建它并在 Windows 或 Mac 上运行时,该按钮停止工作。同一画布上的其他按钮工作正常。

如果我从头开始重新创建按钮,然后在每次设置后构建,似乎在移动它时它会停止工作 - 如果 X 位置为 0,它会工作,否则不会。它在运行时仍然在编辑器中工作,但是当我构建它时,它停止工作。

我不知道去哪里看看发生了什么。有任何想法吗?

0 投票
1 回答
168 浏览

xml - Unity UI Builder Vector3 缩放问题

所以在过去的几天里,我一直在尝试新的 Unity UI Builder,我遇到了以下问题:每当您简单地将 Vector3 字段添加到 uxml 并运行游戏时,Vector3 字段的缩放比例不正确。在编辑器中,它看起来像任何 Vector3 字段,就像 Unity 编辑器本身一样。下面是一个示例图像和 uxml。

Vector3 字段示例

我已经搞砸了构建器中呈现给我的每个字段,但没有任何成功。我可以取消 Vector3 字段并创建自己的字段,但这需要更多时间,因为我需要更深入地研究源代码。我希望有人可以帮助我。如果问题似乎很常见,我会将其报告给 Unity 开发人员。

提前致谢!

0 投票
1 回答
732 浏览

unity3d - 如何在 Unity 中的静态图像上创建可滚动蒙版?

假设我有一个带有面板的画布,其中包含纯白色图像。被提到的面板隐藏,有一个带有彩色图像的面板。现在让我们使用一个滚动矩形,用一些较小的面板作为内容填充它,为每个面板添加一个遮罩,然后将滚动矩形放在纯白色面板顶部的面板中。

我怎样才能使这些可滚动的小面板掩盖白色面板并在下面显示彩色面板,而白色面板和彩色面板是静态的并且不会移动?

我很清楚这样一个事实,白色面板和彩色面板必须是遮罩组件的子级,这就是问题所在,因为那样它们会滚动。

我在网上搜索了一下,但只能找到与 scrollrect 视口遮罩相关的东西,但没有将遮罩放入 scrollrect 中。

编辑:一种方法是通过使用每个小面板作为蒙版来直接屏蔽彩色面板,并使彩色面板在每个小面板内滚动 *-1 以对抗父滚动,但这似乎是一个糟糕的解决方案

感谢您的任何建议<.<