天天看點

unity3d随機指定範圍指定數量的數

随機指定範圍指定數量的随機數

using System.Collections.Generic;
using UnityEngine;

public class RandomNumber : MonoBehaviour
{
    public int beginNum, endNum, getCount;

    void Awake()
    {
        beginNum = 1;
        endNum = 100;
        getCount = 10;
    }
    /// <summary>
    /// 調用
    /// </summary>
    private void Start()
    {
        // 從1至100中随機10個不相同的數
        List<int> arrayList = GetRandomNumberList(beginNum, endNum, getCount);
        for (int i = 0; i < arrayList.Count; i++)
        {
            Debug.Log("_____________________________________  " + arrayList[i]);
        }
    }

    /// <summary>
    /// 随機指定範圍指定數量
    /// </summary>
    /// <param name="beginNum">起始數</param>
    /// <param name="endNum">結束數</param>
    /// <param name="getCount">随機的數量</param>
    /// <returns></returns>
    private List<int> GetRandomNumberList(int beginNum, int endNum, int getCount)
    {
        List<int> resultArray = new List<int>();
        List<int> originalArray = new List<int>();
        for (int i = beginNum; i <= endNum; i++)
        {
            originalArray.Add(i);
        }
        int randomCount = originalArray.Count;
        int randomIndex = 0, count = randomCount, temp = 0;
        for (int i = 0; i < getCount; i++)
        {
            randomIndex = UnityEngine.Random.Range(0, count);
            resultArray.Add(originalArray[randomIndex]);
            if (randomIndex != count - 1)
            {
                temp = originalArray[randomIndex];
                originalArray[randomIndex] = originalArray[count - 1];
                originalArray[count - 1] = temp;
            }
            count--;
        }
        return resultArray;
    }

}


           

繼續閱讀