赞
踩
public void controlHero()
{
if ((ETCInput.GetAxis("Vertical") != 0) || (ETCInput.GetAxis("Horizontal") != 0)){
rigidbody2D.MovePosition(rigidbody2D.position+Time.fixedDeltaTime*new Vector2(ETCInput.GetAxis("Horizontal"),ETCInput.GetAxis("Vertical")) * speed );
}
//众所周知,人物移动时乘以Time.fixedDeltaTime,相当于逻辑在FixedUpade中调用,每间隔0.02s移动一次;
}
我一开始是放在FixedUpdate()中调用,结果不出意外地人物抖动了,改了很多次,以为是移动是不够平滑,后来才知道,要考虑相机的跟随渲染,一般的相机跟随都放在了LateUpdate里,而我用的cinemachine也是在LateUpdate里,果断改成了在LateUpdate里调用移动函数,不抖动了。
private void LateUpdate()
{
controlHero();
}
}
好吧放在Update也可以
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。