Support awaiting additional engine callbacks #554
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Pull request adds the ability for a task to
await
the invocation of some additional Unity callbacks:Application.onBeforeRender
via methodUniTask.WaitForOnBeforeRender
Canvas.willRenderCanvases
via methodUniTask.WaitForWillRenderCanvases
Canvas.preWillRenderCanvases
via methodUniTask.WaitForPreWillRenderCanvases
Implementation notes:
EngineCallbackTiming
defines these callbacks (similar toPlayerLoopTiming
) with theInjectEngineCallbackTimings
counterpart. - I figured it was best to keep these separated since they do not use the PlayerLoop.PlayerLoopRunner
into new base classContinuationRunner
so it could be shared with new classEngineCallbackRunner
for these callbacks.WaitFor
methods utilizeYieldPromise
which was changed to accommodate the new enum with minimal changes.