public void Tick()
{
if (null == m_SceneLogicInfoMgr)
return;
if (0 == m_LastTickTime) {
m_LastTickTime = TimeUtility.GetLocalMilliseconds();
} else {
long delta = TimeUtility.GetLocalMilliseconds() - m_LastTickTime;
m_LastTickTime = TimeUtility.GetLocalMilliseconds();
for (LinkedListNode<SceneLogicInfo> node = m_SceneLogicInfoMgr.SceneLogicInfos.FirstValue; null != node; node = node.Next) {
SceneLogicInfo info = node.Value;
if (null != info) {
ISceneLogic logic = SceneLogicManager.Instance.GetSceneLogic(info.LogicId);
if (null != logic) {
logic.Execute(info, delta);
}
if (info.IsLogicFinished) {
m_SceneLogicInfos.Add(info);
}
}
}
for (int i = 0; i < m_SceneLogicInfos.Count; i++) {
m_SceneLogicInfoMgr.RemoveSceneLogicInfo(m_SceneLogicInfos[i].GetId());
}
m_SceneLogicInfos.Clear();
m_SceneLogicInfoMgr.ExecuteDelayAdd();
}
}