Here is my Code,
Still trying to work out how to destroy objects neatly.
using UnityEngine;
using System.Collections;
public class LanNetworkManager : MonoBehaviour {
public string gameName = "not needed for lan";
public string hostGameName = "Tutorial Networking";
public GameObject playerPrefab;
public Transform spawnObject;
public int maxPlayers = 6;
private string ip = "127.0.0.1";
private int playerCount = 0;
private bool gameStarted = false;
private int btnX;
private int btnY;
private int btnW;
private int btnH;
void Start(){
btnX = 10;
btnY = 10;
btnW = 130;
btnH = 20;
}
void startServer(){
bool useNat = false; //!Network.HavePublicAddress ();
Network.InitializeServer (maxPlayers, 25017,useNat);
}
void OnServerInitialized(){
Debug.Log ("Server Started");
spawnPlayer ();
}
void OnConnectedToServer(){
Debug.Log ("Server Joined");
spawnPlayer ();
}
void ConnectToLanServer(string ipA){
Network.Connect (ipA, 25017);
}
void OnPlayerConnected(){
playerCount++;
Debug.Log ("Player Connected");
}
void OnPlayerDiconnected(){
playerCount--;
Debug.Log ("Player Diconnected");
}
void OnGUI(){
if (!Network.isClient && !Network.isServer && !gameStarted) {
if (GUI.Button (new Rect (btnX, btnY, btnW, btnH), "Start Server")) {
gameStarted = true;
startServer ();
}
ip = GUI.TextField (new Rect (btnX, btnY * 4, btnW, btnH), "127.0.0.1");
if (GUI.Button (new Rect (btnX, btnY * 7, btnW, btnH), "Manual Connect")) {
gameStarted = true;
ConnectToLanServer (ip);
}
} else {
if(GUI.Button (new Rect(btnX,btnY*11,btnW,btnH),"Disconnect")){
gameStarted = false;
//Network.DestroyPlayerObjects(Network.player);
Network.Disconnect(500);
}
}
if (Network.isServer) {
GUI.Label (new Rect(btnX,btnY*15,btnW,btnH),"Players: " + (playerCount + 1) + "/" + maxPlayers);
}
}
void PlayerSpawned(){
Debug.Log ("Player Spawned");
}
void spawnPlayer(){
Network.Instantiate (playerPrefab, spawnObject.position, Quaternion.identity, 0);
PlayerSpawned ();
}
}
↧