日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

PUN☀️实用API

發(fā)布時間:2023/12/18 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PUN☀️实用API 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • 🟥 當前房間人數(shù)
  • 🟧 當前腳本是否屬于當前玩家
  • 🟨 當前互聯(lián)網(wǎng)中的Player玩家是否屬于自己(是否是本地玩家)
  • 🟩 當前是否離線模式
  • 🟦 PUN當前網(wǎng)絡連接狀態(tài)
  • 🟪 自己的昵稱
  • 🟫 創(chuàng)建房間
  • ? 自定義信息的同步
  • ? 玩家分數(shù)
  • 🟥 房間內(nèi)所有玩家列表
  • 🟧 房間內(nèi)玩家唯一標志符ID
  • 🟨 房間內(nèi)該玩家的Number
  • 🟩 委托:房間索引更改時調(diào)用



本節(jié)來講解PUN的實用API,

建議保存收藏,寫代碼時來查一查哦~

🟥 當前房間人數(shù)

int num = PhotonNetwork.CurrentRoom.PlayerCount;



🟧 當前腳本是否屬于當前玩家

//需繼承MonoBehaviourPun bool isMine = photonView.IsMine;



🟨 當前互聯(lián)網(wǎng)中的Player玩家是否屬于自己(是否是本地玩家)

bool isLocal = Player玩家.IsLocal;



🟩 當前是否離線模式

bool isConnected = PhotonNetwork.IsConnected;

false為離線,配合 PhotonServerSettings 使用。當勾選Start In Offline Mode時,為離線模式

作用:photonView.IsMine只能在線模式使用,即先連接服務器,這個代碼才能判斷,才不報錯。

但我們測試時,不連服務器。那么這個代碼就一直報錯。所以我們可以結(jié)合是否離線使用。比如這樣:

//如果當前處于離線模式,仍繼續(xù)執(zhí)行下方代碼 //方便我們在離線模式下操作。 if (PhotonNetwork.IsConnected == true && photonView.IsMine == false)return;




🟦 PUN當前網(wǎng)絡連接狀態(tài)

string state = PhotonNetwork.NetworkClientState.ToString();



🟪 自己的昵稱

PhotonNetwork.NickName



🟫 創(chuàng)建房間

//創(chuàng)建只有最大人數(shù)的房間 PhotonNetwork.CreateRoom(null, new RoomOptions { MaxPlayers = maxPlayersPerRoom });//指定房間名、最大人數(shù)創(chuàng)建房間 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、獲得該玩家所有自定義信息

Debug.Log(玩家Player.CustomProperties.ToStringFull());



? 玩家分數(shù)

這是PUN預制的同步信息,不需要自己定義了

1、傳輸信息

//這將在本地設置分數(shù),并將同步它在游戲中盡快。 PhotonNetwork.LocalPlayer.SetScore(0);

/2、獲得信息

foreach (Player p in PhotonNetwork.PlayerList) {print(p.GetScore()); }



🟥 房間內(nèi)所有玩家列表

PhotonNetwork.PlayerList

foreach (Player p in PhotonNetwork.PlayerList) {print(p.NickName); }



🟧 房間內(nèi)玩家唯一標志符ID

當前房間中該玩家(可獲得自己的,也可是獲得別人的)的標識符ID。房間外面是-1。
它會在重新加入時改變。每個房間都不會重復使用id。

foreach (Player p in PhotonNetwork.PlayerList) {print(p.ActorNumber); }



🟨 房間內(nèi)該玩家的Number

【你想使用該屬性,那么需要在連接服務器場景掛載 PlayerNumbering 腳本】

與ID不一樣的是,該Number,是從0排序,幾個人,就到幾。

-1代表無索引(你沒掛該腳本,就這樣)

demo中,將該屬性用于判斷玩家信息條應該顯示的顏色。

foreach (Player p in PhotonNetwork.PlayerList) {print(p.GetPlayerNumber()); }



🟩 委托:房間索引更改時調(diào)用

和上方的 Number 有關(guān),當房間內(nèi)玩家更新(變多或減少),帶動著PUN的Number也會變,這時便調(diào)用該委托。

demo中將該方法用于在這個時刻,更新玩家信息條顯示的顏色。

//每次房間索引更新時調(diào)用 PlayerNumbering.OnPlayerNumberingChanged += OnPlayerNumberingChanged;





大家還有什么問題,歡迎在下方留言!



如果你有 技術(shù)的問題 項目開發(fā)

都可以加下方聯(lián)系方式

和我聊一聊你的故事🧡

總結(jié)

以上是生活随笔為你收集整理的PUN☀️实用API的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。