Hello,
I have encountered a critical issue when using Unity’s new asynchronous instantiation API (Object.InstantiateAsync) in Unity 6000.0.43f1.
Problem Description:
When I try to asynchronously instantiate a prefab that contains a ParticleSystem with SubEmitters, Unity throws the following error:
PersistentManager::ReadObject must be called from main thread
- This happens only when the ParticleSystem has SubEmitters (child particle systems set up as sub-emitters).
- If I remove all sub-emitters from the ParticleSystem, the error does not occur, and asynchronous instantiation works fine.
- The issue does not happen with VFX Graph prefabs, or with ParticleSystem prefabs that do not use sub-emitters.
- The error occurs both in coroutine-based and UniTask/async-await based asynchronous code (so it’s not related to async context).
Steps to Reproduce:
- Create a prefab with a ParticleSystem, and add at least one SubEmitter.
- Call
Object.InstantiateAsync(prefab)or the corresponding Addressables API to instantiate it asynchronously. - As soon as the instantiation runs, the editor (or build) throws the error above, and the instantiation fails.
Tested Version:
Unity 6000.0.43f1 (issue also present in previous 2023.3+ builds as reported by other developers).
Additional Notes:
- Synchronous instantiation (
GameObject.Instantiate) works with no issues, regardless of SubEmitters. - The issue is blocking for workflows that depend on async loading and pooling of ParticleSystem prefabs (e.g. object pooling, VFX systems).
- Searching the forums and Issue Tracker, it seems this bug is not widely discussed or resolved.
- This happens both in the Editor and in builds.
Expected Behavior:
Asynchronous instantiation of ParticleSystem prefabs with SubEmitters should work the same as synchronous instantiation, without thread safety errors.
Request:
Could the Unity dev team please investigate this threading error in the serialization or instantiation pipeline for ParticleSystem SubEmitters during async instantiate?
If a workaround exists, please share it. If not, is there an ETA for a fix?
Thank you!