- Home /
Question by
Theacesofspades · Jul 11, 2013 at 05:04 PM ·
networkserverclientconnectdisconnect
Can anyone help me with my network script?
So i am trying to learn how to make a networking game, i can start a server and connect to it but im having problems disconnecting, or so i think. Im not sure which functions to use and i was hoping for some help. The script that i made up is:
using UnityEngine;
using System.Collections;
public class NetworkMenu : MonoBehaviour
{
public string connectionIP = "127.0.0.1";
public int connectionPort = 25001;
public GameObject player;
void OnDisconnectedFromServer(NetworkDisconnection info)
{
if (Network.isServer)
{
// If you are the server
Destroy(GameObject.FindWithTag("Player"));
MasterServer.UnregisterHost();
}
else{
if (info == NetworkDisconnection.LostConnection)
{
// If you lose connection to the server
Destroy(GameObject.FindWithTag("Player"));
}else{
// If you are client and you press disconnect
Destroy(GameObject.FindWithTag("Player"));
}
}
}
void SpawnPlayer ()
{
Instantiate(player, transform.position, Quaternion.identity);
}
void OnServerInitialized ()
{
SpawnPlayer ();
}
void OnConnectedToServer ()
{
SpawnPlayer ();
}
void OnGUI()
{
if (Network.peerType == NetworkPeerType.Disconnected)
{
GUI.Label(new Rect(10, 10, 300, 20), "Status: Disconnected");
if (GUI.Button(new Rect(10, 30, 120, 20), "Client Connect"))
{
Network.Connect(connectionIP, connectionPort);
}
if (GUI.Button(new Rect(10, 50, 120, 20), "Initialize Server"))
{
Network.InitializeServer(32, connectionPort, false);
}
}
else if (Network.peerType == NetworkPeerType.Client)
{
GUI.Label(new Rect(10, 10, 300, 20), "Status: Connected as Client");
if (GUI.Button(new Rect(10, 30, 120, 20), "Disconnect"))
{
Network.Disconnect(200);
}
}
else if (Network.peerType == NetworkPeerType.Server)
{
GUI.Label(new Rect(10, 10, 300, 20), "Status: Connected as Server");
if (GUI.Button(new Rect(10, 30, 120, 20), "Disconnect"))
{
Network.Disconnect(200);
}
}
}
}
Also for some reason the OnConnectedToServer function isnt being called. What else should i add to this Script? Thanks for any help.
Comment
Answer by Kiloblargh · Jul 11, 2013 at 06:16 PM
127.0.0.1 isn't a real IP, it is a loopback address meaning localhost. And I don't think you can be the server and also be connected to yourself as client. Run two instances on your local network and get the real IP of the server and connect to that.