来自于:MonkeyLove
很多游戏将慢动作、快速动作作为一种特效,来给游戏增加可玩性及刺激感。
非常常见的格斗游戏中,一般大招的施放前兆是靠慢动作来表示的。街霸游戏,运用的灰常灰常OX~
Unity中实现慢动作非常简单:
<核心代码>
Time.timeScale 是关键。
不过Unity建议,在放慢了时间Time.Scale的同时,最好同时放慢Time.fixedDeltaTime;
void Update(){
if(Time.timeScale == 1.0F)
Time.timeScale = 0.7F; // 速度变为原来的0.7倍;
else
Time.timeScale = 1.0F; // 恢复正常速度;
Time.fixedDeltaTime = 0.02F*Time.timeScale;
}
灵活的运用它,游戏就变的灰常有意思了。
除了让游戏时间变慢外,有时候也可以让某些GameObject的动画变慢播放,来实现局部的慢动作和快动作。
AnimationState就有这样一个属性:speed.
这个值在0-1之间,比如设置AnimationState.speed = 0.5f.就表示放慢一倍的速度。