【Unity实用小方法】随机生成不重复的数字

public int[] GetRandomSequence2(int total, int n)
    {
        //随机总数组
        int[] sequence = new int[total];
        //取到的不重复数字的数组长度
        int[] output = new int[n]; 
        for (int i = 0; i < total; i++)
        {
            sequence[i] = i;
        }
        int end = total - 1;
        for (int i = 0; i < n; i++)
        {
            //随机一个数,每随机一次,随机区间-1
            int num = Random.Range(0, end + 1);
            output[i] = sequence[num];
            //将区间最后一个数赋值到取到数上
            sequence[num] = sequence[end];
            end--;
            //执行一次效果如:1,2,3,4,5 取到2
            //则下次随机区间变为1,5,3,4;
        }
        return output;
    }

Unity中的随机重复通常是指在编程中生成一系列随机重复的数据集合。这在游戏开发中经常需要,比如随机选择同的敌人、道具或者关卡等。在Unity中实现随机重复的一个常见方法是使用列表(List)或数组(Array)来存储数据,然后通过随机选择和移除元素的方式来确保元素的唯一性。 以下是实现随机重复的一个简单步骤: 1. 创建一个列表并初始化包含所有可能的元素。 2. 使用随机函数来随机选择列表中的一个元素。 3. 从列表中移除这个元素,确保它会被再次选择。 4. 重复步骤2和3直到列表为空。 Unity中可以使用`System.Random`类来生成随机数,或者使用`Random.Range`等内置函数来辅助生成随机数。 示例代码(假设我们随机选择一个重复数字): ```csharp using System; using System.Collections.Generic; public class RandomUniqueSelector { private List<int> pool; private Random random; public RandomUniqueSelector(int min, int max) { pool = new List<int>(); random = new Random(); for (int i = min; i <= max; i++) { pool.Add(i); } } public int GetRandomUnique() { if (pool.Count == 0) return -1; // 没有元素可选时返回-1或其他错误码 int index = random.Next(pool.Count); int value = pool[index]; pool.RemoveAt(index); return value; } } ``` 使用该类时,只需要创建一个`RandomUniqueSelector`实例,并断地调用`GetRandomUnique`方法来获取随机重复数字
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值