源战役客户端
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

121 行
2.4 KiB

  1. local rawget = rawget
  2. local uTime = UnityEngine.Time
  3. local gettime = tolua.gettime
  4. local _Time =
  5. {
  6. deltaTime = 0,
  7. fixedDeltaTime = 0,
  8. maximumDeltaTime = 0.3333333,
  9. fixedTime = 0,
  10. frameCount = 1,
  11. realtimeSinceStartup=0,
  12. time = 0,
  13. timeScale = 1,
  14. timeSinceLevelLoad = 0,
  15. unscaledDeltaTime = 0,
  16. unscaledTime = 0,
  17. }
  18. local _set = {}
  19. function _set.fixedDeltaTime(v)
  20. _Time.fixedDeltaTime = v
  21. uTime.fixedDeltaTime = v
  22. end
  23. function _set.maximumDeltaTime(v)
  24. _Time.maximumDeltaTime = v
  25. uTime.maximumDeltaTime = v
  26. end
  27. function _set.timeScale(v)
  28. _Time.timeScale = v
  29. uTime.timeScale = v
  30. end
  31. function _set.captureFramerate(v)
  32. _Time.captureFramerate = v
  33. uTime.captureFramerate = v
  34. end
  35. function _set.timeSinceLevelLoad(v)
  36. _Time.timeSinceLevelLoad = v
  37. end
  38. _Time.__index = function(t, k)
  39. local var = rawget(_Time, k)
  40. if var then
  41. return var
  42. end
  43. return uTime.__index(uTime, k)
  44. end
  45. _Time.__newindex = function(t, k, v)
  46. local func = rawget(_set, k)
  47. if func then
  48. return func(v)
  49. end
  50. LogError(string.format("Property or indexer `UnityEngine.Time.%s' cannot be assigned to (it is read only)", k))
  51. end
  52. local Time = {}
  53. local counter = 1
  54. function Time:SetDeltaTime(deltaTime, unscaledDeltaTime)
  55. local _Time = _Time
  56. _Time.deltaTime = deltaTime
  57. _Time.unscaledDeltaTime = unscaledDeltaTime
  58. counter = counter - 1
  59. if counter == 0 and uTime then
  60. _Time.time = uTime.time
  61. _Time.timeSinceLevelLoad = uTime.timeSinceLevelLoad
  62. _Time.unscaledTime = uTime.unscaledTime
  63. _Time.realtimeSinceStartup = uTime.realtimeSinceStartup
  64. _Time.frameCount = uTime.frameCount
  65. counter = 1000000
  66. else
  67. _Time.time = _Time.time + deltaTime
  68. _Time.realtimeSinceStartup = _Time.realtimeSinceStartup + deltaTime
  69. _Time.timeSinceLevelLoad = _Time.timeSinceLevelLoad + deltaTime
  70. _Time.unscaledTime = _Time.unscaledTime + unscaledDeltaTime
  71. end
  72. end
  73. function Time:SetFixedDelta(fixedDeltaTime)
  74. _Time.deltaTime = fixedDeltaTime
  75. _Time.fixedDeltaTime = fixedDeltaTime
  76. _Time.fixedTime = _Time.fixedTime + fixedDeltaTime
  77. end
  78. function Time:SetFrameCount()
  79. _Time.frameCount = _Time.frameCount + 1
  80. end
  81. function Time:SetTimeScale(scale)
  82. local last = _Time.timeScale
  83. _Time.timeScale = scale
  84. uTime.timeScale = scale
  85. return last
  86. end
  87. function Time:GetTimestamp()
  88. return gettime()
  89. end
  90. UnityEngine.Time = Time
  91. setmetatable(Time, _Time)
  92. if uTime ~= nil then
  93. _Time.maximumDeltaTime = uTime.maximumDeltaTime
  94. _Time.timeScale = uTime.timeScale
  95. end
  96. return Time