赞
踩
在学习Unity的过程中,有一个需求,希望在暂停游戏内容的同时,调出UI界面,UI界面有一个动画会在UI的endUI.SetActive(ture);
时进行播放.
但是当我设置Time.timeScale = 0f;
后,动画并没有进行播放.
发现设置timeScale
后,动画的播放也会收到影响.
于是开始找解决方法.
以下是我找到的部分解决方法:
使用realtimeSinceStartup
来获得时间用以控制UI位置
使用realtimeSinceStartup
重写的一份可以在暂停时间时播刚体动画的Play函数
如果您把上面第二个链接的所有回复看完了,您会发现最后那位老哥说要修改 Animator 的 Update Mode 属性,将其设置为 Unscaled Time.
事实上,我最终的解决方式也是这样的.
- Update Mode
此选项允许您选择 Animator 何时更新以及应使用哪个时间标度。
- Normal
Animator 与 Update 调用同步更新,Animator 的速度与当前时间标度匹配。如果时间标度变慢,动画将通过减速来匹配。
- Animate Physics
Animator 与 FixedUpdate 调用同步更新(即,与物理系统步调一致)。如果要对具有物理交互的对象(例如可四处推动刚体对象的角色)的运动进行动画化,应使用此模式。
- Unscaled Time
Animator 与 Update 调用同步更新,但是 Animator 的速度忽略当前时间标度而不顾一切以 100% 速度进行动画化。此选项可用于以正常速度对 GUI 系统进行动画化,同时将修改的时间标度用于特效或暂停游戏。
就是一个普通电影或者动画片,当我们按下暂停或者快进后 (游戏暂停或快进) ,里面的所有动作都会停止或加速 (对应到动画的暂停或加速)
当我们快进或暂停电影时,里面的和物理相关的动画还是照常,而其他行为接着快进或暂停
好比看某些学习资料时,不重要的剧情快进,重要的物理交互仔细观赏
电影里有一个能在暂停时间的世界里自由活动的 人 吸血鬼?
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。