PUN☀️三、服务器大厅、服务器房间
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                PUN☀️三、服务器大厅、服务器房间
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                文章目錄
- 🟥 目標
 - 🟧 開發過程
 - 1?? Unity界面
 - 2?? 用戶名同步
 - 3?? 點擊開始連接后,開始連接隱藏
 
- 🟨 服務器房間設置
 - 🚩服務器房間屬性
 
🟥 目標
1、點“開始連接”,進入房間
2、將你的用戶名發送到PUN,實現同步
類似游戲中能看到其他用戶名字
3、點擊開始連接,開始連接隱藏,出現正在連接中的字樣。
🟧 開發過程
1?? Unity界面
a、界面
完成目標中UI的設置與邏輯。代碼自行編寫。
 
b、腳本綁定
實現點擊“開始連接”,進入房間。
- 開始連接按鈕,綁定 Launcher 腳本的 Skode_JoinRoom
 
2?? 用戶名同步
告訴PUN你的名字,用于后面進行顯示。
- 下腳本掛載到任意物體上,給該腳本綁定輸入框
 - 輸入框的OnEndEdit,綁定該腳本動態(Dynamic string)的SetPlayerName方法
 
3?? 點擊開始連接后,開始連接隱藏
注意:在連接服務器失敗OnDisconnected() 時,顯示開始連接和輸入名字:
Launcher最終代碼:
using UnityEngine; using Photon.Pun; using Photon.Realtime;public class Launcher : MonoBehaviourPunCallbacks {#region Parameters[Tooltip("連接服務器失敗后要顯示的物體")]public GameObject[] failedShow;//此客戶端的版本號。用戶之間通過gameVersion(允許你做出破壞性的改變)進行隔離。string gameVersion = "1";[SerializeField][Tooltip("最大連接人數")]byte maxPlayersPerRoom = 4;bool isPressPlay = false;#endregion#region Mono CallBacksvoid Awake(){// 這確保我們可以在主客戶端和同一房間的所有客戶端上使用photonnet . loadlevel()自動同步它們的級別PhotonNetwork.AutomaticallySyncScene = true;}void Start(){ConnectServer();}#endregion#region Public Method//綁定到開始連接上:連接到服務器房間public void Skode_JoinRoom(){isPressPlay = true;//若還未連接服務器,則先連接服務器,再加入房間if (!PhotonNetwork.IsConnected)ConnectServer();elseLoadRoom();}#endregion#region Private Methods//連接到服務器void ConnectServer(){// 檢查是否連接了服務器if (!PhotonNetwork.IsConnected){//首先連接到光子在線服務器。PhotonNetwork.GameVersion = gameVersion;PhotonNetwork.ConnectUsingSettings();}}void LoadRoom(){PhotonNetwork.JoinRandomRoom();}void LoadScene(){PhotonNetwork.LoadLevel("Room for " + PhotonNetwork.CurrentRoom.PlayerCount);}#endregion#region Pun Callbacks// 連接服務器成功回調public override void OnConnectedToMaster(){if (isPressPlay)LoadRoom();}//連接服務器失敗回調public override void OnDisconnected(DisconnectCause cause){Debug.LogWarningFormat("OnDisconnected() was called by PUN with reason {0}", cause);for (int i = 0; i < failedShow.Length; i++){failedShow[i].SetActive(true);}}// 加入房間成功回調public override void OnJoinedRoom(){//主客戶端加載場景即可。其他客戶端進入房間后,會自動加載主客戶端的場景if (PhotonNetwork.IsMasterClient)LoadScene();}//加入房間失敗回調public override void OnJoinRandomFailed(short returnCode, string message){Debug.Log("we failed to join a random room, maybe none exists or they are all full. No worries, we create a new room.");//創建房間后,會自動加入房間。從而觸發加入房間成功的回調。PhotonNetwork.CreateRoom(null, new RoomOptions { MaxPlayers = maxPlayersPerRoom });}#endregion }🟨 服務器房間設置
那么,我們來想一下:
- 我們建好房間了,可想更改房間參數,更改房間最大人數,怎么辦呢?
 - 以及更改了,有沒有回調啊?
 - 加入隨即房間時,能不能自動篩選房間啊?
 
🚩服務器房間屬性
完成服務器房間屬性、自定義屬性的設置、更改。
 
 大家還有什么問題,歡迎在下方留言!
 
 
 如果你有 技術的問題 或 項目開發 
都可以加下方聯系方式
和我聊一聊你的故事🧡
總結
以上是生活随笔為你收集整理的PUN☀️三、服务器大厅、服务器房间的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: android mysql 图片_and
 - 下一篇: linux pdm 查看工具,linux