Version: 2018.2
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.

Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961