一个Test类的Start方法,用于测试
实例化一个 RandomControllerEx ,传入数据与数据对应的权重值。
GetDatas方法可以获取到当前这一次随机的值。
思路就是将权重值乘一个1到100的随机数,然后将随机后的权重值排序。
[code]csharpcode:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test : MonoBehaviour
{
private void Start()
{
RandomControllerEx rcEx = new RandomControllerEx(new int[] { 0, 1, 2, 3 }, new int[] { 60, 30, 10, 3 });
Dictionary<int, int> dict = new Dictionary<int, int>();
for (int i = 0; i < 10000; i++)
{
int[] resultData = rcEx.GetDatas(1);
if (dict.ContainsKey(resultData[0]))
dict[resultData[0]] += 1;
else
dict[resultData[0]] = 1;
}
foreach (var xxx in dict)
{
Debug.Log("key:[" + xxx.Key + "] value:[" + (xxx.Value * 1.0f / 103));
}
}
</