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

unity3d - Unity3D 中 OnPointerDown 与 OnBeginDrag 的恐怖

我担心单指移动代码OnPointerDownOnBeginDrag单指移动代码之间的差异。

(在使用物理光线投射器的最新 Unity 范例中:因此,最终,Unity 将正确忽略 UI 层上的触摸。

所以从 2015 年开始,你必须做的是:

  1. 忘记那些毫无意义的废话并且不起作用的废话传统Input或系统Touches

  2. 添加一个通常为 BoxCollider2D 的空游戏对象,可能比屏幕大。使图层称为“绘制”。物理设置,“画图”无交互

  3. 只需将2D 或 3D 物理光线投射器添加到相机。事件遮罩“绘制”层。

在此处输入图像描述

做一个像下面这样的脚本并穿上它。

(提示 - 不要忘记简单地添加一个EventSystem到场景中。奇怪的是,Unity 在某些情况下不会自动为您执行此操作,但 Unity 在其他情况下会自动为您执行此操作,所以如果您忘记了会很烦人!)

问题来了

OnPointerDown使用与OnBeginDrag(和匹配的结束调用)之间必须有一些细微的区别。(您可以在以下代码示例中交换操作。)

自然,Unity 对此没有提供任何指导。下面的代码完美地拒绝了杂散抓取,并且完美地忽略了您的 UI 层(感谢 Unity!终于!)但我对这两种方法之间的区别感到困惑(开始拖动 V.开始触摸)我无论如何都找不到逻辑上的区别在单元测试中介于两者之间。

答案是什么?

这是一件方便的事情。3D场景省去打字,用鲜为人知但精致的

指针当前射线投射

这是如何...注意优秀

请致电 Unity。

0 投票
1 回答
8078 浏览

unity3d - 在从内容中删除/停用子元素后,在钳制规范化位置时,ScrollRect 无法正确更新位置

这是我在找不到解决方案后必须自己解决的问题。

问题是从 ScrollRect 的内容中删除 GameObject 元素后,它不会钳制其标准化位置,直到用户再次开始移动它。这可能会导致 ScrollRect 在显示最后一个元素并从父级停用最后一个元素时显示空白空间。

  • 在用户与 ScrollRect 内容交互之前,标准化的位置值不会更新。
  • 在停用元素后,手动设置标准化位置将不起作用,因为它正在处理尚未更新的旧值(原因见上文)。
0 投票
2 回答
1458 浏览

c# - 检测 GUI 按钮上的连续触摸

下面的代码用于实现在GUI 按钮 OnClick 下运行的退格按钮功能。

它工作正常,一次单击一个按钮即可删除输入文本。问题是我想在用户连续按下 GUI 按钮时连续运行此功能,就像您的键盘退格按钮一样,但遗憾的是,它只工作一次,因为 onClick 只工作一次。是否有任何事件或技巧可用于检测 GUI 上的连续触摸以运行我想要的代码?

0 投票
1 回答
137 浏览

android - Chartboost 广告后 Unity3d UI 没有响应

我为 android unity3d 项目添加了 chartboost 插页式广告。现在广告正确加载并在我指定的场景中正确显示。当用户导航到广告网址时,问题就出现了。打开 url 后,如果用户使用 android 后退键导航回 unity3d 应用程序,所有 unity3d UI 似乎都是非交互的。

我确信此时统一不会暂停,因为进一步的 android 后退按钮会激活退出弹出窗口(另一个 UI)。只是即使这个弹出窗口也不是交互式的。

在导航到 url 之前,我正在使用年龄门。Unity3d 版本为 5.3.4,chartboost sdk 版本为 6.3.0。

有关此问题的更多信息:我尝试替换应用程序 ID 和应用程序签名来测试广告活动,问题就消失了。这只发生在我们用于交叉推广广告的应用 ID 上。这与打开交叉促销链接的 Play 商店应用程序有什么关系,因为在浏览器中打开 url 的测试广告工作正常。

0 投票
3 回答
7455 浏览

unity3d - Unity3D,从Unity.UI的面板构建PNG?

想想Canvas你可能拥有的任何 Unity.UI。

Panel想象一下那个画布上的典型。假设它恰好包含一些图像,也许是一些文本等等。

如果您可以将该面板(仅面板)转换为屏幕截图,那将非常方便:Texture2D 或 PNG。

我唯一能想到的就是在屏幕上使用ReadPixels并找出有Panel问题的区域(实际上这很棘手);并且仅当面板恰好是方形并且没有以一定角度旋转时才有效。

你会想,应该有一种方法来渲染一个面板,或者至少,一个完整的画布?我什么也找不到。

在此处输入图像描述

在此处输入图像描述

在示例中,将粉色面板设为 PNG 图像。哎哟。

(显然,如果有人有一个仅执行“整个画布”而不是一个面板的解决方案,那当然也是令人钦佩的。)

0 投票
4 回答
8533 浏览

c# - 如何使不可见的透明按钮起作用?

查看 Unity 论坛和问答网站中的一些答案,关于如何制作不可见按钮的答案不起作用,因为移除与按钮相关的图像使其不起作用。

您如何解决这个问题并在允许按钮实际工作的同时保持不可见的属性?

0 投票
4 回答
20240 浏览

c# - Unity3D UI,计算拖动项目的位置?

如今,在 Unity 中拖动 UI 元素非常容易:制作一些 UI 项。添加组件 -> 事件 ->事件触发器。放在下面的脚本上。单击以添加四个明显的触发器。你完成了。

然而。

我完全迷失了指针坐标UI 坐标之间的关系(如 RectTransform 等所示)。

DragIt下面:你到底是如何在手指下正确移动 UI 面板的?

假设您有一个大面板,有十个 UIButton 坐在面板Dragster上,按钮上有按钮。RectTransform坐标和鼠标指针有什么关系...

简而言之,您如何在下面的 DragIt() 处移动其中一个按钮?

0 投票
2 回答
6917 浏览

c# - Unity中的按钮,不使用UI?

Unity 中有没有一种方法可以在不使用 UI 层的情况下创建一个简单的 2D 按钮。我有一个有很多按钮的游戏,我不想在 UI 中制作整个应用程序。也欢迎使用更多控件:开关、滑块等。

PS。我看到了 NGUI,到目前为止我不喜欢它。还要别的吗?

0 投票
3 回答
11125 浏览

unity3d - 如何统一添加文字轮廓

如何在文本 UI 对象上统一添加文本大纲?

我想在设计器/编辑器视图中进行。我看不到任何有用的主题,我也看不到如何从设计器视图中添加它。

在此处输入图像描述

我的项目是 2d,我使用的是最新的统一版本 5.3。我想达到类似的效果。

0 投票
2 回答
12722 浏览

unity3d - 根据 Horizo​​ntalLayoutGroup 等,在 Unity3D 中更正“FlowLayoutGroup”

假设您想要 Unity UI 中的普通左冲洗流。例子:

在此处输入图像描述

在此处输入图像描述

事实上,为了回答这个问题,我已经“艰难地”实现了向左冲洗。在 Unity 自动布局中设置“垂直行组”,在顶层附加 FattieFlow,

FattieFlow将完全重新流动它向左冲洗(通过操纵线条,艰难的方式)。这是一个脚本,演示等:艰难的方式

但这是一个糟糕的解决方案。

理想情况下,从 UI.Horizo​​ntalLayoutGroupUI.VerticalLayoutGroup 开始应该可以创建

FlowLayoutGroup

它布局,向左齐平,成一个块。(实际上它应该根据需要扩展,等等,块......完全符合HorizontalLayoutGroup行为)。

看起来你必须HorizontalOrVerticalLayoutGroup从那里开始工作。

如何做到这一点(如果它不存在)?