public Vector3 velocity ;

説明

Rigidbody の速度ベクトル

ほとんどの場合、非現実的な挙動になるため速度を直接修正するべきではありません。 オブジェクトの速度を物理ステップごとに設定しないでください。これは非現実的な物理シミュレーションに繋がります。 速度を変更する上での典型例は、ファーストパーソン・シューティングでのジャンプ時にあります。即座に速度を変更したいためです。

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

Note: A velocity in Unity is units per second. The units are often thought of as metres but could be millimetres or light years. Unity velocity also has the speed in X, Y, and Z defining the direction.