2
0

Modules.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using UnityEngine;
  6. public static class Modules {
  7. public static System.Random randomDefault = new();
  8. /// <summary>
  9. /// 将 List 随机打乱。
  10. /// </summary>
  11. public static List<T> Shuffle<T>(this List<T> list, System.Random random = null) {
  12. random ??= randomDefault;
  13. for (int i = 0; i < list.Count; i++) {
  14. int randomIndex = random.Next(list.Count);
  15. (list[randomIndex], list[i]) = (list[i], list[randomIndex]);
  16. }
  17. return list;
  18. }
  19. /// <summary>
  20. /// 随机返回数组中的一个元素。
  21. /// </summary>
  22. public static T RandomOne<T>(this List<T> list, System.Random random = null) {
  23. random ??= randomDefault;
  24. return list[random.Next(list.Count)];
  25. }
  26. /// <summary>
  27. /// 可自我返回的 Sort 扩展方法。
  28. /// </summary>
  29. public static List<T> SortAndReturn<T>(this List<T> list) {
  30. list.Sort();
  31. return list;
  32. }
  33. public static void DestroyGameObject(GameObject obj) {
  34. obj.transform.position = new Vector3(1000, 1000);
  35. obj.SetActive(false);
  36. GameObject.Destroy(obj, 1);
  37. }
  38. }