问题标签 [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 回答
449 浏览

unity3d - 如何正确使用播放器滑动长度(以像素为单位)来移动 Unity 中的 UI 元素?

为了优化,我必须创建一个池列表(充当滚动视图)来减少实例化的游戏对象的数量。此列表使用可拖动接口(IDragHandler、IBeginDragHandler、IEndDragHandler)来实时评估玩家输入并移动/重组其 UI 元素。

它们都使用 RectTransform,我根据最后一帧的拖动长度修改它们在 UI 中的锚定位置。

但是,我无法同步我的触摸输入和项目移动。滑动时,我的列表滚动速度比我的输入快(即,当视觉滑动 130 像素时,我的列表将滚动 180 像素左右)

我测试了一遍又一遍,但是从输入收集的值,通过脚本运行并最终用于偏移 RectTransform 的 anchoredPosition 始终是相同的,每一帧。我首先认为这是由于屏幕分辨率造成的,因为滚动率似乎因移动设备而异,但标准化有关屏幕分辨率的矢量并不能解决问题。

我是否遗漏了什么,和/或是否有一种简单的方法(统一方法)来解决这种行为?

0 投票
1 回答
174 浏览

c# - 为什么图像在 Hololens 中具有不同的像素分辨率

我正在开发应用程序,其中小UI.Images的显示为32x32像素的小纹理。正确显示每个像素非常重要。

当我尝试在 Unity 中启动应用程序时,一切都很完美 - 图像由32x32像素组成。

Unity 中的图像

部署到 Hololens 时,图像质量较差,分辨率更改为16x16像素。

Hololens 中的图像

问题是如何在 Hololens 设备上获得以 32x32 像素质量显示的纹理?

0 投票
1 回答
363 浏览

c# - GridLayout 或 RectTransform 问题

现在我正在Unity3d中开发一个纸牌游戏,我正在尝试将网格布局组用于敌人的手。如果一切都是预先确定的,这可以正常工作,但是当我尝试将卡片动态添加到组时,卡片的位置和大小会发生变化。它应该是这样的: 应该发生什么

这就是实际发生的情况:( 卡存在 屏幕中央的棕色小木板是白板)

我有代码可以尝试将大小和位置缩放到应有的位置,但它似乎不起作用。

有没有人有任何想法?我完全不知道如何解决这个问题,并提前感谢您的帮助。

0 投票
1 回答
3185 浏览

c# - 在 screenSpace 中获取 UnityEngine.UI.Images 位置并计算归一化偏移量(在覆盖画布内)

手头的问题:

简化

给定一个 UnityEngine.Ui.Image 如何在 ScreenSpace 单位(如 400,300

我想我需要找到左上角的 ScreenSpace 值,然后知道图像的渲染总大小通过以像素表示的实际大小比率来缩放归一化偏移量。

图1: 图1:

图 2 显示了要使用的归一化偏移量

图 2: 存储 Rect 的示例

所以,准确地说,我需要找到我存储的 Rect 的左上角的 ScreenSpace 像素中的偏移量。

我认识到它可能是 Camera.main.ViewportToWorldPoint() 和对边界的一些引用的组合,可能通过 backgroundImage.sprite.pixelsPerUnit 缩放?

努力想象如何准确地完成这项工作。

谢谢

0 投票
0 回答
62 浏览

unity3d - 如何统一渲染文本内的占位符以允许拖放它们

我想在文本中呈现占位符,以允许对这些占位符进行拖放行为,例如此图像

在此处输入图像描述

我在这里想要的是如何在文本对象中呈现这个占位符,或者如果文本长度尚未确定,甚至如何放置它们

0 投票
1 回答
52 浏览

c# - Unity 上的 Columns/Magic Jewelry 重制版

我想使用 Unity for mobile 创建一个 Magic Jewelry 克隆(俄罗斯方块 + match 3)。到目前为止,我已经使用了 UI 元素,例如UIImage,它们用作单独的块。我创建了一个脚本,它会为盒子提供随机颜色。然后,我将三个块添加到一个名为GameObjectParent.

对于运动,我创建了另一个脚本,每秒减去GameObjectParent' 。anchoredposition.y在碰撞方面,我创建了一个透明的 UI 图像,作为地面触发器,GameObjectParent一旦进入,它就会停止移动。

我现在的问题是颜色块的匹配,更重要的是,实例化GameObjectParent. 我试过用

但它有点不合时宜。我有一个“起始块”,当前锚定在画布上(50, 810),这是生成的块应该开始的地方。但是,当我尝试这个时:

新克隆和生成GameObjectParent的不合适(21392,8712398)。我不知道发生了什么。即便如此,如果我将Instantiate方法附加到按键上,它会一次产生两个GameObjectParents,另一个稍微倾斜。

我也不知道如何匹配其他块的颜色。我尝试寻找类似的游戏概念以求统一,但无济于事。也没有教程/指南/指针等,所以我真的必须自己去发现它。对这些家伙有什么想法吗?有什么建议、指南或任何可以给我的吗?

非常感激!

0 投票
2 回答
5096 浏览

c# - 重启按钮 Unity 3d C#

我正在制作游戏。在我的游戏中,一个球在四处移动,如果它击中一个陷阱,它就会死掉,你将不得不重新开始。我的问题是:当你击中陷阱时,我想不出一种方法让按钮出现在当前场景中。我在 C# 中编写脚本。

陷阱上有 Trap_Spike 标签。

我的 RestartGame 脚本如下所示:

所以我愿意寻求任何我能得到的帮助

0 投票
2 回答
3714 浏览

c# - 无法更改 Canvas.overrideSorting 属性

非常奇怪的问题,我有一个 Canvas 对象,我正在尝试将 overrideSorting 标志设置为 true。

但是,通常这是可行的,但是如果我放置一个断点并查看代码,即使在将覆盖设置为 true 之后,它也是 false:

在此处输入图像描述

api 显示这只是一个 setter/getter。知道为什么会这样吗?

我以前使用过这段代码,它通常可以工作。

注意:这是一个嵌套画布,因此应该允许设置其排序层。

答案:正如下面的答案所述,activeInHierarchy 检查结果是错误的。

0 投票
1 回答
1447 浏览

c# - How do I hide the panel on my button click?

I'm working on the main menu for the game, where I have options to join or create a room. Under the Create button, I made an Advanced button which will open the advanced panel, giving the user more options, such as room size. I made the correct onclick() event which uses SetActive property of both the main menu panel and the advanced panel.

screenshot

The problem is, that when I click the button, the advanced menu appears but the main menu doesn't hide. I've looked at different tutorials, but they all say to do exactly what I've done.

0 投票
1 回答
1331 浏览

unity3d - 使用图集压缩 Unity sprites

我正在尝试定义导入/管理项目精灵的最佳方式。我们尝试导入地图集,但结果很不方便。我分别尝试了 Sprite Packer 导入精灵(POT/4 的倍数)。设计师无法做到这一点。所以我正在考虑使用 Unity Atlas 我不确定绘制调用和压缩到底是什么。那么,...有人可以在这件事上启发我吗?