プレーヤーが動いている間のみ、呼び出されるプログラムを作成してみましょう。
十字キー操作でCubeを移動させているときだけ実行されて、赤色に変わります。
動いていない時は、色はグレーになります。
関連記事:
移動している時だけ実行する
マウスを押している間だけ音が鳴る
マウスを押した時間だけオブジェクトを拡大
移動中の時だけ実行される
CubeとPlane(平面)を作成します。
PlayerMove.csを作成し、Cubeに追加します。
PlayerMove.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 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerMove : MonoBehaviour { void Start() { GetComponent<Renderer>().material.color = Color.gray; } void Update() { float inputX = Input.GetAxis("Horizontal") * Time.deltaTime * 3.0f; float inputZ = Input.GetAxis("Vertical") * Time.deltaTime * 3.0f; transform.position = new Vector3 ( transform.position.x + inputX, transform.position.y, transform.position.z + inputZ ); if(inputX!=0 || inputZ!=0) { GetComponent<Renderer>().material.color = Color.red; } else { GetComponent<Renderer>().material.color = Color.gray; } } } |
ゲームプレイして、Cubeを動かしてみましょう。
動いている間は赤色に、動きをやめた時はグレーに変色します。
inputXでは左右キー、inputZでは上下キーの入力情報を取得します。
Input.GetAxisで得る入力情報には1か-1が入ります。
これを利用して、0以外の数値になった際には、赤色にかわるようにスクリプトを作成しました。