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

c# - 画布上的 Linerenderer 无法正确显示

我目前正在开发一款游戏,我遇到了以下问题:

我想在我的 Canvas 上绘制一些结果作为图表,到目前为止,我发现我的 Canvas 需要在 Screenspace-Camera 中才能工作,因为 LineRenderer 是一个 3D 对象,将被覆盖屏幕空间覆盖,否则。

我实际上已经让它与它一起工作,如下所示: 画布前的 LineRenderer

但是我遇到的问题是,如果我增加屏幕尺寸,例如通过拉伸 GameView 或最大化它,这条线就会消失,即使它与我的所有 UI 元素相比具有负 z,因此出现在它们的前面编辑器视图:

完整编辑器窗口的屏幕截图

如果我尝试通过相对于屏幕尺寸应用更大的负 z 值来解决此问题,则线条会失真,因为它们越来越接近相机,并且将它们的对齐方式从视图更改为 z 轴也无济于事.

更令人困惑的是,这种情况首先发生在绘制得较低(较小 y 值)的线条上,这意味着我的图表底部的线条会更早消失。我真的不知道为什么会这样。任何帮助,将不胜感激。

0 投票
0 回答
858 浏览

unity3d - 为什么画布仍在重建和重新批处理其数据?

我想避免在显示/隐藏 UI 元素时发生重建/重新批处理过程,所以我遵循了HERE的建议:解决方法是将要显示/隐藏的 UI 放置在它自己的 Canvas 上......并且......启用/禁用此对象上的 Canvas 组件。

通过将 5000 个图像放置在单独的空画布下进行测试,并且仅使用此脚本启用/禁用该画布父游戏对象上的画布组件:

问题:调用 EnableDisableSubCanvas() 仍会在 UGUI.Rendering.UpdateBatches 调用上产生较大的峰值(~100 毫秒)。为什么会发生这种情况或我做错了什么?

0 投票
0 回答
194 浏览

unity3d - 如何在鼠标悬停统一 UI 上放大扇形菜单(仅在菜单的饼形上,而不是方形图像上)?

我正在尝试在 Unity 中创建一个风扇菜单。目前,我有一个粗略的扇形图,我想实现一些基本脚本,例如悬停放大和点击调用函数。我尝试使用 OnPointerEnter,但它触发了方形图像的形状。我希望菜单选项(不是矩形)仅在悬停时放大,而不是在其侧面的空白处。

这会触发,但不是在我的粉丝菜单项的形状上,而是在图像本身的正方形中。我尝试使用对撞机而不是 OnPointer 事件来实现 OnMouse 事件,但没有触发任何事情,从这里我读到它们不再为 Unity 中的 UI 实现。有没有人对解决这个问题的好方法有任何想法,以及解决方案单个粗饼图菜单项的示例 单个粗饼图菜单项的示例

0 投票
0 回答
41 浏览

c# - 极其简单的线性搜索不适用于 Android 和 iOS

我是 C# 的初学者,甚至是 Unity 的初学者。我试图在这里寻找很多东西,但没有找到解决问题的东西。这似乎是一个超级简单的线性搜索,但它不适用于 iOS 和 Android。

当我单击顶部的播放按钮时,它仅适用于我的 Mac。我一点头绪都没有。仅供参考,数组长度为 119。

我有一个JSON,结构如下:

我已经使用 C# 类对其进行了解析,

然后在 start() 方法中,我将它放在一个名为 x 的数组中:

JsonHelper 如下,它只是一个反序列化 JSON 数组的辅助类:

我想要做的是通过线性搜索(一个非常简单的)通过将TextMeshPro文本与x(数组)的符号属性匹配来搜索ChemElements []的数组x。如果找到符号,我想为 ElPreview 的 alpha 设置一个新值

eleClicked() 是一个 onclick 函数。

正如我之前所说,在统一中,它按预期运行。它将 alpha 值更改为 1,使其显示(以前为 0)。

而在 iOS 和 Android 上却没有。我假设的 alpha 值仍然是 0,因为它仍然是透明的。

我试图删除线性搜索,只更改 alpha 值,它适用于 iOS 和 Android,因此我知道问题出在线性搜索代码中。

非常感谢!

0 投票
0 回答
1446 浏览

unity3d - 如何使 TextMeshPro 输入字段在布局中工作?

我在尝试使用 Unity 的 Text Mesh Pro 输入字段 UI 元素时遇到了奇怪的问题。我实际上不知道布局是否导致它。

我有一个滚动视图,它使用垂直布局来组织内容对象下的对象。滚动视图中的每个对象内部都有一个水平布局,可以容纳两个相邻的输入字段,因此基本上滚动视图有两列输入字段。

但是,我从输入字段中得到了奇怪的行为。当我开始输入时,它不会显示输入,直到我输入两个字符(即我输入'0',它什么也不显示,然后我输入另一个'0',它会显示'00')。此外,我有一些代码可以自动使用默认值填充输入字段,下面是我如何执行此操作的示例:

但是这些值永远不会出现,但我可以通过在游戏运行时检查检查器窗口来确认它们正在被填充。在 TMP_Input Field 组件下,“文本”字段显示正确的值,但我在输入框中看不到它。

我没有收到任何错误或警告。

是滚动视图还是分层布局混淆了输入字段的脚本?还有什么?感谢任何建议、帮助和问题。

编辑:
我发现它可能与将对象添加到滚动视图的方式有关。滚动视图的内容(具有垂直布局)在运行时获取添加到其中的对象。这是通过实例化预制件来完成的。

这个预制对象有水平布局和两个孩子,每个孩子都有一个输入字段。如果我在运行游戏之前将此预制件添加到内容窗口,它可以正常工作(预计我的预期代码都不起作用,因为它依赖于模块化添加和删除这些对象)但我可以提供输入并且它看起来很好。

解决方法:我不会认为这是一个解决方案,但这是我现在要解决的问题。使用“普通”输入字段而不是 Text Mesh Pro 不会产生相同的问题并且可以按预期工作。

0 投票
1 回答
59 浏览

c# - 如果它是真的,我如何通过按钮激活一个方法并在更新方法中调用它?

我知道这个问题有点长,并且有多个问题,但无法完成。我在设置菜单上有一个按钮,当单击它时,它应该激活脚本中的一个方法,如果它处于活动状态,我需要在 Update() 方法中调用该方法。

所以我有一个“主要”游戏对象需要管理这个事件和它上面的“测试”脚本。“TebsSkipButton”按钮位于“设置”游戏对象上,该按钮应激活“测试”脚本中的“TEBS”方法。

然后我需要在“测试”脚本的 Update() 方法中检查“TEBS”方法是否处于活动状态。如果是真的,该方法应该运行。

我还没有创建脚本来附加到按钮并激活“测试”脚本的方法。

这是我试图在“测试”脚本上写的东西;

我也在使用 Ink 插件来运行故事,但它与问题无关。

提前致谢。

0 投票
1 回答
1458 浏览

c# - 无论是否注册了 OnPointerDown,如何让事件 onPointerUp 注册

目前,我正在开发一款手机游戏,用户将在环境中单击并拖动某些东西,如果他们将其拖动到中心,它将打开一个粉丝菜单,然后他们可以在其中选择一个选项。我遇到的问题是,当菜单打开时,用户的手指仍然会被按下,如果他们将手指拖到菜单项上然后松开,则不会注册 OnPointerUp 事件。

强迫用户放开屏幕并按下菜单项会破坏我游戏这部分的用户体验,因为它应该是从拖动元素的平滑过渡。

如果我最初按下我的一个 UI 元素,然后将我的手指移到另一个手指然后放开,则该事件会注册,但它不适用于源自我的按钮外部的 OnPointerDown。

0 投票
1 回答
266 浏览

unity3d - 如何将对象从世界画布动画到覆盖画布

我的游戏顶部有一个栏,上面有一些对象和游戏分数,非常基本和常见。我有一些硬币(类似于马里奥的游戏),我想将它们从世界画布动画到位于画布覆盖层中的栏顶部。

按照设计,Canvas Overlay 是在相机之后绘制的,所以它在我的世界画布之上,所以动画发生在正确的位置,但对象通过我的菜单后面,而不是在它的顶部

我怎样才能做到这一点?要将我的世界画布中的对象动画到画布叠加层中的对象顶部?

这是我的“BAR”,后面的蓝色大四边形相当于我的硬币,我希望将它画在小条的顶部。

在此处输入图像描述

这是检查器,大四边形是对象“PieceOfShapeIClone”,它前面的条是“ShapeI”对象。由于“PieceOfShapeIClone”在下方,它应该呈现在之前的对象之上。

在此处输入图像描述

0 投票
1 回答
336 浏览

c# - 游戏对象在 OnDrag 期间消失

我有一个主要基于本教程的库存系统,我目前正在修改它。 OnBeginDrag并按OnEndDrag预期工作,但是OnDrag,虽然不断更新项目的位置,但不显示项目。它在 期间消失OnDrag,并在它被放入新插槽后重新出现。

这是我的层次结构:

统一层次结构

值得注意的是两台相机。据我所知, DungeonGroup(和DungeonUICanvas)使用。DungeonCameraDungeonGroup直到最近,还是一个完全不同的场景。OnDrag在我整合场景之前按预期工作,让我认为相机问题可能是罪魁祸首。)

这是我目前正在使用的代码:

0 投票
1 回答
53 浏览

image - 在 Unity Canvas 中编译后如何修复闪亮的按钮问题

我在 2D 游戏的画布中使用了一些简单的按钮,没有灯光,或者我没有通过代码对按钮的亮度做任何事情。按钮通常在场景视图中显示,但这些按钮在游戏视图中就像在它们上放灯一样发光。这是什么原因?我该如何解决?你可以在下面的图片中看到我的意思。

https://imgur.com/g0sQujE

我检查了按钮的图像属性和相机渲染设置,但没有找到任何东西。