Search Issue Tracker

Won't Fix

Votes

0

Found in

2019.2

2019.3.0f1

2020.1

Issue ID

1212048

Regression

No

[UNET] NetworkManager.ClientChangeScene is called when loading a scene with NetworkManager script

Networking

-

How to reproduce:
1. Open the submitted project
2. Build and run the project
3. Notice the text field that appears
4. Open the Loading scene in the Editor
5. Enter Play mode

Expected result: "Title scene" is written in the text field
Actual result: "Lobby scene" is written in the text field

Reproducible with: 2019.2.19f1, 2019.3.0f5, 2020.1.0a20

Notes:
The issue is only reproducible in the Editor and will not reproduce on a build.
The issue is not reproducible on Unity 2017.4 ClientChangeScene method is missing in NetworkManager.
Could not test on Unity 2018.4 due to Multiplayer HLAPI errors.
Disabling reload domain in Enter Play Mode Settings fixes the issue.

  1. Resolution Note:

    Afaikt weird behaviour is happening as a network manager is being created as the system thinks a domain reload has happened and it should be recreated/reset, immediately when entering playmode. That is then setting offline/online scenes and loads it. I could get behaviour expected by doing this
    - Disable the networkcallback updater code in OnRuntimeInitializeOnLoad in NetworkIdentity.cs
    - Create a script which does the updates instead, calls NetworkIdentity.UNetStaticUpdate in a LateUpdate(), UNetStaticUpdate needs to be made public.
    - Add a GameObject with this updater script to the loader scene
    The package needs to be internalised for these edits, can be copied from Libary/PackageCache to Packages. Hopefully this workaround will be enough for situations like this since the feature is deprecated and an official fix will likely not happen.

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.