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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM