生活随笔
收集整理的這篇文章主要介紹了
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补充的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。