Add async callbacks to GLTFImportPluginContext#847
Open
eoineoineoin wants to merge 1 commit intoKhronosGroup:mainfrom
Open
Add async callbacks to GLTFImportPluginContext#847eoineoineoin wants to merge 1 commit intoKhronosGroup:mainfrom
eoineoineoin wants to merge 1 commit intoKhronosGroup:mainfrom
Conversation
Collaborator
|
Thanks for the PR! We'll take a look. There is already helper class to help with running async code synchronously, would it be possible for your use case to instead run your async method synchronous inside the existing The helpers are here: |
Member
Author
|
Thanks for looking into this; wasn't aware of that AsyncHelpers at all - looks like it does the trick and works correctly; I think that's preferable to use, rather than making the plugins async. Think we can close this PR, but wonder if there's some way we could bring attention to that util, just for developer productivity? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
I had a use-case when implementing an import plugin and needed to call an async function. Attempting to do this from the synchronous callbacks would either trigger exceptions due to code which should only run on the main thread or would hang Unity.
This PR extends the GLTFImportContext to provide async versions of the callbacks; for backwards-compatibility, the base implementation calls the synchronous version, so any extant implementations of the GLTFImportPluginContext should not see any API changes due to this.
For my use-case, I just needed an async OnAfterImportNode(), but saw no reason that this shouldn't be supported for each callback.