- Home /
Networking not working
Hello I am trying to understand networking abit better. I've looked at some tutorials and I am pretty sure I understand my code fully but it just won't work. I can't connect from another client atleast I think so because its not spawning a first person controller. There is also something weird with the cameras going on. When I create or connect I suddenly get two camera perspectives which both seems to be the from the main camera (where the online script is attached). Here is the code attached to the Main camera: private var ipAdress : String = "127.0.0.1"; private var port : int = 25167; private var maxConnects : int = 15; public var playerObject : GameObject;
function OnGUI(){
if(Network.peerType == NetworkPeerType.Disconnected){
//GUILayout.BeginHorizontal();
GUI.Box(Rect(10, 10, 100, 20),"IP adress: ");
ipAdress = GUI.TextField (Rect (100, 10, 200, 20), ipAdress, 25);
//ipAdress = GUILayout.TextField(ipAdress);
//GUILayout.Label("IP adress");
//GUILayout.EndHorizontal();
var tempPort : String;
GUI.Box(Rect(10, 30, 100, 20),"Port: ");
tempPort = GUI.TextField(Rect(100, 30, 200, 20), port.ToString());
port = parseInt(tempPort);
if(GUI.Button(Rect(10, 60, 100, 20),"Connect")){
for(var i : GameObject in FindObjectsOfType (GameObject)){
i.BroadcastMessage("OnNetworkLoadLevel", SendMessageOptions.DontRequireReceiver);
}
Network.Connect(ipAdress, port);
}
if(GUI.Button(Rect(10, 85, 100, 20),"Create server")){
for(var i : GameObject in FindObjectsOfType (GameObject)){
i.BroadcastMessage("OnNetworkLoadLevel", SendMessageOptions.DontRequireReceiver);
}
createServer();
}
}
else {
if (GUILayout.Button("Disconnect"))
Network.Disconnect(200);
}
}
function createServer(){
var useNat = !Network.HavePublicAddress();
Network.InitializeServer(maxConnects, port, useNat);
}
function OnConnectedToServer(){
OnNetworkLoadLevel();
}
function OnPlayerDisconnected(player : NetworkPlayer){
Network.RemoveRPCs(player);
Network.DestroyPlayerObjects(player);
}
function OnDisconnectedFromServer(){
Application.LoadLevel(Application.loadedLevel);
}
function OnNetworkLoadLevel(){
yield WaitForSeconds(1);
if(Network.peerType == NetworkPeerType.Connecting){
Network.Instantiate(playerObject, transform.position, transform.rotation, 0);
}
//GetComponent(GUILayer).enabled = false;
GetComponent(Camera).rect = Rect(0.7,0.7,0.2,0.2);
}
Then I have this script on my first person controller: function Update () { if(!networkView.isMine){ this.gameObject.BroadcastMessage("DisableCamera"); GetComponent (CharacterMotor).enabled = false; GetComponent (FPSInputController).enabled = false; GetComponent(MouseLook).enabled = false;
}
}
So that one won't controll all the first person controllers and the DisableCamera simply calls to disable this camera. Any help and explanation would be very appreciated!!
Your answer
Follow this Question
Related Questions
How do I handle connection errors in a user friendly way? 0 Answers
Unity networking tutorial? 6 Answers
Question about UNET 0 Answers
Getting a reference on a client when another client connects 0 Answers
How to connect to a match by a string 0 Answers