Version: 2019.4
언어: 한국어

Rigidbody2D.velocity

매뉴얼로 전환
public Vector2 velocity ;

설명

Linear velocity of the Rigidbody in units per second.

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.

//Create a new 2D Sprite GameObject and attach this script to it.

//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 constant rate.

using UnityEngine;

public class ExampleClass : MonoBehaviour { private Rigidbody2D rb;

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

void Awake() { 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; } } } }