问题标签 [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.
unity3d - Unity 2019 - 换行符 \n 不适用于 UI 文本元素
我在让换行符适用于我的 Unity UI 元素时遇到了一些困难。(Unity 2019.2.17f1 个人版)
我正在做的是:
结果:
预期输出:
现实:
我尝试过使用“\n”、“\\n”和“\r\n”。这些都没有给出预期的结果。
我使用将文本分配给组件
这种直接分配会不会有问题?我是否需要通过 toString() 推送我的字符串或以某种方式解析它以使 \n 被识别?
解决方法:我有一个解决方法。通过为我的 LanguagePack 使用 XML 文件,并在基本文件中插入(输入)换行符,我将换行符输入到我的 Unity UI 元素中。显然这并不理想。回读 Debug.Log 中的字符串不会显示最终使用了哪个换行代码:它只是根据 XML 文件中的(输入)换行符来中断字符串。
unity3d - 为什么我不能在我的函数中更新 Unity Text 的值?
我正在尝试根据发生的错误类型显示错误消息。为此,我有一个公共变量“errorMessage”,它附加到检查器中的 UI 文本。我可以在 start 函数中更改文本值,但似乎无法在 GetErrorMessage 函数中更改该值。以下是代码:
unity3d - Unity UI Canvas & SetPass 调用 & TextMeshProUGUI 顺序
我正在尝试最小化 Unity 画布中的 SetPass 调用。
考虑以下示例:
画布中的渲染是逐层进行的。渲染顺序可以如下所示:- 红色方块(+1 套传球)
- 文本“1”和黄色方块(+2 设置传球)
- 文字“2”和粉红色方块(+2 设置通行证)
- 文本“3”(+1 设置传球)
或者,它可能会好一点:
- 红色方块(+1 套传球)
- 黄色方块,然后是文本“1”(+1 设置通行证)
- 粉红色方块,然后发短信“2”和“3”(+2 设置通行证)
因此,绘图正在从默认图像材料切换到文本材料并返回。此绘图的结果将产生至少4 个绘图调用,而不是 2 个。即使只使用了 2 个材质。此示例还假设未对红色、黄色和粉色方块进行批处理。
问题:有没有办法确保文本始终绘制在顶部? 笔记:- TextMeshPro UI 材料(移动覆盖)在这里没有帮助。
- 统一 2019.3.12.f1
- 所有文本实际上都作为最后一层放置(例如,它们上面没有任何绘图)。
- 批处理有时会有所帮助。但是,复杂的 UI 可能会使用多种材质。由于我的意图是始终在所有内容上绘制文本,因此没有通用的解决方案吗?
- Z 顺序使绘图顺序变得更糟,并且材料之间的切换发生得更频繁。
unity3d - Unity:UI.Button 从脚本添加 OnClick 事件失败
在我的应用程序中,我有一个 GameObject 列表,我正在通过代码为列表中的每个 GameObject 创建一个按钮。问题是,当我通过代码添加和 onClick 事件时,按钮 onClick 列表中没有显示任何内容,当我单击按钮时没有任何反应,并且在此过程中没有任何错误。这是我的代码的样子:
我在编辑器脚本中创建了一个 GUILayout.Button 来调用“生成”方法。按钮已创建,我没有收到任何错误,但按钮中没有添加任何事件。
c# - Unity:在不移动子游戏对象的情况下更改 UI 游戏对象父级和位置
我在 Unity 中有一个 UI,我不断地将项目从一个地方移动到另一个地方。
其中一些项目是容器,我决定给每个容器自己的子游戏对象,表示并包含打开后的实际容器的内容(也就是激活游戏对象)。我选择这样做是为了更容易跟踪每个容器的实际容器。
我想要什么:更改项目的父项时(又名移动它,因为我所有的父母都有布局组),子游戏对象应该保持在相同的世界位置
我所拥有的:更改项目的父项时,子游戏对象会更改世界位置
我能做什么:我可以每次重置子游戏对象的位置,就像我第一次使用此代码实例化游戏对象时所做的一样(相关游戏对象被拉伸)
我想知道的是:Monobehavior 或 Unity 中是否有一些东西可以防止子游戏对象移动
在这里,我的房间里有一个名为“sac a dos”的袋子
现在我打开了袋子,它出现在屏幕中间
我现在在同一个地方创建了一个名为“Coffre”的胸部物品,导致袋子被放置为胸部容器子游戏对象的子项
在这里,我打开了箱子,定位在正确的位置,并显示了作为箱子容器子游戏对象的子项放置的包
这里我打开了胸部的包,由于包的位置发生了变化,导致包的子游戏对象放错了位置
unity3d - 当 X 位置不为 0 时,为什么 Unity 按钮会停止工作?
我对 Unity 很陌生。我有一个在编辑器中完美运行的按钮。当我构建它并在 Windows 或 Mac 上运行时,该按钮停止工作。同一画布上的其他按钮工作正常。
如果我从头开始重新创建按钮,然后在每次设置后构建,似乎在移动它时它会停止工作 - 如果 X 位置为 0,它会工作,否则不会。它在运行时仍然在编辑器中工作,但是当我构建它时,它停止工作。
我不知道去哪里看看发生了什么。有任何想法吗?
unity3d - 如何在 Unity 中的静态图像上创建可滚动蒙版?
假设我有一个带有面板的画布,其中包含纯白色图像。被提到的面板隐藏,有一个带有彩色图像的面板。现在让我们使用一个滚动矩形,用一些较小的面板作为内容填充它,为每个面板添加一个遮罩,然后将滚动矩形放在纯白色面板顶部的面板中。
我怎样才能使这些可滚动的小面板掩盖白色面板并在下面显示彩色面板,而白色面板和彩色面板是静态的并且不会移动?
我很清楚这样一个事实,白色面板和彩色面板必须是遮罩组件的子级,这就是问题所在,因为那样它们会滚动。
我在网上搜索了一下,但只能找到与 scrollrect 视口遮罩相关的东西,但没有将遮罩放入 scrollrect 中。
编辑:一种方法是通过使用每个小面板作为蒙版来直接屏蔽彩色面板,并使彩色面板在每个小面板内滚动 *-1 以对抗父滚动,但这似乎是一个糟糕的解决方案
感谢您的任何建议<.<