UI工具翻新
1. 增加UI工具 2. 增加设置页面 3. GameLoop更新 4. 导入ActionKit工具
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace AibisDream.Kit
|
||||
{
|
||||
internal interface IActionQueueCallback
|
||||
{
|
||||
void Call();
|
||||
}
|
||||
|
||||
internal struct ActionQueueRecycleCallback<T> : IActionQueueCallback
|
||||
{
|
||||
public SimpleObjectPool<T> pool;
|
||||
public T action;
|
||||
|
||||
public ActionQueueRecycleCallback(SimpleObjectPool<T> pool, T action)
|
||||
{
|
||||
this.pool = pool;
|
||||
this.action = action;
|
||||
}
|
||||
|
||||
public void Call()
|
||||
{
|
||||
pool.Recycle(action);
|
||||
pool = null;
|
||||
action = default;
|
||||
}
|
||||
}
|
||||
|
||||
internal class ActionQueue : Singleton<ActionQueue>
|
||||
{
|
||||
private readonly List<IActionQueueCallback> _actionQueueCallbacks = new();
|
||||
|
||||
public static void AddCallback(IActionQueueCallback actionQueueCallback)
|
||||
{
|
||||
Instance._actionQueueCallbacks.Add(actionQueueCallback);
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
private void Update()
|
||||
{
|
||||
if (_actionQueueCallbacks.Count > 0)
|
||||
{
|
||||
foreach (var actionQueueCallback in _actionQueueCallbacks)
|
||||
{
|
||||
actionQueueCallback.Call();
|
||||
}
|
||||
|
||||
_actionQueueCallbacks.Clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user