移動している間だけ、何かのプログラムを実行できる仕組みをつくりましょう。
今回は、Cubeを動かしているときだけオブジェクトの色が赤に変わり、動かしていないときは青になります。
インプットの絶対値を取得
Planeの上にCubeを配置します。
Cubeにリジッドボディを追加し、回転を固定します。
CubeScript.csを作成し、Cubeに追加します。
CubeScript.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 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeScript : MonoBehaviour { Renderer cubeMaterial; private float input; Rigidbody rb; void Start() { cubeMaterial = GetComponent<Renderer>(); rb = GetComponent<Rigidbody>(); } void Update() { input = Input.GetAxisRaw("Horizontal"); rb.velocity = new Vector3(input * 5.0f, 0, 0); float xPos = Mathf.Abs(input); float zPos = Mathf.Abs(input); if(xPos > 0 || zPos > 0) { cubeMaterial.material.color = Color.red; } else{ cubeMaterial.material.color = Color.blue; } } } |
ゲームプレイして、Cubeを左右に動かしてみましょう。
Mathf.Absを使って、input数値の絶対値を取得しています。
絶対値が0より大きければ赤色のプログラムが実行され、絶対値が0の場合は動きがないため、青色のプログラムが実行されます。