Version: 2018.4
public Vector2 velocity ;

説明

リジッドボディの線形速度

The velocity is specified as a vector with components in the X and Y directions (there is no Z direction in 2D physics). The value is not usually set directly but rather by using forces. Disable drag in the Inspector to stop the gradual decay of the velocity.

See Also: AddForce, drag, angularVelocity, Rigidbody.velocity.

//Create a GameObject and attach a Rigidbody2D component to it (Add Component > Physics2D > Rigidbody2D)
//Attach this script to the GameObject

//This script moves a GameObject up or down when you press the up or down arrow keys. //The velocity is set to the Vector2() value. Unchanging the Vector2() keeps the //GameObject moving at a contant rate.

using UnityEngine;

public class ExampleClass : MonoBehaviour { private Rigidbody2D rb;

private float t = 0.0f; private bool moving = false;

void Awake() { SpriteRenderer sprRend = gameObject.AddComponent<SpriteRenderer>() as SpriteRenderer;

rb = gameObject.AddComponent<Rigidbody2D>() as Rigidbody2D; rb.bodyType = RigidbodyType2D.Kinematic; }

void Start() { gameObject.GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("image128x128"); gameObject.transform.Translate(0.0f, 0.0f, 0.0f); }

void Update() { //Press the Up arrow key to move the RigidBody upwards if (Input.GetKey(KeyCode.UpArrow)) { rb.velocity = new Vector2(0.0f, 2.0f); moving = true; t = 0.0f; }

//Press the Down arrow key to move the RigidBody downwards if (Input.GetKey(KeyCode.DownArrow)) { rb.velocity = new Vector2(0.0f, -1.0f); moving = true; t = 0.0f; }

if (moving) { // Record the time spent moving up or down. // When this is 1sec then display info t = t + Time.deltaTime; if (t > 1.0f) { Debug.Log(gameObject.transform.position.y + " : " + t); t = 0.0f; } } } }
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961