Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using System.Collections;
- using UnityEngine.UI;
- public class network_control : MonoBehaviour
- {
- public InputField Server_Name;
- public InputField Player_Name;
- public GameObject Player_Camera;
- private const string typeName = "4d50prealpa";
- private bool isRefreshingHostList = false;
- private HostData[] hostList;
- private bool serverruns = false;
- private bool connected = false;
- private float server_search_time;
- private float spawncooldown;
- private GameObject MyPlayer;
- // START ########################################################################################
- private void Start(){
- }
- // CREATE SERVER ##############################################################################
- public void Create_Server(){
- if (connected) {
- Debug.Log( "Disconnect from Server and try Again!" );
- return;
- }
- Debug.Log( "Create Server!" );
- if (serverruns == false) {
- serverruns = true;
- Network.InitializeServer (1024, 25000, !Network.HavePublicAddress ());
- MasterServer.RegisterHost (typeName, Server_Name.text );
- }
- }
- private void OnServerInitialized(){
- Debug.Log( "Server Run!" );
- if (connected == false) {
- SpawnPlayer ();
- connected = true;
- }
- }
- // JOIN SERVER ##############################################################################
- public void Join_Server(){
- Debug.Log( "Join Server" );
- RefreshHostList ();
- }
- private void RefreshHostList(){
- if (!isRefreshingHostList){
- Debug.Log( "Get Server List!" );
- isRefreshingHostList = true;
- server_search_time = 10f;
- MasterServer.RequestHostList(typeName);
- }
- }
- private void Update(){
- if (server_search_time > 0f) {
- server_search_time = server_search_time - Time.deltaTime;
- if( isRefreshingHostList && server_search_time <= 0f ){
- server_search_time = 0f;
- isRefreshingHostList = false;
- Debug.Log( "Server List not Found!" );
- }
- }
- if (isRefreshingHostList && MasterServer.PollHostList().Length > 0){
- Debug.Log( "Server List Found!" );
- isRefreshingHostList = false;
- hostList = MasterServer.PollHostList();
- foreach( HostData ServerData in hostList ){
- if( Server_Name.text == ServerData.gameName ){
- Debug.Log( "Server Found!" );
- Connect_To_Server( ServerData );
- return;
- }
- }
- Debug.Log( "Server not Found!" );
- }
- if (spawncooldown > 0) {
- spawncooldown -= Time.deltaTime;
- }
- }
- private void Connect_To_Server( HostData ServerData ){
- if (serverruns == false) {
- Debug.Log( "Connect to: " + ServerData.gameName );
- serverruns = true;
- Network.Connect ( ServerData );
- }
- }
- void OnConnectedToServer(){
- if (connected == false) {
- Debug.Log( "Connected!" );
- connected = true;
- SpawnPlayer ();
- }
- }
- // DISCONNECT SERVER ##############################################################################
- public void Disconnect (){
- Debug.ClearDeveloperConsole ();
- if (connected ) {
- Debug.Log ("Disconnect!");
- Network.Destroy( MyPlayer );
- Network.Disconnect ();
- connected = false;
- serverruns = false;
- server_search_time = 0f;
- isRefreshingHostList = false;
- }
- }
- void OnPlayerDisconnected(NetworkPlayer player) {
- Debug.Log("Clean up after player " + player);
- Network.RemoveRPCs(player);
- Network.DestroyPlayerObjects(player);
- }
- void OnDisconnectedFromServer(NetworkDisconnection info) {
- if (Network.isServer) {
- Debug.Log ("Local server connection disconnected");
- } else if (info == NetworkDisconnection.LostConnection) {
- Debug.Log ("Lost connection to the server");
- }else{
- Debug.Log("Successfully diconnected from the server");
- }
- foreach( GameObject Player in GameObject.FindGameObjectsWithTag("Player") ){
- Destroy( Player );
- }
- connected = false;
- serverruns = false;
- server_search_time = 0f;
- isRefreshingHostList = false;
- }
- // SERVER SPAWN PLAYER ##############################################################################
- public void SpawnPlayer(){
- if (spawncooldown <= 0) {
- spawncooldown = 1f;
- MyPlayer = (GameObject)Network.Instantiate (Resources.Load ("Player"), Vector3.zero, Quaternion.identity, 0);
- if( MyPlayer.GetComponent<NetworkView>().isMine ){
- if( MyPlayer.GetComponent<network_player>() ){
- MyPlayer.GetComponent<network_player>().GetComponent<NetworkView>().RPC( "set_Player_Name", RPCMode.AllBuffered, Player_Name.text );
- }
- if( MyPlayer.GetComponent<motion_control>() ){
- MyPlayer.GetComponent<motion_control>().canControle = true;
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement