気軽に遊べるミニゲームを制作しています

iPhone, iPad専用

Unity ランダム・確率の使い方

Unity2D

ランダム 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);
        }

    }

}

値によって、発生するオブジェクトが変わっています。

コメント

タイトルとURLをコピーしました