Unity-Technologies / Unity-Technologies/com.unity.netcode.gameobjects
Addressables (and Custom) Scene Loading
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 2.3k
- Forks
- 461
- Avg merge
- 3d 16h
- Merged PRs (30d)
- 20
Description
Right now, NGO's NetworkSceneManager can't work with Unity's Addressable scenes. In my setup, I depend on data and event assets shared across the game, necessitating the use of addressable scenes to some extend. The current NGO framework limits us from switching to our preferred scene management method because the essential components, specifically the ISceneManagerHandler and its default assignment to DefaultSceneManagerHandler, are internal and not easily replaceable. The whole issue was previously discussed in a closed Issue #423, where a fork was used as a workaround which is a solution I'd prefer to avoid.
Integrating a custom scene provider into NetworkSceneManager might be a solution, enabling a more flexible approach to scene loading. Alternativlely allowing us to replace or extend the ISceneManagerHandler setup or the NetworkSceneManager itself, by making these components not internal, could solve the problem without needing to fork the NGO repository.
Avoiding Addressable Scenes isn't a practical option for me. It would require a significant overhaul of my systems that rely on asset-based events and data, which are accessed and modified by various systems such as UI, player interactions, and scenes.
I've also considered building my own system. However, creating a solution for Addressable scene management to function alongside NGO's existing framework feels like an unnecessary duplication of effort. Moreover, it seems this would require me to add features like auto scene migration support, addressing a problem which to me seems to be rooted at a different level, specifically syncing scene IDs and providing scenes. I'd prefer to see enhancements to the existing NetworkSceneManager to directly support Addressables or at least make it possible to replace the NetworkSceneManager with a custom implementation.
I am not an expert in these matters and I hope that my request is not too uneducated. I will continue to search for solutions.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading NetworkSceneManager and its ISceneManagerHandler setup, including the default DefaultSceneManagerHandler, and review the context from closed Issue #423. Define whether the completed work should support Addressable scenes through a custom provider or make the scene-management components replaceable without a fork.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp, unity
- Domain
- networking
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100