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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Unity-Photon Pun2个人总结

發(fā)布時間:2023/12/18 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Unity-Photon Pun2个人总结 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

進入房間前的配置

1、使用設定好的Setting

private void Start(){PhotonNetwork.ConnectUsingSettings();}

2、MonoBehaviour改為MonoBehaviourPunCallbacks

public class NetworkLauncher : MonoBehaviourPunCallbacks{}

這樣我們才可以獲得Photon服務端的一些反饋資料

3、連接到Photon服務器

public override void OnConnectedToMaster(){base.OnConnectedToMaster(); //連接Photon服務器print("Welcome");PhotonNetwork.JoinLobby(default); //進入游戲大廳}

4、加入或創(chuàng)建房間

public void JoinOrCreateButton() {RoomOptions options = new RoomOptions{MaxPlayers = 10 //最大玩家人數(shù)};PhotonNetwork.JoinOrCreateRoom("MyRoom", options, default);}

5、加入或者創(chuàng)建房間后做場景跳轉(zhuǎn)

public override void OnJoinedRoom(){PhotonNetwork.LoadLevel(1);}

完整代碼

using System.Collections; using System.Collections.Generic; using UnityEngine; using Photon.Pun; using Photon.Realtime; using UnityEngine.UI;public class NetworkLauncher : MonoBehaviourPunCallbacks {public GameObject loginUI;public GameObject nameUI;public InputField roomName;public InputField playerName;public GameObject roomListUI;private void Start(){PhotonNetwork.ConnectUsingSettings();}public override void OnConnectedToMaster(){base.OnConnectedToMaster();print("Welcome");nameUI.SetActive(true);PhotonNetwork.JoinLobby(default);}public void PlayButton() {nameUI.SetActive(false);//NickName玩家名字PhotonNetwork.NickName = playerName.text;loginUI.SetActive(true);if (PhotonNetwork.InLobby) {roomListUI.SetActive(true);}}public void JoinOrCreateButton() {if (roomName.text.Length < 2) return;loginUI.SetActive(false);RoomOptions options = new RoomOptions{MaxPlayers = 10};PhotonNetwork.JoinOrCreateRoom(roomName.text, options, default);}public override void OnJoinedRoom(){PhotonNetwork.LoadLevel(1);} }

?輸入名字,進入游戲大廳

?進入大廳,設置房間名后進入房間,可創(chuàng)建房間或者加入房間

進入房間后的配置

1、實例化生成玩家對象

GameObject Player = PhotonNetwork.Instantiate("Player", Vector.one,Quaternion.identity, 0);

?預制體需要放在PhotonUnityNetworking/Resources包中

?2、限定玩家操作,防止當前對象操作另一玩家對象

private void Update(){//如果操作的不是自己的玩家對象,則直接返回trueif (!photonView.IsMine && PhotonNetwork.IsConnected) return;}

3、Photon數(shù)據(jù)同步和狀態(tài)同步

(1)需要同步的物體,要掛上PhotonView組件

?(2)Photon為我們提供了位置同步Animator的同步,直接掛上去即可完成公布

?

?(3)自定義數(shù)據(jù)同步

i.需要繼承IpunObservable

ii.需要實現(xiàn)自定義接口

public class Test : MonoBehaviourPunCallbacks,IPunObservable {public void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info){if (stream.IsWriting){stream.SendNext(IsthereAnyone);}else {IsthereAnyone = (bool)stream.ReceiveNext();}} }

總結(jié)

以上是生活随笔為你收集整理的Unity-Photon Pun2个人总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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