Unity—物体基础移动方式
作者:互联网
基于Transform移动
Transform SetPosition
直接改变物体的位置,适合非物理碰撞的物体移动。
private void Update(){
transform.position += transform.forward * Time.deltaTime;
}
Transform Translate
与第一种类似,适合非物理碰撞的物体移动。
private void Update(){
transform.Translate(Vector3.forward * Time.deltaTime);
}
基于Rigidbody移动
Rigidbody MovePosition
private Rigidbody rb;
private void Awake(){
rb = GetComponent<Rigidbody>();
}
private void Update(){
Vector3 newPosition = transform.position + (transform.forward * Time.deltaTime);
rb.MovePosition(newPosition);
}
Rigidboyd AddForce
给物体施加力的作用力,适合物理类移动。(如果物体存在重力,会相互作用)
public float force = 10;
private Rigidbody rb;
private void Awake(){
rb = GetComponent<Rigidbody>();
}
private void Update(){
rb.AddForce(transform.forward * force);
}
Rigidbody SetVelocity
直接给物体设定速度,适合物理类移动
private float velocity = 10;
private Rigidbody rb;
private void Awake(){
rb = GetComponent<Rigidbody>();
}
private void Update(){
rb.velocity = transform.forward * velocity;
}
标签:Rigidbody,void,transform,private,Update,Unity,rb,移动,物体 来源: https://www.cnblogs.com/tamentaoyanwo/p/12785968.html