unity 使用Photon进行网络同步

Pun使用教程
第一步:请确保使用的 Unity 版本等于或高于 2017.4(不建议使用测试版)创建一个新项目。
第二步:打开资源商店并找到 PUN 2 资源并下载/安装它。 导入所有资源后,让 Unity 重新编译。
第三步:导入后出现设置面板,如果有账户ID输入即可,如果没有登录官网注册 并获取“AppId”以将其粘贴到输入字段中。保存 AppId 后,我们完成了此步骤。
在这里插入图片描述

第四步:登录Multiplayer Game Development Made Easy | Photon Engine注册账号,注册完成后,点击Create创建项目,类型的话,如果是聊天室可以选择Photon Chat,普通的选择Photon PUN就可以了

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

复制APPID到项目中
Photon\PhotonUnityNetworking\ResourcesPhotonServerSettings的App Id Pun,并且设置版本号
在这里插入图片描述

基础设置完成开始进行代码编写。
第五步:在同步过程中,最基础的同步为位置旋转与缩放,在插件中有集成好的脚本可以直接使用,首先需要在需要同步的物体上添加Photoview,然后添加Photot Transform view
在这里插入图片描述

这样就可以进行位置坐标与缩放的同步。
第六步:需要创建游戏房间,限制最大游戏人数,实现逻辑如下
引用命名空间using Photon.Pun;using Photon.Realtime;
继承MonoBehaviourPunCallbacks类
在Start方法中调用PhotonNetwork.ConnectUsingSettings()方法,使用在网站申请的服务器。
实现虚方法创建房价设置最大房间人数

public override void OnConnectedToMaster(){base.OnConnectedToMaster();RoomOptions roomOptions = new RoomOptions();roomOptions.MaxPlayers = 20;PhotonNetwork.JoinOrCreateRoom("Cs", roomOptions, TypedLobby.Default);}

房间创建完成后实现虚方法,此方法会获取是否人启动新的客户端,相当于玩家加入房间

public override void OnJoinedRoom(){base.OnJoinedRoom();}

第七步:打包测试,在打包测试后可以进行网络同步,没有网络环境下并不能同步,移动同步也会有延迟因为目前网络接入的是国际网络,需要去申请中国区域网络。

本地服务布置需要在官网下载本地服务器,首先在untiy面板中点击选择按钮,进入光子网站
在这里插入图片描述

点击sdk选中里面server

点击下载即可,版本分为4.0与5.0 目前使用4.0版本,下载后进入红色框选文件夹
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

双击打开服务器,在电脑右下角右键点击服务器,选中start as application 打开服务器
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

在unity 中的插件面板设置ip地址与端口号后,打包程序同步内容,目前测试阶段只能主程序控制副程序中的物体。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/112012.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java文字描边效果实现

效果: FontUtil工具类的完整代码如下: 其中实现描边效果的函数为:generateAdaptiveStrokeFontImage() package com.ncarzone.data.contentcenter.biz.img.util;import org.springframework.core.io.ClassPathResource; import org.springfr…

Prompt-To-Prompt——仅通过文本进行图像编辑

文章目录 1.摘要2.算法2.1 Cross-attention in text-conditioned Diffusion Models2.2 Controlling the Cross-attentionWord SwapAdding a New PhraseAttention Re–weighting 3.应用Text-Only Localized EditingGlobal editingFader Control using Attention Re-weightingRea…

HPC集群自动弹性扩缩的两种实现方式

常青藤 HPC常青园 2023-07-28 19:48 发表于北京 弹性扩缩技术正在成为HPC集群中的一项重要技术。它可以根据实际需求动态调整集群资源,应对用户负载的波动。对于运维团队来说,自动弹性扩缩能够减轻集群运维负担,提高集群资源利用率&#xff0…

Kettle REST Client获取token调用接口解析JSON入文件实例

Kettle REST Client获取token调用接口解析JSON入文件实例 需求说明 通过kettle组件调用接口并解析JSON成结构化数据入文件。 完整实例 解决方法 利用生成记录组件定义URL参数通过REST ClENT组件请求得到TOKEN通过JSON INPUT组件解析接口请求的结果通过JAVASCRIPT组件拼接生…

储存高精长整型の另一种思路——二维数组

利用二维数组储存高精长整型 题目解题思路问题解决代码实现总结反思 题目 luogu P2437 蜜蜂路线 解题思路 最初只觉得是一道很简单的递推 先考虑从第一个点出发的情况,对于第 k ( k ≥ 3 ) k (k≥3) k(k≥3)个点,路线数表示如下: a [ k …

【二叉搜索树】将有序数组转换为二叉搜索树-力扣 108 题

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…

人工智能AI 全栈体系(四)

第一章 神经网络是如何实现的 除了全连接神经网络外,还有其他形式的神经网络。 此节将讲述神经网络的另一种形式:卷积神经网络。 四、卷积神经网络 首先我们看看全连接神经网络有什么不足。正如其名字一样,全连接神经网络,两个…

vscode json 无决找到“e:\...“

在上一章中提到了解决 无法使用 compilerPath 的问题,该问题明显是相对路径配置错误。 但是解决该问题后,发现输出了新的问题: 由该输出可知,在 e:\gitsource\ODrive-fw-v0.5.1\Firmware\ 路径下未找到 D:\gcc-arm-none-eabi-10.3-2021.10…

004-Windows下开发环境搭建

Windows下开发环境搭建 文章目录 Windows下开发环境搭建项目介绍版本控制工具Git 与 SVNWindow下安装Git Qt 开发工具静态编译Qt环境安装 串口模拟器比较工具SQLite 数据库查看小工具预告 关键字: Qt、 Qml、 开发环境、 Windows、 C 项目介绍 欢迎来到我们的 …

Postman应用——接口请求(Get和Post请求)

文章目录 新增请求Get请求Post请求 这里只讲用的比较多的Get和Post请求方式,也可以遵循restful api接口规范,使用其他请求方式。 GET(SELECT):从服务器取出资源(一项或多项)POST(CR…

控制台日志打印console的封装,加入美化与打印开关

控制台日志打印console的封装,加入美化与打印开关 为什么要写这个? 封装这个控制台日志打印工具,主要是在项目中自己做的SDK需要提供给其他开发人员使用,加入了日志美化和打印打开,方便了开发人员查找SDK中的日志&am…

目标检测前言,RCNN,Fast RCNN,Faster RCNN

一、RCNN: 找到概率最高的目标之后,与其他目标进行IOU交并比计算,若高于一定值,则说明这两张图片预测的是同一个目标,则把概率低的目标删掉 二、Fast RCNN 因为是直接得到特征图之后进行映射,所以不限制输入…