同じスクリプトを持つ複数のオブジェクトに対し、識別番号をつけることで、処理を切り分けられるようにしましょう。
3つのCubeに対して、ジャンプ動作する同一のスクリプトを追加。
それぞれのCubeに番号をつけることで、キー操作を切り替えできるようにしています。
関連記事:
配列のオブジェクトをキー操作で切り替える
キー操作で複数オブジェクトの表示を切り替え
3つのスポットライトをキー操作で点灯
1個のボタンでオブジェクトを切り替える
switch文を使ってオブジェクトを切り替え
ボタンでオブジェクトを切り替える(ボタン2個)
ナンバーを付けてキー操作を分ける
PlaneとCube3個を作成します。
Cubeは横並びに置いて、それぞれ名前をCube1~3に変更。
3個すべてにリジッドボディを追加します。
ゲームビューではこのように見えています。
左から順番に配置しました。
CubeJump.csを作成し、3個のCubeに追加します。
CubeJump.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 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeJump : MonoBehaviour { [SerializeField] int number; private Rigidbody rb; private float upForce; void Start() { upForce = 300; rb = GetComponent<Rigidbody>(); } void Update() { //Cube1がジャンプ if(Input.GetKeyDown(KeyCode.Alpha1) && number == 1) { rb.AddForce(new Vector3(0,upForce,0 )); } //Cube2がジャンプ if(Input.GetKeyDown(KeyCode.Alpha2) && number == 2) { rb.AddForce(new Vector3(0,upForce,0 )); } //Cube3がジャンプ if(Input.GetKeyDown(KeyCode.Alpha3) && number == 3) { rb.AddForce(new Vector3(0,upForce,0 )); } } } |
数のフィールドにそれぞれ、1、2、3と番号をつけます。
ゲームプレイして、1、2、3のキーを押してみましょう。
それぞれの数字キーの番号に合わせて、Cubeのプログラムが実行されます。
関連記事:
配列のオブジェクトをキー操作で切り替える
キー操作で複数オブジェクトの表示を切り替え
3つのスポットライトをキー操作で点灯
1個のボタンでオブジェクトを切り替える
switch文を使ってオブジェクトを切り替え
ボタンでオブジェクトを切り替える(ボタン2個)