在Unity中,你可以使用C#来创建一个从0到100的随机排序列表。以下是一个简单的示例,展示了如何生成一个包含0到100的整数列表,并对其进行随机排序:
csharp复制代码
using System; | |
using System.Collections.Generic; | |
using UnityEngine; | |
public class RandomSortExample : MonoBehaviour | |
{ | |
void Start() | |
{ | |
// 创建一个包含0到100的整数列表 | |
List<int> numbers = new List<int>(); | |
for (int i = 0; i <= 100; i++) | |
{ | |
numbers.Add(i); | |
} | |
// 使用Fisher-Yates(也称为Knuth)算法进行随机排序 | |
Random random = new Random(); | |
for (int i = numbers.Count - 1; i > 0; i--) | |
{ | |
int n = random.Next(i + 1); | |
int temp = numbers[i]; | |
numbers[i] = numbers[n]; | |
numbers[n] = temp; | |
} | |
// 输出排序后的列表(可选,用于调试或展示) | |
foreach (int number in numbers) | |
{ | |
Debug.Log(number); | |
} | |
} | |
} |
在这个示例中,RandomSortExample
类继承自 MonoBehaviour
,你可以在Unity的任何GameObject上附加这个脚本来运行它。Start
方法在场景开始时被调用,它首先创建一个包含0到100的整数列表。然后,它使用Fisher-Yates洗牌算法对列表进行随机排序。最后,它遍历并输出排序后的列表中的每个数字(你可以根据需要修改这部分,例如将其显示在UI上而不是输出到控制台)。
注意,使用 Random
类时,最好创建一个新的 Random
实例(如上述示例所示),而不是在每次需要随机数时都使用 Random.Range
或 Random.Next
,因为直接使用静态方法可能会导致在快速连续调用时产生相同的随机数。通过创建新的 Random
实例,你可以确保每次都有更好的随机性。