キー操作によって、生成するPrefabのタグを付け替えできるように、スクリプトを作成しましょう。
今回の例では、1~3の数字キーを押してからPrefabを出すと、Ball1~3でタグが付きます。
キーによるPrefabのタグ切り替え
あらかじめ、Ball1~Ball3までのタグを用意します。
空のオブジェクトを作成します。
SpawnScript.csを作成し、GameObject(空のオブジェクト)に追加します。
SpawnScript.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 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class SpawnScript : MonoBehaviour { public GameObject prefab; private Vector3 mousePosition; public static SpawnScript instance; public int number; public void Awake() { if(instance == null) { instance = this; } } void Update() { if(Input.GetKeyDown(KeyCode.Alpha1)) { number = 1; } if(Input.GetKeyDown(KeyCode.Alpha2)) { number = 2; } if(Input.GetKeyDown(KeyCode.Alpha3)) { number = 3; } if (Input.GetMouseButtonDown(0)) { mousePosition = Input.mousePosition; mousePosition.z = 10.0f; Instantiate(prefab, Camera.main.ScreenToWorldPoint(mousePosition),Quaternion.identity); } } } |
Sphereを作成します。
TagScript.csを作成し、Sphereに追加します。
TagScript.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 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class TagScript : MonoBehaviour { public int myNumber; void Start() { myNumber = SpawnScript.instance.number; if(myNumber == 1) { this.gameObject.tag = "Ball1"; } else if(myNumber == 2) { this.gameObject.tag = "Ball2"; } else { this.gameObject.tag = "Ball3"; } } } |
プロジェクトビューにドラッグ&ドロップして、Prefab化します。
Sphereの元データは削除しておきます。
プレハブのフィールドに、Sphereを入れます。
ゲームプレイしてみましょう。
数字キー1~3を押してから、ゲーム画面をクリックします。
入力した数字に応じて、タグBall1~3に付け替わります。