Unity中实现列表中元素随机排序

一:前言

例如一个列表中有顺序的10个数字0-10,现在需要将他们打乱顺序


二:代码实现

using System.Collections.Generic;
using UnityEngine;

public class Test: MonoBehaviour
{
    public List<int> list = new List<int>();

    void Start()
    {
        for (int i = 0; i < 10; i++)
        {
            list.Add(i);
        }
    }

    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            OutOfOrder(list);
        }
    }

    /// <summary>
    /// 列表元素乱序
    /// </summary>
    public void OutOfOrder<T>(List<T> list)
    {
        int index;
        T temp;
        for (int i = 0; i < list.Count; i++)
        {
            index = UnityEngine.Random.Range(0, list.Count);
            if (index != i)
            {
                temp = list[i];
                list[i] = list[index];
                list[index] = temp;
            }
        }
    }
}

猜你喜欢

转载自blog.csdn.net/LLLLL__/article/details/126744210