Unity Transform与Rigidbody移动区别
变量
public float moveSpeed = 10f;
private Rigidbody playerRig;
void Start () {
playerRig = GetComponent<Rigidbody>();
}
void Update () {
float _hh = Input.GetAxis("Horizontal");
float _vv = Input.GetAxis("Vertical");
transform.Translate(new Vector3(_hh, 0, _vv) * Time.deltaTime * moveSpeed);
}
利用transform的方法移动是移动多少;
void FixedUpdate(){
float _hh = Input.GetAxis("Horizontal");
float _vv = Input.GetAxis("Vertical");
playerRig.MovePosition(transform.position+ transform.TransformDirection(new Vector3(_hh, 0, _vv)) * Time.deltaTime * moveSpeed);
}
利用Rigidbody的方法移动是移动到哪里;注意必须在FixedUpdate里进行调用