- Home /
Question by
trallaton · Feb 28, 2014 at 08:39 AM ·
multiplayernot working
I have a Multiplayer script here
var spawnObject : Transform;
var gameName : String = "level1";
private var refreshing : boolean = false;
private var hostData : HostData[];
function OnGUI () {
if(!Network.isClient && !Network.isServer) {
if (GUI.Button(Rect(Screen.width/5,Screen.height/7,100,20),"Start Server")) {
startServer();
}
if (GUI.Button(Rect(Screen.width/5,Screen.height/7 + 30,100,20),"Refresh Hosts")){
Debug.Log("Refresh");
refreshHostList();
}
if(hostData) {
for(var i:int = 0; i<hostData.length; i++) {
if(GUI.Button(Rect(Screen.width/2,Screen.height/2 + 60,100,20),hostData[i].gameName)) {
Network.Connect(hostData[i]);
}
}
}
}
}
function Update () {
if(refreshing) {
if(MasterServer.PollHostList().Length > 0) {
refreshing = false;
Debug.Log(MasterServer.PollHostList().Length);
hostData = MasterServer.PollHostList();
}
}
}
function startServer () {
Network.InitializeServer(32,25001, !Network.HavePublicAddress);
MasterServer.RegisterHost(gameName, "Tutorial Game", " this is a tutorial");
}
function OnServerInitialized () {
Debug.Log("server initialized");
spawnPlayer();
}
function OnConnectedToServer () {
spawnPlayer();
}
function spawnPlayer () {
Network.Instantiate(playerPrefab, spawnObject.position, Quaternion.identity, 0);
}
function OnMasterServerEvent(mse:MasterServerEvent) {
if(mse == MasterServerEvent.RegistrationSucceeded) {
Debug.Log("Registered Server");
}
}
function refreshHostList () {
MasterServer.RequestHostList(gameName);
refreshing = true;
}
for some reason the server works fine but when i open up a second copy of the game it doesn't act like their is two players in the game except the window that I made the server with, controls both it and the second window but I checked the box for "Run in background" therefore it isn't that but maybe i just implemented the script wrong I don't know... If I have this script what would be the proper way to add it to my game?
Comment
Best Answer
Answer by fafase · Feb 28, 2014 at 08:47 AM
The issue does not come from the Network script, at least I would guess. Both objects move together so I would think it comes from the control script where you do the movements.
You are probably missing :
function Update()
{
if (networkView.isMine)
{
InputMovement();
}
}
The check makes sure you are controlling the appropriate object.