您不能選擇超過 %s 個話題 話題必須以字母或數字為開頭,可包含連接號 ('-') 且最長為 35 個字
 
 
 

78 行
1.4 KiB

  1. using System;
  2. using System.Collections;
  3. using SUISS.Scheduling;
  4. namespace SUISSEngine
  5. {
  6. public class Wait
  7. {
  8. public static Func<bool> UntilTrue(Func<bool> isDone)
  9. {
  10. return isDone;
  11. }
  12. public static IEnumerator UntilTrue(Func<bool> isDone, double intervals)
  13. {
  14. while (!isDone())
  15. {
  16. yield return intervals;
  17. }
  18. yield break;
  19. }
  20. public static IEnumerator UnityUntilTrue(Func<bool> isDone)
  21. {
  22. while (!isDone())
  23. {
  24. yield return null;
  25. }
  26. yield break;
  27. }
  28. public static IEnumerator Milliseconds(double amount)
  29. {
  30. yield return Timing.time + amount / 1000.0;
  31. yield break;
  32. }
  33. public static IEnumerator Seconds(double amount)
  34. {
  35. yield return Timing.time + amount;
  36. yield break;
  37. }
  38. public static IEnumerator Minutes(double amount)
  39. {
  40. yield return Timing.time + amount * 60.0;
  41. yield break;
  42. }
  43. public static IEnumerator Hours(double amount)
  44. {
  45. yield return Timing.time + amount * 60.0 * 60.0;
  46. yield break;
  47. }
  48. public static IEnumerator Days(double amount)
  49. {
  50. yield return Timing.time + amount * 60.0 * 60.0 * 24.0;
  51. yield break;
  52. }
  53. public static IEnumerator Frame()
  54. {
  55. yield return null;
  56. yield break;
  57. }
  58. public static IEnumerator Frames(int count)
  59. {
  60. for (int i = 0; i < count; i++)
  61. {
  62. yield return Wait.Frame();
  63. }
  64. yield break;
  65. }
  66. }
  67. }