目录
1.Transform移动
2.Rigidbody移动
3通用
//==============================================
1.Transform移动===================================
Translate()
//轴移动
物体以relativeTo(Fighter.transform)为参照系,沿着translation运动|translation|的距离。如果relativeTo缺省将
以Space.Self为默认值。//恒速移动
transform.Translate(Vector3.forward * ShootSpeed * Time.deltaTime, Fighter.transform);
返回目录
2.Rigidbody移动====================================
velocity()
这种方法只能适用于刚体,因为velocity是刚体特有的属性。//改速度移动
gameObject.GetComponent<Rigidbody>().velocity = Vector3.forward * MoveSpeed;
MovePosition()
//让物体移动到新的位置position。//恒速移动
//适用于频繁改变,推荐使用这种,较为平滑
rb.MovePosition(transform.position + transform.forward * Time.deltaTime);
AddForce()
playerRgd.AddForce(dir*force);//方向与力道
//给刚体增加一个力。//炮弹加速
playerRgd.AddRelativeForce(dir*force);
//添加一个力到刚体。相对于本地坐标。
返回目录
3通用====================================
Vector3.MoveTowards()
//向着目标点target,恒速移动
transform.position = Vector3.MoveTowards(transform.position, target, MoveSpeed * Time.deltaTime);
//Rigidbody.position
Vector3.Lerp()
//控制物体向Target移动,插值移动
gameObject.transform.localPosition = Vector3.Lerp(transform.position, Target, MoveSpeed * Time.deltaTime);
// position是世界坐标中的位置,可以理解为绝对坐标
// localPosition是相对于父对象的位置,是相对坐标,我们在transform栏看到的是相对坐标
// 如果对象是一级对象,position和localPosition是相同的
Vector3.SmoothDamp()
//此方法一般用于摄像机的平滑移动。
transform.position = Vector3.SmoothDamp(transform.position, targetPosition, ref velocity, smoothTime);
//Rigidbody.position