问题标签 [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 投票
1 回答
1493 浏览

unity3d - 如何在 UI 中设置相机视图特定区域

我的所有项目都在 UI 中工作。我的一个场景有 videoPlayer,我想将我的 MainCamera 设置为该特定区域。这个场景是我的录制场景,但为了录制,我必须使用画布渲染模式并且必须是“屏幕空间 - 相机”。如何将我的相机视图设置到该特定区域。我尝试了带有剔除蒙版的第二台摄像机,但没有成功,因为当摄像机渲染 UI 显示所有子对象时,videoplayer 已经是我的 UI 的子对象。

是否可以在 UI 中的任何位置显示到相机?

在此处输入图像描述

0 投票
1 回答
577 浏览

c# - FindObjectsWithTag 在 Unity 中以随机顺序带回对象?

我正在尝试进行一个级别选择,该级别选择需要尽可能少的维护,因为我打算添加更新以统一添加更多级别(Unity 场景)。

考虑到这一点,我试图让关卡选择为 Unity Build 设置中的每个关卡创建按钮,然后从预制件创建一个模板对象,它可以在其中映射它创建的按钮。

我让它大部分工作,但由于某种原因,它以错误的顺序映射按钮,我试图从下到上,Unity 似乎正在抓取 Gameobjects 是随机顺序。

这是我的代码:

buttonsHolder变量在编辑器中设置并且是画布。这buttonPrefab是我在编辑器中设置的 TextMeshPro 按钮预制件,它有level Buttons标签和一个简单的脚本,点击时会加载指定的场景。这buttonSlotsPrefab是我在编辑器中设置的一个游戏对象预制件,它有Button Placement Slot标签,它包含 8 个其他空游戏对象,每个都有level slot标签,我使用这 8 个对象作为运行时按钮应该放置在哪里的指南。

同样,我的目标是从下到上放置按钮,但是 Unity 在运行时会无缘无故地吐出这个:

对于某些变量的命名约定,我感到很抱歉,我已经连续两天感到疲倦和压力了。一旦我开始工作,我会解决这些问题。

经过进一步测试,我注意到当我第一次创建时buttonSlotPrefab,一切正常,但是,在重新启动 Unity(不更改任何文件)后,当我在重新启动后再次运行游戏时,顺序会随机化。这可能是 Unity 引擎中的错误吗?

0 投票
1 回答
131 浏览

c# - 尝试在按下 UI 按钮时增加协程中的变量

我正在为孩子们制作一个简单的问答游戏。我在其中从 json 文件中提取问题。每个问题都有一个 10 秒的计时器,如果按下按钮,则会显示下一个问题。我面临的问题是我似乎无法找到控制“yield return waitforseconds()”的方法。我尝试了多种方法,但似乎都不起作用,如果我尝试更改 waitforseconds() 中的值,它要么太快地跳过下一个问题,要么如果尝试增加 questionCounter 变量,它会卡在同一个问题上。我一直在寻找一段时间,但我找不到任何东西。我有一个明天的最后期限,我真的可以使用一些帮助。

现在我想你,如果我在按钮中调用协程,协程将再次重新启动,但似乎没有其他工作。如果我的按钮被按下与否,我会怎么做?请我真的需要一些帮助。

0 投票
0 回答
272 浏览

unity3d - Sprite 渲染器和 UI 图像缩放

我正在尝试将 Unity UI Canvas 中的网格大小与另一个由精灵渲染器组成的网格相匹配。

UI 单元格网格

Sprite 渲染器网格

我想做的是将 UI Grid 设置在 Sprite Renderer 网格之上。通过将 UI Grid 和 Sprite Renderer 的父位置设置为 Vector3.zero,我能够在 9:16 中实现这一点(我的画布缩放器设置为 1600-900,宽度/高度匹配为 0.5)。

但是,当我更改为不同的纵横比(例如 9:18)时,我将 UI Grid 画布中的 Canvas Scaler 更改为 1800-900,宽度和高度匹配为 0.5,以用于其他 UI 用途。之后 2 个网格不再对齐。(即使它们的位置向量设置为零)。我知道它的渲染位置有所不同,所以无论如何我可以相对于 UI 网格缩放我的 Sprite Renderer 网格吗?

另外,我使用 2 个摄像头分别渲染 UI 画布和精灵渲染器网格。我假设我必须更改渲染精灵渲染器网格的相机的正交大小?但它背后的计算是什么?

0 投票
1 回答
146 浏览

unity3d - 在unity3d的InputField中按下大ENTER时如何查看插入符号?

使用原始 InputField 时我有一个奇怪的行为。我的问题是下一个。我在键盘上有 2 个 ENTER 按钮。第一个是 BIG ENTER(1),第二个是 NUM PAD ENTER(2)。 在此处输入图像描述 我将原始的统一 InputField(或 InputField Text Mesh Pro 相同的行为)放置到 UI。当我按 BIG ENTER 插入符号消失时,我必须按下鼠标左键来处理下一行。 在此处输入图像描述 如何在像 NUM PAD ENTER 这样的 InputField 中设置为 BIG ENTER 相同的行为?

0 投票
1 回答
203 浏览

unity3d - 物理相机视口应根据 UI 调整以适应不同的分辨率

我在场景中有一个物理相机,可以渲染 3D 场景。3D 场景在顶部 UI 栏和底部 UI 栏之间渲染,并已正确设置为参考分辨率 720 x 1280。

因此,问题是当分辨率发生变化时,UI 会针对该特定分辨率进行正确设置。但是在 2 个 UI 部分之间渲染的 3D 场景并没有正确地位于它们之间。为了便于理解,我附上了 2 张参考图片。

下面给出的图像基于参考分辨率,并且 3D 场景在 2 个 UI 部分之间正确匹配。

在此处输入图像描述

下面给出的图像是另一种分辨率,其中 UI 会相应地进行自我调整。但是 3D 场景不会,即相机应该移动以适应 UI 之间的 3D 场景。

在此处输入图像描述

那么,有什么方法可以根据分辨率移动相机,以便它在不同宽高比的 UI 之间正确适配。

谢谢你。

0 投票
1 回答
658 浏览

unity3d - Unity:在 UI Scroll Rect 中添加不同的滚动速度

在 Unity 中,我创建了一个 UI 滚动矩形对象。该对象有两个子对象,一个具有不同按钮的按钮处理程序和一个背景。

使用它,按钮和背景都以相同的速度滚动。我希望按钮比背景滚动得更快,从而为滚动创建深度效果。

我在 Objects 或 Scroll Rect 中找不到任何选项。有任何想法吗?

0 投票
1 回答
366 浏览

unity3d - Unity-Press Button 缓慢增加数字

我正在尝试做一些类似于 GTA 副城或圣安地列斯的旧 GTA 风格的货币系统。因此,当您添加或获得资金时,数字不会直接跳转到结果。它会慢慢增加,直到增加的价值完成。

我想通过点击按钮来做到这一点,所以一个按钮会增加 100 美元,另一个按钮会减去 100 美元,依此类推。

这些按钮似乎与 update 和 Time.deltatime 配合得不好。任何帮助都会很棒。谢谢!

0 投票
2 回答
4836 浏览

unity3d - How to mask a UI.RawImage in Unity?

In Unity UI, I have an ordinary RawImage

enter image description here

(It's just sitting on a Panel)

I have a png, mask.png which is just a white shape on transparent.

How do you mask the RawImage ?

I have tried Mask, SpriteMask in many ways and it just won't work.

Even RectMask2D would be fine (to mask to a square shape) but it just doesn't seem to work?

  • Should I use Mask or SpriteMask

  • If so, do you perhaps have to / have to not set a Material, on the mask? On the RawImage?

  • I assume the Mask game object should be the parent of the RawImage, but??

What is the secret ?

0 投票
1 回答
679 浏览

c# - Unity 无法识别正在按下哪个按钮

我一直在尝试通过键盘输入来选择我的游戏中的选项。我可以突出显示它们,但我不知道如何让 Unity 识别正在按下哪些按钮以执行特定操作,它给了NullReferenceException我代码的第 28 行。有问题的脚本是BattleSystem脚本,它附加到事件系统,battleFirstButton是战斗按钮,enterKey是“Z”。

在此处输入图像描述

四个按钮的 OnClick() 函数

在此处输入图像描述