当前位置: 首页 > news >正文

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.lryc.cn/news/167943.html

相关文章:

  • 大数据课程M1——ELK的概述
  • C# byte[] 如何转换成byte*
  • MySQL与Oracle的分页
  • git基本手册
  • 每日一题(两数相加)
  • 恒运资本:沪指震荡涨0.28%,医药板块强势拉升,金融等板块上扬
  • 【计算机网络】Tcp详解
  • 最简单的laravel不使用任何扩展导出csv
  • Android studio 断点调试、日志断点
  • 服务器数据恢复-热备盘同步过程中硬盘离线的RAID5数据恢复案例
  • Python 使用input获取用户输入
  • Python 可迭代对象、迭代器、生成器
  • HTML的有序列表、无序列表、自定义列表
  • 银河麒麟安装Docker-国产化-九五小庞
  • 数据库与身份认证
  • LabVIEW开发锅炉汽包水位的监督控制和模拟
  • 2023-简单点-树莓派安装ncnn框架
  • Docker核心原理与实操
  • 虚幻引擎 UE5 增强输入系统
  • Mac 安装软件各种报错解决方案
  • leetcode做题笔记142. 环形链表 II
  • DuDuTalk:4G语音工牌,如何实现家庭上门维修服务过程的智能化管理?
  • Mybatis常见面试题总结
  • 数字IC设计之时序分析基础概念汇总
  • 1.centos7安装docker
  • 基于elasticsearch-8.8.2 kibana-8.8.2 搭建一个文搜图系统demo
  • 第26节-PhotoShop基础课程-形状工具组-画板
  • 第一次课,通过进程信息和服务信息识别当前计算机运行程序(预习版)
  • ChatGPT 或其它 AI,能用在文书创作上吗?
  • Java中锁的分类