一、向量相加减控制移动
transform.position += transform.forward * Time.deltaTime*5f;
二、Translate控制移动
transform.Translate(Vector3.forward * Time.deltaTime*5f);
三、差值控制移动:当前位置,目标位置,速度
1、lerp方法:通过中间值移动,最后无限接近目标点。
transform.position = Vector3.Lerp(transform.position, dir, Time.deltaTime * 5f);
2、MoveTowards移动:平滑移动
transform.position = Vector3.MoveTowards(transform.position, dir, Time.deltaTime);
四、通过横纵轴移动
float x = Input.GetAxis("Horizontal");
float y = Input.GetAxis("Vertical");
//移动
transform.position += transform.forward * y * Time.deltaTime;
//转向:绕Y轴旋转
transform.Rotate(transform.up * x * Time.deltaTime);
五、通过刚体移动
Rigidbody rbody;
private void Start()
{
rbody = GetComponent<Rigidbody>();
}
float X = Input.GetAxis("Horizontal");
float Y = Input.GetAxis("Vertical");
//移动
rbody.MovePosition(transform.position+transform.forward*Y*Time.deltaTime);
//旋转
rbody.MoveRotation(rbody.rotation * Quaternion.Euler(transform.up*X*100f*Time.deltaTime));