У меня есть класс, который отправляет Actions
из очереди. Однако мой InvokeLater
принимает только Action
без каких-либо параметров.Пропустить параметр к диспетчеру действий
Вот мой Dispatcher
:
public class Dispatcher : MonoBehaviour
{
private static readonly Queue<Action> tasks = new Queue<Action>();
public static Dispatcher Instance = null;
static Dispatcher()
{
Instance = new Dispatcher();
}
private Dispatcher(){ }
public void InvokeLater(Action task)
{
lock (tasks)
{
tasks.Enqueue(task);
}
}
void FixedUpdate()
{
while (tasks.Count > 0)
{
Action task = null;
lock (tasks)
{
if (tasks.Count > 0)
{
task = tasks.Dequeue();
}
}
task();
}
}
}
Я использую это так:
var action = new Action(RequestPrediction);
Dispatcher.Instance.InvokeLater(action);
Где RequestPrediction
функция без параметров - которые я хотел бы изменить так, чтобы он (RequestPrediction
) принимает аргумент int
.
Как я могу изменить мой Dispatcher
так, что я могу сделать что-то вроде:
var action = new Action(RequestPrediction);
Dispatcher.Instance.InvokeLater(action,5);
?
общий класс действия '' действий '' –