Skip to content
This repository has been archived by the owner on Aug 15, 2022. It is now read-only.

Network Instantiation Flush

TheYellowArchitect edited this page Feb 4, 2021 · 13 revisions

After creating or joining a server it is necessary to call NetworkObject.Flush on the related NetWorker. This is to notify Forge that unity is ready and it is possible to spawn NetworkBehaviors into the scene.

The function gets automatically called by the NetworkManager when you switch scenes if "Automatic Scenes" is ticked on said NetworkManager. (This is also what happens during the default MultiplayerMenu).

Note: Flush needs to be called on both the server and the client

On the server:

        int maxAllowedClients = 32;
        UDPServer server = new UDPServer(maxAllowedClients);
        server.Connect(port:8888);
        NetworkManager.Instance.Initialize(server);
        NetworkObject.Flush(server);

On the client when not switching scenes, or switching scenes manually:

    //Networker client = new UDPClient();

    client.serverAccepted += OnAccepted;

    ...

    public void OnAccepted(NetWorker sender)
    {
        NetworkObject.Flush(sender);
    }

If you are manually loading new scenes then Flush needs to be called every time when the new scene loaded on both the server and the client. The easiest is to subscribe to Unity's SceneManager.sceneLoaded event. Optionally you could use the NetworkManager.SceneReady method just like it would be used when "Automatic Scenes" is turned on.

NetworkObject is null! NetworkStart() still doesn't run!

  • Try turning off "Automatic Scenes" (NetworkManager) and "DontChangeScenesOnConnect" (MultiplayerMenu)
  • Make sure you flush as shown above

If your networkObject is still null, the problem is likely that it exists before MultiplayerMenu has created a server or client
Try creating it locally, after MultiplayerMenu has executed to the point you have a network, or, if you want to be certain it works, simply Instantiate your networkObject when a connection is made.

Home

Getting Started
Network Contract Wizard (NCW)
Network Object
Remote Procedure Calls (RPCs)
Unity Integration
Basic Network Samples
Scene Navigation
NetWorker
Master Server
Web Server
Netcoding Design Patterns
Troubleshooting
Miscellaneous
Forge Networking Alloy
Steamworks
Clone this wiki locally