Unity官方教程Ruby大冒险的自学笔记
一、
//正确例子:
void Update()
{
//获取运动矢量
moveX = Input.GetAxisRaw("Horizontal");
moveY = Input.GetAxisRaw("Vertical");
Vector2 position = rbody.position;
position.x += moveX * speed * Time.fixedDeltaTime;
position.y += moveY * speed * Time.fixedDeltaTime;
//用刚体移动可以消除画面抖动
rbody.MovePosition(position);
}
//错误例子:
Vector2 position = transform.position;
position.x += moveX * speed * Time.deltaTime;
position.y += moveY * speed * Time.deltaTime;
transform.position = new Vector2(position.x, position.y);
碰撞时,如果你坚持修改物体的位置属性使碰撞物体相交,那么你就会得到一个抖动的物体(抖出残影也不稀奇
考虑一个与现实类似的情况,你把靠在墙上的物体的坐标改到墙里面,那个物体在这一个时刻与墙相交,但下一个程序检查的时刻