问题标签 [unity3d-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 投票
2 回答
548 浏览

user-interface - 在 Unity3D 中激活/停用 UI 组件的最佳做法是什么?

我正在为我的 Unity3D 游戏制作 UI 并激活/停用 UI 组件以显示或隐藏它们,这可以工作但速度很慢。第一次激活 UI 组件时,它比之后特别慢。是否有关于如何隐藏/显示 UI 的最佳实践?

0 投票
1 回答
1247 浏览

unity3d - Unity3D UGUI Canvas Gizmo

是否可以在场景视图中绘制 Gizmo ( https://docs.unity3d.com/ScriptReference/Gizmos.html )..但覆盖 UGUI 画布(在场景视图内)而不是特别是在世界空间中?我希望在场景视图中更全面地勾勒出一些 UI 元素,而不是那里显示的香草 Unity RectTransform。

我们查看了使用https://docs.unity3d.com/ScriptReference/Gizmos.DrawGUITexture.html但这似乎回退到旧式 UI 布局并且没有考虑 UI 画布可以是多种不同的渲染模式调成。

0 投票
0 回答
69 浏览

android - 恒定物理尺寸模式下新 UI 的 Sprite 尺寸

我想为 xxhdpi Android 和其他设备提供高清版本。当然,我需要使所有精灵都具有最小的尺寸,以便显示带有任何人工制品的图形。因此,我尝试检测 UI 精灵的首选尺寸。我Canvasconstant physical size模式。
那么,我应该遵循谷歌的建议吗?即48 units (UI size units) = 144 pixels。还是有其他推荐的尺寸?
PS对不起,我在 Unity3D 中是新手。只是我试图了解如何计算某些 UI 大小的首选精灵像素大小。

0 投票
1 回答
563 浏览

c# - Unity3D,3D 和 UI Raycaster 是否同时响应触摸?

这些天在 Unity 中,您使用 raycaster 非常容易检测到对象的触摸......

因此,关于您的 UI 层,它正确地忽略了 UI 层上的触摸等等。

如果您希望发生以下情况怎么办,

您想收集(同时,在同一帧中,两者)在 3D 对象和 UI 项目上的触摸?

(想象一下,比如说,屏幕上有几个透明的 UI 按钮;还有普通的 3D 机器人在四处奔跑。用户点击屏幕上的一个点,那里有一个 UI 按钮,“下方”是一个机器人。机器人的两个上面的脚本和按钮应该响应。)

你会怎么做?我广泛尝试使用单独的相机、单独EventSystem的、调整图层、遮挡蒙版等。我找不到办法。

如何在 Unity 中执行此操作?

0 投票
2 回答
4671 浏览

c# - 按钮“OnSelect”在 Unity.UI Canvas 情况下不起作用

我有三个按钮,当您点击一个按钮时,会出现一个带有文本的面板。

问题是当我附加脚本时,没有任何反应。“点击”已注册,但面板从未出现。

我的脚本附加到每个按钮,是这样的:

我可能必须对面板做其他事情,但我无法弄清楚。

0 投票
3 回答
41802 浏览

unity3d - 如何计算 RectTransform 中的 sizeDelta?

我编写了自定义布局所需的自定义内容装配器。所以,当锚点不同时我需要控制RectTransform.sizeDelta属性,但我无法显示这个值。
我不需要Unity3D API参考,我阅读了它并没有任何内容,因为它只说:

此 RectTransform 的大小相对于锚点之间的距离。如果锚点在一起,sizeDelta 与 size 相同。如果锚点位于父对象的四个角中,则 sizeDelta 是矩形与其父对象相比的大小。

谁能用普通语言解释它是什么意思?当锚点不同时,如何手动计算?

0 投票
4 回答
3851 浏览

user-interface - 下拉选择的选项未在统一 UI 中显示

我有 Unity UI 的下拉菜单,它有一个选项。它的第一个选项被选中,但我不知道为什么它选择的选项没有显示。

在此处输入图像描述 在此处输入图像描述

0 投票
1 回答
3213 浏览

c# - 如何使自定义 Unity LayoutGroup 扩展以适应内容

在需要垂直调整大小以包含其子项的情况下,我正在尝试使用此问题的答案(也在GitHub 上)中描​​述的自定义 FlowLayoutGroup。

我的设置如下所示:

  • 可滚动矩形
    • 具有应垂直调整大小以适合子级的 VerticalLayoutGroup comp(父 scrollrect 的内容)的面板:
      • 带有 FlowLayoutGroup 的面板应垂直调整大小以适合子级
      • 带有 FlowLayoutGroup (2) 的面板也必须调整大小...
      • ETC...

我在 FlowLayoutGroup 中添加了一个内容大小调整器,调整了垂直组的布局子大小控件,但没有成功。

用户可以在应用程序运行时添加和删除组的子项,我希望 UI 做出响应,因此无法提前设置所有内容的高度。

我还查看了统一源代码,试图弄清楚如何自己将其写入组件中。这看起来是最好的选择,但由于我是 Unity 和 C# 的新手,所以我花了相当多的时间。希望有人已经解决了类似的问题。

一切都按预期/预期运行,除了 LayoutGroups 调整大小以垂直适应其子项的缺失行为。

我怎样才能做到这一点?

0 投票
1 回答
15 浏览

c# - EventSystem 误解了按钮点击

我在单击 UI 按钮时遇到问题。在此视频中,您可以看到一个问题。视频

0 投票
1 回答
1141 浏览

unity3d - 如何使 TextMeshPro 输入字段根据其文本调整其光线投射区域?

我正在为我的游戏创建 UI。我已经创建了简单的元素,例如动画按钮和多选项开关,但是我在输入字段方面遇到了问题。

这就是它现在的样子。

在此处输入图像描述


我的目标

Raycast 接收区域应与文本大小相同。

文本轴应该是 (0.5, 0.5),因为动画改变了它的比例。当长文本不在中心缩放时,这并不好。Raycast 区域不应受比例影响。


我的尝试

在此处输入图像描述

input-32有一个灵活宽度设置为 1 的布局元素,因此它应该填充所有可用空间。文本区域有一个水平布局组(见图)。里面有一个“灵活宽度”设置为 1 的垫片、一个占位符和一个文本。

它现在可以工作:

在此处输入图像描述

选择在错误的位置,文本有时会不受控制地向左飞。似乎输入字段不希望文本和占位符以外的元素出现在这里并且就像它们不存在一样工作。

OK,那就直接把垫片放在input-32下面。但是,行为完全相同。

当我将Content Size Fitter添加到文本元素时,我发现该字段中断。但是如何控制它的宽度,取决于哪个光线投射?可能我不应该调整文本的大小而是覆盖它的光线投射,但我不知道如何。


我不得不承认,我不明白 TextMeshPro 输入字段在低级别是如何工作的,这就是我的尝试失败的原因。你能帮我或至少给个提示吗?