大致原理:每个客户端把自己的 相关数据(比如位置信息)传到服务器;再由服务器同步到每一个客户端里;
组件官方网站: https://www.photonengine.com/zh-CN/Photon
大致步骤
1、在官网创建账户;
2、在官网 创建应用: Create new application
选择类型 photon pun -》 输入application’s name
创建成功后,可以看到应用的存在,我们要注意 App ID 这串符号,后面要用;
3、【可选项】申请国内的站点服务
因为默认使用的是 国外的服务器,国内访问可能会慢一点; 所以可以在中国区的官网申请中国光子云;
光子引擎连接: https://vibrantlink.com/
#1 申请光子云
填写申请信息:注意app id 就是上面提到的id;
然后等邮件吧,工作日才会申请下来,周末可能放假了,我目前还没有等到,555.。。。;
#2 修改配置
这里将放到 4 - #2里面讲解; 因为有光子云 和没有 光子云有些许区别;
4、创建Unity项目,搭建基本的框架:
#1 导入 photon pun2- 插件;在 assets store里面搜索下载导入;
ps: photon pun2+ 是pro版本,要付费, - 是免费版本;
刚导入可能会有这个窗口,我们跳过,在 #2里进行详细配置;
#2 修改配置文件: 导入 photon之后,对配置文件进行 些许配置
- 1、Photon -》 PhotonUnityNetworking -》 Resources: 找到 PhotonServerSettings; 直接搜这个文件也可以;
- 2、 申请了中国光子云的设置方法:
- a. 找到脚本 LoadBalancingClient.cs ;
修改 NameServerHost, 由 ns.exitgames.com 改为 ns.photonengine.cn;
- b. PhotonServerSettings 的 Fixed Region 设置为 cn;
- a. 找到脚本 LoadBalancingClient.cs ;
- 3、 正常的 设置 PhotonServerSettings文件
两处: App id 就是上面反复提到的 id; App Version, 可以随意设置,比如 1.0;
#3 写脚本,搭建 框架
小demo:
-
1、创建 player 的预制体:
- a. 新建Cube; 添加一个脚本 : PlayerCubeController; 简单移动逻辑
using Photon.Pun; using System.Collections