当前位置:   article > 正文

[学习记录] Unity设置游戏暂停时继续播放UI动画的方法_unity暂停游戏时ui动画

unity暂停游戏时ui动画


缘由

在学习Unity的过程中,有一个需求,希望在暂停游戏内容的同时,调出UI界面,UI界面有一个动画会在UI的endUI.SetActive(ture);时进行播放.
但是当我设置Time.timeScale = 0f;后,动画并没有进行播放.
发现设置timeScale后,动画的播放也会收到影响.
于是开始找解决方法.

其他参考

以下是我找到的部分解决方法:
使用realtimeSinceStartup来获得时间用以控制UI位置
使用realtimeSinceStartup重写的一份可以在暂停时间时播刚体动画的Play函数

我的解决方法

如果您把上面第二个链接的所有回复看完了,您会发现最后那位老哥说要修改 AnimatorUpdate Mode 属性,将其设置为 Unscaled Time.
事实上,我最终的解决方式也是这样的.

原理

官方文档

  • Update Mode
    此选项允许您选择 Animator 何时更新以及应使用哪个时间标度。
    - Normal
    Animator 与 Update 调用同步更新,Animator 的速度与当前时间标度匹配。如果时间标度变慢,动画将通过减速来匹配。
    - Animate Physics
    Animator 与 FixedUpdate 调用同步更新(即,与物理系统步调一致)。如果要对具有物理交互的对象(例如可四处推动刚体对象的角色)的运动进行动画化,应使用此模式。
    - Unscaled Time
    Animator 与 Update 调用同步更新,但是 Animator 的速度忽略当前时间标度而不顾一切以 100% 速度进行动画化。此选项可用于以正常速度对 GUI 系统进行动画化,同时将修改的时间标度用于特效或暂停游戏。

简单理解

Normal

就是一个普通电影或者动画片,当我们按下暂停或者快进后 (游戏暂停或快进) ,里面的所有动作都会停止或加速 (对应到动画的暂停或加速)

Animate Physics

当我们快进或暂停电影时,里面的和物理相关的动画还是照常,而其他行为接着快进或暂停
好比看某些学习资料时,不重要的剧情快进,重要的物理交互仔细观赏

Unscaled Time

电影里有一个能在暂停时间的世界里自由活动的 人 吸血鬼?

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/633405
推荐阅读
相关标签
  

闽ICP备14008679号