using System.Collections; using System.Collections.Generic; using UnityEngine; public class PhotonServer : MonoBehaviour { // Use Server Process is Done?. private static bool isServer = false; // Use Scene Transition (variableString). const string nextScene = "mainMenu"; // Use this for Awake New Scene. void Awake() { // immortal Object. DontDestroyOnLoad(this.gameObject); } // Use this for Finalize Server Application. void ServerFinalize() { // delete immortal object. Destroy(this.gameObject); } // Use Server Disconnect (Server Process All Done). void DisconnectServer() { // Disconnect PhotonServer. PhotonNetwork.Disconnect(); ServerFinalize(); } // Use this for initialization. void Start () { // Connect PhotonRealtime Server. PhotonNetwork.ConnectUsingSettings(null); } // Update is called once per frame. void Update() { // confirm server connected . if (!isServer) { // Server Disconnect Process (Server Process All Done). DisconnectServer(); } } // ロビー設定を間違えた際に入ってくる関数. void OnConnectedToPhoton() { Debug.Log("your Photon Setting : is Checked "); } //ロビーへ入室完了. void OnJoinedLobby() { // どこかのルームへ入室. PhotonNetwork.JoinRandomRoom(); Debug.Log("Joined Lobby"); } // ロビーへの入室が失敗. void OnFailedToConnectToPhoton() { Application.LoadLevel(nextScene); } // ルームへ入室失敗. void OnPhotonRandomJoinFailed() { // 自分でルームを作成. //myRoomHash = new ExitGames.Client.Photon.Hashtable(); //myRoomHash.Add("time", "0"); //PhotonNetwork.CreateRoom(Random.Range(1.0f, 100f).ToString(), true, true, 8, myRoomHash, roomProps); PhotonNetwork.CreateRoom(null); } // 無事にルームへ入室. void OnJoinedRoom() { //PhotonNetwork.LoadLevel("Room"); isServer = true; } // PhotonRealtimeとの接続が切断された場合. void OnConnectionFail() { Application.LoadLevel(nextScene); } // ルームに誰か別のプレイヤーが入室したとき. void OnPhotonPlayerConnected(PhotonPlayer newPlayer) { // 自分がマスタークライアントだったとき. if (PhotonNetwork.isMasterClient) { // Do Something Process . // ->>. } } // Player leave this room. void OnLeftRoom() { Debug.Log("Left Player!!"); } // Ser Server Flag. public static void ServerConnectFlag(bool isConnect) { // server flag Changes Process. isServer = isConnect; } // Use Confirm Client is Master ?. public static bool ConfirmMasterClient() { return PhotonNetwork.isMasterClient; } // Use InRoom PlayerCount. public static int InRoomPlayerCount() { return PhotonNetwork.room.PlayerCount; } // Use Server PlayerCount. public static int ServerPlayerCount() { return PhotonNetwork.countOfPlayers; } // Use Server RoomCount. public static int ServerRoomCount() { return PhotonNetwork.countOfPlayersInRooms; } // Use Create Original Room. public void CreateRoom(string roomName, int playerCount, string password) { string roomNameStr = roomName; if (!string.IsNullOrEmpty(password)) roomNameStr += "_" + password; PhotonNetwork.CreateRoom( roomNameStr, new RoomOptions() { MaxPlayers = (byte)playerCount }, null); } // Use Joined In Random Room. public void RandomEnter() { PhotonNetwork.JoinRandomRoom(); } // Show All Room. public static void ShowAllRoom() { if (PhotonNetwork.GetRoomList().Length == 0) { Debug.LogWarning("Room Nothing!!"); } else { GameObject roomObj = null; foreach (RoomInfo room in PhotonNetwork.GetRoomList()) { //roomObj = Instantiate(Resources.Load(CommonConst.ROOM_ITEM)) as GameObject; //roomObj.transform.parent = scrollTran; //roomObj.transform.localScale = Vector3.one; //roomObj.GetComponent().SetData(room); } } } }