生成するたびに、Prefabにランダム番号をつけられるように、スクリプトを作成してみましょう。
クリックでSphereが出現し、それぞれに1~10の範囲でランダムの数字を付与します。
Prefabごとにランダム数値を付与
空のオブジェクトを作成します。
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 |
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 ballNumber; public void Awake() { if(instance == null) { instance = this; } } void Update() { if (Input.GetMouseButtonDown(0)) { ballNumber = Random.Range(1,11); mousePosition = Input.mousePosition; mousePosition.z = 10.0f; Instantiate(prefab, Camera.main.ScreenToWorldPoint(mousePosition),Quaternion.identity); } } } |
Sphereを作成します。
RandomNumber.csを作成し、Sphereに追加します。
RandomNumber.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class RandomNumber : MonoBehaviour { public int myNumber; void Start() { myNumber = SpawnScript.instance.ballNumber; } } |
Sphereをプロジェクトビューにドラッグ&ドロップして、プレハブ化します。
Sphereの元データは消しておきます。
プレハブのフィールドに、Sphereを入れます。
ゲームプレイしましょう。
クリックでSphereのプレハブが生成されます。
それぞれのプレハブを見てみると、myNumberの値がランダムで付与されています。