PUN☀️实用API
文章目錄
- 🟥 當前房間人數
- 🟧 當前腳本是否屬于當前玩家
- 🟨 當前互聯網中的Player玩家是否屬于自己(是否是本地玩家)
- 🟩 當前是否離線模式
- 🟦 PUN當前網絡連接狀態
- 🟪 自己的昵稱
- 🟫 創建房間
- ? 自定義信息的同步
- ? 玩家分數
- 🟥 房間內所有玩家列表
- 🟧 房間內玩家唯一標志符ID
- 🟨 房間內該玩家的Number
- 🟩 委托:房間索引更改時調用
本節來講解PUN的實用API,
建議保存收藏,寫代碼時來查一查哦~
🟥 當前房間人數
int num = PhotonNetwork.CurrentRoom.PlayerCount;🟧 當前腳本是否屬于當前玩家
//需繼承MonoBehaviourPun bool isMine = photonView.IsMine;🟨 當前互聯網中的Player玩家是否屬于自己(是否是本地玩家)
bool isLocal = Player玩家.IsLocal;🟩 當前是否離線模式
bool isConnected = PhotonNetwork.IsConnected;false為離線,配合 PhotonServerSettings 使用。當勾選Start In Offline Mode時,為離線模式
作用:photonView.IsMine只能在線模式使用,即先連接服務器,這個代碼才能判斷,才不報錯。
但我們測試時,不連服務器。那么這個代碼就一直報錯。所以我們可以結合是否離線使用。比如這樣:
//如果當前處于離線模式,仍繼續執行下方代碼 //方便我們在離線模式下操作。 if (PhotonNetwork.IsConnected == true && photonView.IsMine == false)return;
🟦 PUN當前網絡連接狀態
string state = PhotonNetwork.NetworkClientState.ToString();🟪 自己的昵稱
PhotonNetwork.NickName🟫 創建房間
//創建只有最大人數的房間 PhotonNetwork.CreateRoom(null, new RoomOptions { MaxPlayers = maxPlayersPerRoom });//指定房間名、最大人數創建房間 PhotonNetwork.CreateRoom("房間名", new RoomOptions { MaxPlayers = maxPlayers }, null);? 自定義信息的同步
1、傳輸信息
using ExitGames.Client.Photon;
Hashtable props = new Hashtable() { { "IsPlayerReady", true } }; PhotonNetwork.LocalPlayer.SetCustomProperties(props);2、獲得信息
foreach (Player p in PhotonNetwork.PlayerList) {print(p.NickName);object isPlayerReady;if (p.CustomProperties.TryGetValue("IsPlayerReady", out isPlayerReady)){print((bool)isPlayerReady ? "當前玩家已準備好" : "當前玩家未準備好");} }3、獲得該玩家所有自定義信息
? 玩家分數
這是PUN預制的同步信息,不需要自己定義了
1、傳輸信息
//這將在本地設置分數,并將同步它在游戲中盡快。 PhotonNetwork.LocalPlayer.SetScore(0);/2、獲得信息
foreach (Player p in PhotonNetwork.PlayerList) {print(p.GetScore()); }🟥 房間內所有玩家列表
PhotonNetwork.PlayerList
foreach (Player p in PhotonNetwork.PlayerList) {print(p.NickName); }🟧 房間內玩家唯一標志符ID
當前房間中該玩家(可獲得自己的,也可是獲得別人的)的標識符ID。房間外面是-1。
它會在重新加入時改變。每個房間都不會重復使用id。
🟨 房間內該玩家的Number
【你想使用該屬性,那么需要在連接服務器場景掛載 PlayerNumbering 腳本】
與ID不一樣的是,該Number,是從0排序,幾個人,就到幾。
-1代表無索引(你沒掛該腳本,就這樣)
demo中,將該屬性用于判斷玩家信息條應該顯示的顏色。
foreach (Player p in PhotonNetwork.PlayerList) {print(p.GetPlayerNumber()); }🟩 委托:房間索引更改時調用
和上方的 Number 有關,當房間內玩家更新(變多或減少),帶動著PUN的Number也會變,這時便調用該委托。
demo中將該方法用于在這個時刻,更新玩家信息條顯示的顏色。
//每次房間索引更新時調用 PlayerNumbering.OnPlayerNumberingChanged += OnPlayerNumberingChanged;
大家還有什么問題,歡迎在下方留言!
如果你有 技術的問題 或 項目開發
都可以加下方聯系方式
和我聊一聊你的故事🧡
總結
以上是生活随笔為你收集整理的PUN☀️实用API的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ireport 子报表分页
- 下一篇: 神仙打架!2020年清华大学本科生特奖答