Я наконец ушел с обратными вызовами.Я не думаю, что это хорошее решение. Так что, если у кого-нибудь получится лучше, я буду более чем рад изменить принятый ответ .
Для всех, кто интересуется, вот как заставить работать обратные вызовы в MoonSharp:
Lua / MoonSharp
SomethingAsync(10, function()
SomePrintFunction('async work done')
end)
C #
async void SomethingAsync(int whatever, DynValue callback) {
await SomeAsyncWorkBeingDone();
if (callback.Type == DataType.Function) {
callback.Function.Call();
}
}
Более подробную информацию можно найти в документах .