45 lines
1.8 KiB
C#
45 lines
1.8 KiB
C#
|
// host mode related helper functions.
|
||
|
// usually they set up both server & client.
|
||
|
// it's cleaner to keep them in one place, instead of only in server / client.
|
||
|
using System;
|
||
|
|
||
|
namespace Mirror
|
||
|
{
|
||
|
public static class HostMode
|
||
|
{
|
||
|
// keep the local connections setup in one function.
|
||
|
// makes host setup easier to follow.
|
||
|
internal static void SetupConnections()
|
||
|
{
|
||
|
// create local connections pair, both are connected
|
||
|
Utils.CreateLocalConnections(
|
||
|
out LocalConnectionToClient connectionToClient,
|
||
|
out LocalConnectionToServer connectionToServer);
|
||
|
|
||
|
// set client connection
|
||
|
NetworkClient.connection = connectionToServer;
|
||
|
|
||
|
// set server connection
|
||
|
NetworkServer.SetLocalConnection(connectionToClient);
|
||
|
}
|
||
|
|
||
|
// call OnConnected on server & client.
|
||
|
// public because NetworkClient.ConnectLocalServer was public before too.
|
||
|
public static void InvokeOnConnected()
|
||
|
{
|
||
|
// call server OnConnected with server's connection to client
|
||
|
NetworkServer.OnConnected(NetworkServer.localConnection);
|
||
|
|
||
|
// call client OnConnected with client's connection to server
|
||
|
// => previously we used to send a ConnectMessage to
|
||
|
// NetworkServer.localConnection. this would queue the message
|
||
|
// until NetworkClient.Update processes it.
|
||
|
// => invoking the client's OnConnected event directly here makes
|
||
|
// tests fail. so let's do it exactly the same order as before by
|
||
|
// queueing the event for next Update!
|
||
|
//OnConnectedEvent?.Invoke(connection);
|
||
|
((LocalConnectionToServer)NetworkClient.connection).QueueConnectedEvent();
|
||
|
}
|
||
|
}
|
||
|
}
|