- Home /
Client does not recieve host's Network.Instantiate during game setup
As to topic suggest, I'm having a bit of a problem getting the character models to show up on all of the connected players. The client's can see each other but cannot see the host's character model. Subsequently, the host sees the game as it should be seen, with all the players visible and moving about.
The server is non-authoritative, and the error I believe exists in the start up code where I load the level and setup the game.
@RPC
function StartGame() {
//Stop data sending
Network.SetSendingEnabled(0,false);
Network.isMessageQueueRunning = false;
DontDestroyOnLoad(this);
//Load the level and wait a bit
Application.LoadLevel("Main");
yield;
yield;
//Start again
Network.isMessageQueueRunning=true;
Network.SetSendingEnabled(0,true);
//Make the players
var object : Transform;
object = Network.Instantiate(playerPrefab,Vector3(0,5,0),Quaternion.Euler(0,90,0),0);
//Finally, kill this script so the GUI doesn't show up anymore
Destroy(this);
}
This RPC is called like this:
if (GUILayout.Button("BEGIN MATCH")) {
this.networkView.RPC("StartGame",RPCMode.AllBuffered);
}
I thought originally that the host's character was merely being destroyed on Application.LoadLevel but when I reordered the StartGame() method the problem persisted. The host is obviously both playing and creating the server to the master server. The players are shown to be connected to the host and it seems everything should check out.
Is there some situations in which an Network.Instantiate would not send to the original sender? Or, What's the proper way to go about this?
EDIT: Related Question: Is there any way to globally across all clients set DontDestroyOnLoad?