半分の確率で、異なるPrefabが生成される仕組みを、プログラムで書いてみましょう。
今回の例では、クリックするたびにオブジェクトが出現。
SphereかCube、どちらかがランダムで選択されます。
関連記事:
10分の1の確率で異なるPrefabを生成
半分の確率でオブジェクト種類を切り替え
CubeとSphereを作成し、リジッドボディを追加します。
プロジェクトビューにドラッグ&ドロップし、プレハブ化します。
元データは削除しておきます。
空のオブジェクトを作成します。
Generator.csを作成し、GameObject(空のオブジェクト)に追加します。
Generator.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 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Generator : MonoBehaviour { [SerializeField] GameObject cube; [SerializeField] GameObject sphere; void Update() { if(Input.GetMouseButtonDown(0)) { int number = Random.Range (0, 2); if(number == 0) { Instantiate(cube, transform.position, Quaternion.identity); } else { Instantiate(sphere, transform.position, Quaternion.identity); } } } } |
2つのフィールドに、それぞれPrefabデータを入れます。
ゲームプレイしてみましょう。
画面をクリックして、オブジェクト生成。
二分の一の確率で、SphereかCubeが切り替わって出現します。
Random.Range()では、int型の場合、後ろの数値は含まれません。
Random.Range(0, 2)と書けば、0~1のランダム値を取得できます。
関連記事:
10分の1の確率で異なるPrefabを生成