您的位置:首页 > 移动开发 > Unity3D

统一管理Unity里面的Update

2016-09-01 13:55 579 查看
public class MyTickManager : Singleton<MyTickManager>
{
private List<Action> updateList = new List<Action>();
/// <summary>
/// 防止添加Update()立刻移除,这样会出错
/// </summary>
private List<Action> tempUpdateList = new List<Action>();

public static void AddUpdate(Action action)
{
Instance.addUpdate(action);
}

private void addUpdate(Action action)
{
if (updateList.Contains(action) == true)
{
Debug.LogWarningFormat("{0} 这个Update已经存在", action.ToString());
return;
}
updateList.Add(action);
}

public static void RemoveUpdate(Action action)
{
Instance.removeUpdate(action);
}

public void removeUpdate(Action action)
{
if (updateList.Contains(action) == false)
{
Debug.LogWarningFormat("{0} 这个Update不存在", action.ToString());
return;
}
updateList.Remove(action);
}

public void MyUpdate()
{
if (updateList.Count == 0)
return;
tempUpdateList.Clear();
tempUpdateList.AddRange(updateList);
for (int i = 0; i < tempUpdateList.Count; i++)
{
tempUpdateList[i]();
}
}
}


继承Singleton< T > http://blog.csdn.net/microsoftmsdnnet/article/details/48178405

工程下载:http://download.csdn.net/detail/microsoftmsdnnet/9619261
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: