二、移动方式
1、改变目标位置
//获取用户水平按键,包括(←、→、A、D)
public float MoveSpeed;
h = Input.GetAxis("Horizontal");
transform.position += new Vector3(h*MoveSpeed, 0, 0);
Input.GetAxis("Horizontal") 此行代码获取的值会从0慢慢递增到目标值,所以人物的速度是缓动的
这样的后果是人物看起来很滑,即使松开按键之后,依然会滑行一段时间,调整线性阻尼也无法完全消除这个效果。
缺点:
(1)人物有滑行状态
(2)如果移动速度过快,人物会出现闪现,影响整体流畅感
2、给物体施加刚体力
Rigidbody2D player = GetComponent<Rigidbody2D>();
//获取用户水平按键,包括(←、→、A、D)
public float MoveSpeed;
h = Input.GetAxis("Horizontal");
player.AddForce(new Vector2(h*MoveSpeed,0));
这种方法用了刚体力学原理,整个移动逻辑变得复杂了起来,物体移动会收到质量与摩擦力的影响,同时也会受到其他外力的影响,比如向上走的过程中,被右边来的子弹击中,人物会直接向左上飘去。
3、设定物体速度<