【问题标题】:Unity 2018.1.3f1 UI flickering issueUnity 2018.1.3f1 UI 闪烁问题
【发布时间】:2018-10-30 06:04:47
【问题描述】:

自从我们将 Unity 版本从 Unity 5.4.3f1 更新到 Unity 2018.1.3f1 后,我们的团队一直遇到 UI 闪烁问题。它仅出现在构建(Android/iOS)上,但在编辑器上不会出现闪烁。注意:我们的 UI 的分层已经设置好了。

我们尝试过但没用的方法:

  • 将主摄像头的透明度排序模式从默认更改为正交。
  • 打开/关闭画布组件而不是游戏对象本身。
  • 在预制件的 z 轴上添加了一些值(例如 0.05、0.1、1 等)

有人遇到过这种问题吗?如果是这样,请告诉我们您对此类问题的修复(或可能的修复)。任何答案将不胜感激。

【问题讨论】:

  • 看起来您需要双缓冲并启用 vsync
  • 会试试那个。谢谢@EmrahSüngü
  • 不知道您是否设法找出问题所在?

标签: c# android ios user-interface unity3d


【解决方案1】:

您是否尝试过实例化 UI,例如您可以使用协程进行测试,速度较慢。因此,与其在一帧中实例化 UI,例如在一个函数中,不如尝试使用协程。

IEnumerator PrepareUI()
{
   //Instantiate UI - 1
   yield return new WaitForEndOfFrame();
   //Instantiate UI - 2
   yield return new WaitForEndOfFrame();
}

这对我有用,在我尝试使用它而不是帧结束之前,我最终得到了WaitForSeconds(float) 并且显示出显着的改进。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题。确保仅在需要时更新 UI,因此不要在 Update() 上放置任何代码,并且仅在事件上更改 UI 元素。 例如,如果您有分值,则不要在Update 函数中设置scoreUI.text = score,而是可以创建一个属性来更新scoreUI,如果分数发生变化。 您的问题可能是您在 Update() 上激活或停用 UI 元素,因此请找到另一种方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-04
      • 2016-03-06
      • 2012-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多