一、向量相加減控制移動
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));