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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

PUN☀️实用API

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

文章目錄

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



本節(jié)來(lái)講解PUN的實(shí)用API,

建議保存收藏,寫(xiě)代碼時(shí)來(lái)查一查哦~

🟥 當(dāng)前房間人數(shù)

int num = PhotonNetwork.CurrentRoom.PlayerCount;



🟧 當(dāng)前腳本是否屬于當(dāng)前玩家

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



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

bool isLocal = Player玩家.IsLocal;



🟩 當(dāng)前是否離線模式

bool isConnected = PhotonNetwork.IsConnected;

false為離線,配合 PhotonServerSettings 使用。當(dāng)勾選Start In Offline Mode時(shí),為離線模式

作用:photonView.IsMine只能在線模式使用,即先連接服務(wù)器,這個(gè)代碼才能判斷,才不報(bào)錯(cuò)。

但我們測(cè)試時(shí),不連服務(wù)器。那么這個(gè)代碼就一直報(bào)錯(cuò)。所以我們可以結(jié)合是否離線使用。比如這樣:

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




🟦 PUN當(dāng)前網(wǎng)絡(luò)連接狀態(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 ? "當(dāng)前玩家已準(zhǔn)備好" : "當(dāng)前玩家未準(zhǔn)備好");} }

3、獲得該玩家所有自定義信息

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



? 玩家分?jǐn)?shù)

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

1、傳輸信息

//這將在本地設(shè)置分?jǐn)?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)玩家唯一標(biāo)志符ID

當(dāng)前房間中該玩家(可獲得自己的,也可是獲得別人的)的標(biāo)識(shí)符ID。房間外面是-1。
它會(huì)在重新加入時(shí)改變。每個(gè)房間都不會(huì)重復(fù)使用id。

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



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

【你想使用該屬性,那么需要在連接服務(wù)器場(chǎng)景掛載 PlayerNumbering 腳本】

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

-1代表無(wú)索引(你沒(méi)掛該腳本,就這樣)

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

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



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

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

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

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





大家還有什么問(wèn)題,歡迎在下方留言!



如果你有 技術(shù)的問(wèn)題 項(xiàng)目開(kāi)發(fā)

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

和我聊一聊你的故事🧡

總結(jié)

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

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