ランダム Random.Range(Min値, Max値);
ボタンを押した時に1から100の間でランダムな数字をテキストに表示するスクリプトを作成します。

テキストにアタッチするスクリプトは以下となります。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class RandomNo : MonoBehaviour
{
private float random;
public Text targetTxt; //テキストをドロップ
// Start is called before the first frame update
void Start()
{
random = 0f;
TxtUpdate();
}
public void Lottery()
{
random = Random.Range(1f, 100f);
TxtUpdate();
}
void TxtUpdate()
{
targetTxt.text = random.ToString("f2"); //下2桁を表示
}
}
ボタンのOnClickからLottery()を呼び出し、テキストにランダムな変数を表示します。

確率
上記のランダム値を使って、発生するオブジェクトの確率をコントロールします。

0〜100のランダム値を発生させ、その数値に応じてオブジェクトを発生させるスクリプトを作成します。空のゲームオブジェクトに以下のスクリプトをアタッチ。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class PrefabInstance : MonoBehaviour
{
public Text targetTxt;
//オブジェクトをそれぞれドロップ
public GameObject Niwatori;
public GameObject Bomb;
public GameObject Egg;
private int random;
private void Start()
{
StartCoroutine(ObjectInstance());
}
private IEnumerator ObjectInstance()
{
while (true)
{
//1秒待つ
yield return new WaitForSeconds(1.0f);
random = Random.Range(0, 100);
targetTxt.text = random.ToString();
if (random > 70)
Instantiate(Niwatori);
else if (random > 40)
Instantiate(Bomb);
else
Instantiate(Egg);
}
}
}
値によって、発生するオブジェクトが変わっています。

コメント