Unity3D减慢时间时的抖动动作
本文关键字:抖动 时间 Unity3D | 更新日期: 2023-09-27 18:16:27
我正在使用这个网站的代码来创建慢动作效果
慢动作效果
在个人电脑上运行正常,但在手机上运行缓慢。
下面是android 的代码if (Input.touchCount > 0)
{
if(Input.GetTouch(0).phase == TouchPhase.Began)
{
Time.timeScale = 1.0f;
Time.fixedDeltaTime = Time.fixedDeltaTime * newTimeScale;
Time.maximumDeltaTime = Time.maximumDeltaTime * newTimeScale;
}
else if (Input.GetTouch (0).phase == TouchPhase.Ended)
{
Time.timeScale = newTimeScale;
Time.fixedDeltaTime = Time.fixedDeltaTime / newTimeScale;
Time.maximumDeltaTime = Time.maximumDeltaTime / newTimeScale;
}
}
我猜是TouchPhase。Ended是begin一遍又一遍地被调用,所以我得到了这个延迟效果,因为我尝试在PC上用KeyDown和KeyUp方法做同样的事情,我得到了同样的延迟效果,但这应该不会发生,因为touchCount等于0。我不知道,我完全没有主意了。任何帮助都将不胜感激。
比起使用TouchPhase,你可以创建自己的TouchUp和TouchDown
bool wasDown = false;
void Update()
{
bool isDown = Input.touchCount > 0;
if(!wasDown && isDown)
{
wasDown = true;
//do touch down stuff, Time.timeScale = 1.0f etc
}
if(wasDown && !isDown)
{
wasDown = false;
//do touch up stuff, Time.timeScale = newTimeScale etc
}
}