using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
|
public class LogicEngine : SingletonMonobehaviour<LogicEngine>
|
{
|
List<LogicUpdate> logicUpdates = new List<LogicUpdate>();
|
public void Register(LogicUpdate logicUpdate)
|
{
|
if (!logicUpdates.Contains(logicUpdate))
|
{
|
logicUpdates.Add(logicUpdate);
|
}
|
}
|
|
public void UnRegister(LogicUpdate logicUpdate)
|
{
|
if (logicUpdates.Contains(logicUpdate))
|
{
|
logicUpdates.Remove(logicUpdate);
|
}
|
}
|
|
void Update()
|
{
|
for (var i = logicUpdates.Count - 1; i >= 0; i--)
|
{
|
var item = logicUpdates[i];
|
if (item.destroyDirty)
|
{
|
logicUpdates.RemoveAt(i);
|
}
|
else
|
{
|
try
|
{
|
item.Update();
|
}
|
catch (System.Exception ex)
|
{
|
DebugEx.LogError(ex);
|
}
|
}
|
}
|
|
}
|
|
}
|