刚体的速度矢量。
在大多数情况下,您不应该直接修改速度,因为这可能导致行为失真。 不要在每个物理步骤中设置对象的速度,这将导致不真实的物理模拟。 需要更改速度的一个典型示例是第一人称射击游戏中的跳跃动作设计,因为此时您需要立即更改速度。
using UnityEngine; using System.Collections;
// The velocity in y is 10 units per second. If the GameObject starts at (0,0,0) then // it will reach (0,100,0) units after 10 seconds.
public class ExampleClass : MonoBehaviour { public Rigidbody rb;
private float t = 0.0f; private bool moving = false;
void Start() { rb = GetComponent<Rigidbody>(); }
void FixedUpdate() { if (Input.GetButtonDown("Jump")) { // the cube is going to move upwards in 10 units per second rb.velocity = new Vector3(0, 10, 0); moving = true; Debug.Log("jump"); }
if (moving) { // when the cube has moved over 1 second report it's position t = t + Time.deltaTime; if (t > 1.0f) { Debug.Log(gameObject.transform.position.y + " : " + t); t = 0.0f; } } } }
注意:Unity 以单位/秒衡量速度。单位通常表示米,但也可以是毫米或光年。Unity 速度还具有定义方向的 X、Y 和 Z 速度。