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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

PUN补充

發布時間:2023/12/18 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PUN补充 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

身份驗證

PhotonNetwork.AuthValues = new AuthenticationValues(string); 添加身份標識后,同一個房間不會出現具有相同標識的對象,確保對象唯一

OnRoomListUpdate

當加入游戲大廳,自動調用該方法,可獲取到當前大廳的所有房間信息,判斷需要進入的房間是否存在

同步消息

  • 移動對象添加Photonview組件,可以同步移動對象的位置,角度,縮放和動畫信息
    腳本繼承IPunObservable接口 可以將本地客戶端的信息同步到遠程客戶端的“自己”,該腳本必須和PhotonView組件在同一個對象上,并添加到Observed中。如果不理解可以參考PhotonTransformView腳本
    官方API
  • using Photon.Pun; public class PunSync : MonoBehaviourPun, IPunObservable {bool isCanInput = true;ActorInput actorInput;//用戶輸入void Start(){actorInput = GetComponent<ActorInput>();}public void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info){if (stream.IsWriting){stream.SendNext(actorInput.isEnableInput);//本地發送消息}else{isCanInput = (bool)stream.ReceiveNext();//遠程自己接收}}void Update(){if (!photonView.IsMine)//本地的自己不需要執行 只需要遠程的“自己”執行即可{actorInput.isEnableInput = isCanInput;//使用接收的消息}} }
  • 添加IOnEventCallback接口的腳本,可以接受遠程對象發送的消息 不需要依賴Photonview組件
    官方詳解
  • using ExitGames.Client.Photon; using Photon.Pun; using Photon.Realtime; using UnityEngine; public class LoginEvent : MonoBehaviour, IOnEventCallback {//接收通知public void OnEvent(EventData photonEvent){if (photonEvent.Code == PunEvent.Login){//獲取消息 object[] data = (object[])photonEvent.CustomData;var message=(string)data[0];//"消息"}}private void OnEnable(){PhotonNetwork.AddCallbackTarget(this);//類似添加事件}private void OnDisable(){PhotonNetwork.RemoveCallbackTarget(this);//類似移除事件} }發送消息 參數:事件編碼 數據 事件參數PhotonNetwork.RaiseEvent(1, "消息", new RaiseEventOptions() { Receivers = ReceiverGroup.All }, SendOptions.SendUnreliable);

    總結

    以上是生活随笔為你收集整理的PUN补充的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。