miduo_client/Assets/ManagedResources/~Lua/UnityEngine/Time.lua

126 lines
2.8 KiB
Lua

--------------------------------------------------------------------------------
-- Copyright (c) 2015 - 2016 , 蒙占志(topameng) topameng@gmail.com
-- All rights reserved.
-- Use, modification and distribution are subject to the "MIT License"
--------------------------------------------------------------------------------
local rawget = rawget
local uTime = UnityEngine.Time
local gettime = tolua.gettime
local _Time =
{
deltaTime = 0,
fixedDeltaTime = 0,
maximumDeltaTime = 0.3333333,
fixedTime = 0,
frameCount = 1,
realtimeSinceStartup=0,
time = 0,
timeScale = 1,
timeSinceLevelLoad = 0,
unscaledDeltaTime = 0,
unscaledTime = 0,
}
local _set = {}
function _set.fixedDeltaTime(v)
_Time.fixedDeltaTime = v
uTime.fixedDeltaTime = v
end
function _set.maximumDeltaTime(v)
_Time.maximumDeltaTime = v
uTime.maximumDeltaTime = v
end
function _set.timeScale(v)
_Time.timeScale = v
uTime.timeScale = v
end
function _set.captureFramerate(v)
_Time.captureFramerate = v
uTime.captureFramerate = v
end
function _set.timeSinceLevelLoad(v)
_Time.timeSinceLevelLoad = v
end
_Time.__index = function(t, k)
local var = rawget(_Time, k)
if var then
return var
end
return uTime.__index(uTime, k)
end
_Time.__newindex = function(t, k, v)
local func = rawget(_set, k)
if func then
return func(v)
end
error(string.format("Property or indexer `UnityEngine.Time.%s' cannot be assigned to (it is read only)", k))
end
local Time = {}
local counter = 1
function Time:SetDeltaTime(deltaTime, unscaledDeltaTime)
local _Time = _Time
_Time.deltaTime = deltaTime
_Time.unscaledDeltaTime = unscaledDeltaTime
counter = counter - 1
if counter == 0 and uTime then
_Time.time = uTime.time
_Time.timeSinceLevelLoad = uTime.timeSinceLevelLoad
_Time.unscaledTime = uTime.unscaledTime
_Time.realtimeSinceStartup = uTime.realtimeSinceStartup
_Time.frameCount = uTime.frameCount
counter = 1000000
else
_Time.time = _Time.time + deltaTime
_Time.realtimeSinceStartup = _Time.realtimeSinceStartup + unscaledDeltaTime
_Time.timeSinceLevelLoad = _Time.timeSinceLevelLoad + deltaTime
_Time.unscaledTime = _Time.unscaledTime + unscaledDeltaTime
end
end
function Time:SetFixedDelta(fixedDeltaTime)
_Time.deltaTime = fixedDeltaTime
_Time.fixedDeltaTime = fixedDeltaTime
_Time.fixedTime = _Time.fixedTime + fixedDeltaTime
end
function Time:SetFrameCount()
_Time.frameCount = _Time.frameCount + 1
end
function Time:SetTimeScale(scale)
local last = _Time.timeScale
_Time.timeScale = scale
uTime.timeScale = scale
return last
end
function Time:GetTimestamp()
return gettime()
end
UnityEngine.Time = Time
setmetatable(Time, _Time)
if uTime ~= nil then
_Time.maximumDeltaTime = uTime.maximumDeltaTime
_Time.timeScale = uTime.timeScale
end
return Time