Question by
saeedpheonix · Nov 30, 2020 at 03:07 PM ·
networkingmultiplayer-networkingunity multiplayer
NetworkMigrationManager does not work with unet matchmaker
hi everybody , I have a question about host migration in unet . When executing the following code . it work only on lan game but does not work on unet matchmaker , whats problem? I understand that the following code is for the lan game. I tried to convert to matchmaking but i cant:( please help
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.Networking.NetworkSystem;
public class host_migration : NetworkMigrationManager {
public static host_migration Instance;
private PeerInfoMessage m_NewHostInfo = new PeerInfoMessage();
private NetworkManager networkmanager;
private void Awake()
{
print("Migration Awake call....");
if (Instance == null) Instance = this;
}
// called on client after the connection to host is lost. controls whether to switch Scenes
protected override void OnClientDisconnectedFromHost(NetworkConnection conn,out SceneChangeOption sceneChange)
{
base.OnClientDisconnectedFromHost(conn, out sceneChange);
print("OnClientDisconnectedFromHost");
bool newhost;
FindNewHost(out m_NewHostInfo, out newhost);
print("New host :- " + newhost);
if (newhost)
{
print("You become a new host at port :- " + NetworkManager.singleton.networkPort);
BecomeNewHost(NetworkManager.singleton.networkPort);
}
else
{
Reset(this.oldServerConnectionId);
waitingReconnectToNewHost = true;
NetworkManager.singleton.networkAddress = m_NewHostInfo.address;
NetworkManager.singleton.client.ReconnectToNewHost(m_NewHostInfo.address, NetworkManager.singleton.networkPort);
print("You become a new client reconnect port -------> " + NetworkManager.singleton.networkPort);
print("new server ip :- " + m_NewHostInfo.address);
}
}
// called on host after the host is lost. host MUST change Scenes
protected override void OnServerHostShutdown()
{
base.OnServerHostShutdown();
}
// called on new host (server) when a client from the old host re-connects a player
protected override void OnServerReconnectPlayer(NetworkConnection newConnection,GameObject oldPlayer,int oldConnectionId,short playerControllerId)
{
base.OnServerReconnectPlayer(newConnection, oldPlayer, oldConnectionId, playerControllerId);
ReconnectPlayerForConnection(newConnection, oldPlayer, oldConnectionId, playerControllerId);
}
protected override void OnServerReconnectPlayer(NetworkConnection newConnection, GameObject oldPlayer, int oldConnectionId, short playerControllerId, NetworkReader extraMessageReader)
{
base.OnServerReconnectPlayer(newConnection, oldPlayer, oldConnectionId, playerControllerId, extraMessageReader);
}
// called on new host (server) when a client from the old host re-connects a non-player GameObject
protected override void OnServerReconnectObject(NetworkConnection newConnection,GameObject oldObject,int oldConnectionId)
{
base.OnServerReconnectObject(newConnection, oldObject, oldConnectionId);
ReconnectObjectForConnection(newConnection, oldObject, oldConnectionId);
}
// called on both host and client when the set of peers is updated
protected override void OnPeersUpdated(PeerListMessage peers)
{
base.OnPeersUpdated(peers);
}
// utility function called by the default UI on client after connection to host was lost, to pick a new host.
public override bool FindNewHost(out PeerInfoMessage newHostInfo,out bool youAreNewHost)
{
print("FindNewHost");
return base.FindNewHost(out newHostInfo, out youAreNewHost);
}
// called when the authority of a non-player GameObject changes
protected override void OnAuthorityUpdated(GameObject go,int connectionId,bool authorityState)
{
base.OnAuthorityUpdated(go, connectionId, authorityState);
print("OnAuthorityUpdated");
}
}
Comment
Your answer
Follow this Question
Related Questions
OnLobbyServerSceneLoadedForPlayer not called for client 1 Answer
Spawned item before client joins not visible 0 Answers
Unity UNET - Client unable to move 0 Answers
Android wifi multiplayer game UI buttons! 0 Answers
How to correctly set scoring and player naming in agar.io-like mobile network game? 0 Answers