问题标签 [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.
c# - 在画布中的随机位置生成图像
我有一个画布,里面有一个面板。我想在面板内的随机位置(屏幕上)生成不同的图像 UI 对象。我采用了面板的 x 和 y 最小和最大限制以生成随机位置(使用这些限制),但问题是对象没有在所需位置实例化。这是我的代码。
我检查了实例化的对象位置远离给定的随机范围位置。我做错了什么?我认为它是矩形变换,所以我必须以不同的方式设置它的位置。
android - Unity 2017:画布在构建时不渲染
我已经使用统一很长一段时间了。但我下载了最新的version 2017.2.1f1
并开始了一个新项目。游戏和场景视图中的一切都运行良好。在编辑器中玩游戏也可以正常工作。但是,当我将它构建到我的 android 设备(API 级别 19)时。画布和所有 UI 元素都不可见。画布的渲染模式设置为 Screen Space Camera
,UI 比例设置为Scale with screen size
。我试着环顾四周,但找不到适用于我的案例的修复程序。任何帮助都感激不尽。
请注意,我正在开发 2D 游戏,因此环境设置为 2D,如果这有任何帮助
unity3d - 如何显示每个玩家的得分 [网络管理员]
我正在开发基于内置网络管理器(基于这个伟大的教程https://unity3d.com/learn/tutorials/s/multiplayer-networking)的简单多人(到目前为止是 2 人)游戏,我绝对没有想法如何解决我的问题。我发现的每个关于评分系统的教程都专注于本地多人游戏(不使用网络管理器)。
我的问题是:如果我将玩家的分数存储在他们的玩家预制实例中(作为字段),如何以 [Player1Score : Player2Score] 之类的格式在每个玩家的 UI 上显示两个玩家的分数。我想以任何方式显示分数,作为单独的或作为一个附加字符串(UI 文本)。
欢迎任何帮助和想法!干杯!
unity3d - 在键盘移动上方显示输入字段
移动设备上常见的 ux 案例是当键盘出现时让视图神奇地滚动,以便输入字段在键盘上方保持可见
Xamarin、ios 或 android 等移动 sdk 将本机提供该功能。
Unity中会有这样的命令吗?
我可以考虑一个默认位置并使画布/滚动视图相应地移动,但也许已经有一些东西了。
unity3d - 阻止光线投射通过 UI 按钮
如何阻止 RayCast 通过 UI 按钮并击中按钮后面的对撞机?
我尝试过的一些事情:
- 对撞机覆盖了整个视图,但它位于 (0,0,2)
- 该按钮处于打开状态 (0,0,-5),因此从相机的角度来看位于对撞机的前面。
- 我注意到 Canvas 上有一个 Graphic Raycaster 组件,我将其设置为 Blocking Objects: All、Blocking Mask: Everything 和 Ignore Reverse Graphics: True(默认为 true)
所以每次我点击按钮时,它都会执行事件,但我的玩家最终会在按钮后面,因为 RayCast 也击中了按钮后面的另一个碰撞器。
c# - RectTransform 不会定位
我正在尝试移动一个 RectTransform,在单击 UI 对象时触发。当我在 Update、LateUpdate 或 Animation 中设置位置时,RectTransform 会按预期移动。当我尝试设置位置/锚定位置/等时。在 OnClick 回调中,什么都没有发生(当我查询它时变量没有改变)。
我有以下游戏板层次结构:
屏幕空间叠加模式中的画布(全尺寸)
- 容器:RectTransform 对象
- MoveObj:带有 RectTransforms 和画布渲染器的游戏对象
容器矩形:
MoveObj 矩形:
我正在尝试将 MoveObjs 移动到根画布的中心,同时将容器保持为父级。我试过设置位置、localPosition、anchoredPosition,但它们什么也没做。设置该属性后,当我查询它时,值没有改变。
SetInsetAndSizeFromParentEdge 确实改变了矩形的大小,但根本不移动位置。
MoveObj 是从预制件中实例化的:
如果我使用 Animator,并为 anchoredPosition 和 position 属性设置动画,对象会完全按照我的意愿移动。
我在代码中设置的唯一生效的属性是,如果我设置了枢轴,它确实会移动。现在一切都很好,但是我发现的大多数信息都说移动位置至少应该做一些事情,而动画的成功让我认为这是正确的方法。在我发疯之前,为什么在事件处理程序中定位设置不正确,但在更新中有效?
c# - LayoutRebuilder.ForceRebuildLayoutImmediate not rebuilding HorizontalLayoutGroup Unity
I'm working on a component where I need the correct anchored positions of children of a HorizontalLayoutGroup in the Start function.
I can force the HorizontalLayoutGroup to rebuild by doing:
But it seems odd that doing:
Does not work, because as far as I can tell from the source code LayoutRebuilder.ForceRebuildLayoutImmediate is calling the same functions:
And the whole purpose of it seems to be to rebuild layouts: Wiki Entry
Forces an immediate rebuild of the layout element and child layout elements affected by the calculations.
So yeah I don't really have a problem with this necessarily I'm just wondering why it doesn't work as one would expect it to. If anyone has more info on this I would be thrilled to hear it!
Links to the source code for things:
unity3d - 删除键盘输入字段 Unity
目前我正在获得这种键盘,用于在 Android 和 iOS 平台上提供输入。请看下图:
我的意思是输入字段与键盘保持连接以进行预览。我想删除这个。为此,我浏览了这个线程: Removing Android keyboard additional input field?
在此之后,我添加了以下代码行:
输出仍然没有变化,请给我一些指导。
编辑:如何删除与键盘连接的 InputBox?
unity3d - 我应该使用多个并行场景吗?
我正在开发一个基于统一的桌面应用程序,可以说它看起来像一个视频编辑器。
我正在考虑为预览窗口使用一个场景,为它周围的整个 UI 使用另一个场景,以便稍后我可以在某种程度上将预览场景用于链接到该应用程序的另一个应用程序。
这种方法的优点/缺点是什么?