Unity3D常用移动方法

一、向量相加减控制移动

 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);

四、通过横纵轴移动

1  float x = Input.GetAxis("Horizontal");
2  float y = Input.GetAxis("Vertical");
3  //移动
4  transform.position += transform.forward * y * Time.deltaTime;
5  //转向:绕Y轴旋转
6  transform.Rotate(transform.up * x * Time.deltaTime);

五、通过刚体移动

 1 Rigidbody rbody;
 2 private void Start()
 3 {
 4   rbody = GetComponent<Rigidbody>();
 5 }
 6 
 7 
 8 float X = Input.GetAxis("Horizontal");
 9 float Y = Input.GetAxis("Vertical");
10 //移动
11 rbody.MovePosition(transform.position+transform.forward*Y*Time.deltaTime);
12 //旋转
13 rbody.MoveRotation(rbody.rotation * Quaternion.Euler(transform.up*X*100f*Time.deltaTime));

猜你喜欢

转载自www.cnblogs.com/tang-fei/p/10188042.html