十字キーを使って、Cubeオブジェクトを転がしながら進めてみましょう。
今回はリジッドボディの機能を使って、Cubeに力を加えながら動かします。
瞬間的に力を入れて、Cubeを転がしていきます。
AddForceでCubeに力を加える
平面とCubeを作成します。
Cubeにリジッドボディを追加します。
CubeMove.csを作成し、Cubeに追加します。
CubeMove.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeMove : MonoBehaviour { private Rigidbody rb; private float rightForce = 100f; private float leftForce = -100f; private float upForce = 100f; private float downForce = -100f; void Start() { rb = GetComponent<Rigidbody>(); } void Update() { if(Input.GetKey(KeyCode.RightArrow)) { rb.AddForce(new Vector3(rightForce, 0, 0)); rb.velocity = Vector3.zero; } if(Input.GetKey(KeyCode.LeftArrow)) { rb.AddForce(new Vector3(leftForce, 0, 0)); rb.velocity = Vector3.zero; } if(Input.GetKey(KeyCode.UpArrow)) { rb.AddForce(new Vector3(0, 0, upForce)); rb.velocity = Vector3.zero; } if(Input.GetKey(KeyCode.DownArrow)) { rb.AddForce(new Vector3(0, 0, downForce)); rb.velocity = Vector3.zero; } } } |
プレイして十字キーで力を加えてみましょう。
Cubeが転がって進んでいきます。