fix: NetworkPrefabs container's elements invalidated in the NetworkManager after relaunching Unity Project#905
Conversation
|
I think I'll co-review :) |
| // If the scene is dirty and the asset database is not currently updating then we can update NetworkPrefab information | ||
| if (activeScene.isDirty && !UnityEditor.EditorApplication.isUpdating) |
There was a problem hiding this comment.
IDK why Git is confused about the diff but this part is the only diff we actually have — and it looks good to me! 🚀
There was a problem hiding this comment.
I believe it is because all of the indentions and line numbers changed when I enclosed all of the Network Prefab list stuff within that if statement.
There was a problem hiding this comment.
It looks good to me, the only thing I am slightly worried about, is whether we can use a conditional early return/guard instead of enclosing all the code below, it makes it less readable given the Identations.
| // If the scene is dirty and the asset database is not currently updating then we can update NetworkPrefab information | ||
| if (activeScene.isDirty && !UnityEditor.EditorApplication.isUpdating) |
There was a problem hiding this comment.
It looks good to me, the only thing I am slightly worried about, is whether we can use a conditional early return/guard instead of enclosing all the code below, it makes it less readable given the Identations.
* develop: (21 commits) feat: NetworkObject Parenting (#855) refactor: move RpcMethodId serialization from ILPP to Core (#910) fix: NetworkPrefabs container's elements invalidated in the NetworkManager after relaunching Unity Project (#905) feat!: OnNetworkSpawn / OnNetworkDespawn (#865) feat: Add missing XMLdoc comment (#897) refactor: upgrade ILPP backend, drop 2019.4 support, rename types/fields (#895) fix: do not access/render runtime info if not playing in the editor (#898) feat: Add name property for network variables (#891) chore: delete PhilTestResults.xml (#894) feat: MultiInstanceHelpers to use fixed FrameRate by default (#893) test: General MultiInstanceHelper improvements (#885) refactor: isKinematic set to true for rigid bodies of non-authorized instances (#886) docs: adding more info to help debug on network transform error message (#892) feat: Add RPC Name Lookup Table Provided by NetworkBehaviourILPP (#875) fix: remove OnClientConnectedCallback registration from StatsDisplay (#882) feat: Add profiling decorator pattern (#878) refactor: Removing dead code for NETWORK_VARIABLE_UPDATE (#880) fix: update package version to 0.2.0 because of unity minversion change (#881) docs: Fix typo in changelog version title docs: Hotfix Changelog for 0.1.1 and manual update (#873) ... # Conflicts: # com.unity.multiplayer.mlapi/Runtime/Core/NetworkBehaviour.cs # com.unity.multiplayer.mlapi/Runtime/Core/NetworkManager.cs # com.unity.multiplayer.mlapi/Tests/Runtime/BaseMultiInstanceTest.cs # com.unity.multiplayer.mlapi/Tests/Runtime/BaseMultiInstanceTest.cs.meta
* develop: (67 commits) feat: NetworkObject Parenting (#855) refactor: move RpcMethodId serialization from ILPP to Core (#910) fix: NetworkPrefabs container's elements invalidated in the NetworkManager after relaunching Unity Project (#905) feat!: OnNetworkSpawn / OnNetworkDespawn (#865) feat: Add missing XMLdoc comment (#897) refactor: upgrade ILPP backend, drop 2019.4 support, rename types/fields (#895) fix: do not access/render runtime info if not playing in the editor (#898) feat: Add name property for network variables (#891) chore: delete PhilTestResults.xml (#894) feat: MultiInstanceHelpers to use fixed FrameRate by default (#893) test: General MultiInstanceHelper improvements (#885) refactor: isKinematic set to true for rigid bodies of non-authorized instances (#886) docs: adding more info to help debug on network transform error message (#892) feat: Add RPC Name Lookup Table Provided by NetworkBehaviourILPP (#875) fix: remove OnClientConnectedCallback registration from StatsDisplay (#882) feat: Add profiling decorator pattern (#878) refactor: Removing dead code for NETWORK_VARIABLE_UPDATE (#880) fix: update package version to 0.2.0 because of unity minversion change (#881) docs: Fix typo in changelog version title docs: Hotfix Changelog for 0.1.1 and manual update (#873) ... # Conflicts: # com.unity.multiplayer.mlapi/Tests/Runtime/com.unity.multiplayer.mlapi.runtimetests.asmdef # testproject/ProjectSettings/EditorBuildSettings.asset
This resolves the following issue:
Whilst upgrading Boss Room to MLAPI develop, we encountered an issue with the Network Manager and its NetworkPrefabs container, where if we delete any of the prefabs or variants that were added to the NetworkPrefabs list, then save (apply changes to) the NetworkingManager prefab, then shut down Unity and load it up again, the NetworkPrefabs list will be invalidated, most of the elements will have a null value.
Github Issue 904
Additional Notes:
This issue only arises if you make changes to a prefab instance and then apply those changes to the source prefab using Overrides->Apply All. This only applies to the NetworkPrefabs list generation while in the editor as this list is rebuilt during runtime and the only time you would want to generate the list while in the editor is if the currently opened scene is dirty and the asset database is not being updated.