【问题标题】:Unity UI lags and freezesUnity UI 滞后和冻结
【发布时间】:2021-10-20 11:15:52
【问题描述】:

我只有画布的主菜单场景(没有其他对象,甚至没有相机)。通过按某些按钮,我可以打开和关闭不同的菜单和窗口,但这会导致延迟甚至冻结游戏。没有实时执行某些操作的脚本(如更新或协程),甚至没有活动动画或粒子系统,所以,我猜,问题出在 UI 本身。通过遵循优化建议,我对大多数 UI 元素禁用了“光线投射目标”并划分了画布(每个画布的渲染模式设置为叠加,禁用像素完美),但它根本没有帮助。为了测试,我将导致冻结的窗口(它仅包含 2 个图像和 12 个按钮)移动到分离画布,启用所有画布的对象,但禁用 Canvas 和 Graphic Raycaster 组件 - 并且游戏在开始时冻结。当禁用几个菜单对象(不是冻结窗口)时,游戏停止冻结,但滞后并没有消失。该游戏是为 Android 构建的,所有延迟都只发生在那里。我还能做什么?

问题在于渲染,尽管我在场景中没有 3d 对象,但分析器会在随机时刻显示大量三角形和顶点(480 和 1k)。

【问题讨论】:

  • 代码中的大部分内容
  • 请提供足够的代码,以便其他人更好地理解或重现问题。
  • 480 和 1k 并不是一个很大的数字。我建议您截取 Profiler 的屏幕截图并与我们分享。
  • 我禁用了具有三个子画布的最复杂菜单之一,结果:CPU usageRender。然后启用它并禁用不太复杂的那个,然后游戏就冻结了。 Here is 坠机时刻发生了什么。最后一个,spike,当我打开一个窗口时(一张没有精灵的全屏图像,一张 200x200 的图像,小文本和按钮)。 Scripts 之前的秒杀。

标签: android unity3d user-interface


【解决方案1】:

好的,我发现了一个问题 - 是字体。游戏在文本上花费了 0.6 Gb 的内存,我猜在崩溃的时候甚至更多。我已切换到默认 Arial 字体,但问题仍然存在。只有将字体设置为 None 才能修复崩溃和滞后,但这不是我的选择。需要以某种方式优化这些文本。

【讨论】:

  • 这更适合作为对原始帖子的评论或对其进行编辑。
猜你喜欢
  • 2022-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-28
  • 1970-01-01
相关资源
最近更新 更多