URP Shader Graph 着色器时间节点在某些情况下不起作用

URP Shader Graph shaders time node doesn't work in certain situations

我有几个着色器使用时间节点为我的移动游戏的某些 UI 元素设置动画。 在某些情况下(我无法重现),着色器将停留在特定时间而不是动画。

例如,闪耀着色器可能卡在中间闪耀。

需要注意的一些重要事项:

  1. Time.timeScale 是 1 - 我所有使用缩放增量时间的补间都正常工作
  2. 发生这种情况时所有使用活动场景中时间节点的着色器将“及时冻结”
  3. 这仅在实际 Android 设备上重现(iOS 未测试)
  4. 所述着色器中影响时间的所有参数均为正数,有效数字
  5. 没有错误或警告
  6. 当我从主菜单场景过渡到游戏场景时,基于时间的着色器将正常工作 - 当我回到主场景时,它会再次再现(显然它是特定的东西)
  7. 运行 在带有 URP 和 Shader Graph 7.5.1 的 Unity 2019.4.11f1 上,但它确实在 Unity/URP 的旧版本中重现了

样本着色器 - 预览实际上看起来与问题完全一样,因为它会在冻结时出现在游戏中:

对于偶然发现这个问题的任何迷失的灵魂(虽然我怀疑它是设计使然,因为它看起来像是一个错误)。

问题是在没有相机的场景中,着色器中的时间不会更新。 相机不必渲染任何东西;它只需要存在。

我的主菜单是纯 UI 元素,没有相机;在场景中添加相机解决了这个问题。

请务必注意,此行为只会在您构建到 Android 设备后发生;不确定它是否在其他平台上重现。