Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using System.Collections;
- public class networkManager : MonoBehaviour {
- public static bool connected {get; private set;}
- public static GameObject localPlayer;
- public static bool spawnedAlready = false;
- public string connectionIP = "127.0.0.1";
- public int portNumber = 8632;
- public int seedNumber = 1;
- public static int seed = 1;
- void Awake()
- {
- if(spawnedAlready == false){
- spawnedAlready = true;
- DontDestroyOnLoad(gameObject);
- }
- else{
- DestroyImmediate(gameObject);
- }
- }
- void Start(){
- Network.SetLevelPrefix(0);
- }
- void Update(){
- if (Input.GetKeyDown(KeyCode.Escape) && connected){
- Network.RemoveRPCs(localPlayer.networkView.viewID);
- Network.Disconnect();
- Application.Quit();
- }
- }
- private void OnGUI(){
- if(!connected){
- connectionIP = GUILayout.TextField(connectionIP);
- int.TryParse(GUILayout.TextField(portNumber.ToString()), out portNumber);
- int.TryParse(GUILayout.TextField(seedNumber.ToString()), out seedNumber);
- if(GUILayout.Button("Connect")){
- Network.Connect(connectionIP,portNumber);
- }
- if (GUILayout.Button("Host")){
- Network.InitializeServer(8,portNumber,true);
- }
- }
- else{
- int i = 0;
- while (i < Network.connections.Length) {
- GUILayout.Label("Player " + Network.connections[i] + " - " + Network.GetLastPing(Network.connections[i]) + " ms");
- i++;
- }
- }
- }
- IEnumerator LoadMeLevel(){
- Network.SetSendingEnabled(0, false);
- Network.isMessageQueueRunning = false;
- Network.SetLevelPrefix(1);
- Application.LoadLevel(1);
- yield return new WaitForSeconds(0.1F);
- Network.isMessageQueueRunning = true;
- Network.SetSendingEnabled(0, true);
- foreach(GameObject go in FindObjectsOfType(typeof(GameObject))){
- go.SendMessage("OnNetworkLoadedLevel", SendMessageOptions.DontRequireReceiver);
- }
- }
- //Messages
- void OnServerInitialized(){
- connected = true;
- Random.seed = Random.Range(1,999999);
- seed = Random.seed;
- seedNumber = seed;
- print("Server initialized with: "+Random.seed.ToString());
- StartCoroutine("LoadMeLevel");
- }
- void OnConnectedToServer(){
- print("Connected to server");
- }
- void OnPlayerConnected(NetworkPlayer player){
- print ("Playe connected. Sending seed: "+seed.ToString());
- networkView.RPC("GetSeed",RPCMode.OthersBuffered,new object[]{seed});
- }
- [RPC]
- void GetSeed(int theSeed){
- print("Received seed: "+theSeed.ToString());
- seed = theSeed;
- connected = true;
- StartCoroutine("LoadMeLevel");
- }
- void OnPlayerDisconnected(NetworkPlayer networkPlayer){
- Network.RemoveRPCs(networkPlayer);
- Network.DestroyPlayerObjects(networkPlayer);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement