photon pun2 设置中国区

photon 网址

https://dashboard.photonengine.com/zh-CN

先创建一个app,这里的appid等等会用到

中国区

https://vibrantlink.com/

步骤

访问中国区官网
在这里插入图片描述
填写信息,填写之前复制的appid,一般两个工作日
在这里插入图片描述
从unity商店中导入pun2
在这里插入图片描述

修改信息

填写appid(邮件回复的id)
在这里插入图片描述
搜索LoadBalancingClient.cs
在这里插入图片描述

修改 NameServerHost, 由 ns.exitgames.io 改为 ns.photonengine.cn;
在这里插入图片描述
PhotonServerSettings 的 Fixed Region 设置为 cn;
在这里插入图片描述
在这里插入图片描述

测试

可以将配置文件的日志打开,载入自带的demo
在这里插入图片描述
在这里插入图片描述

Photon Pun2Unity Engine官方提供的网络通信插件,它主要用于游戏中的实时多人在线同步。帧同步是指所有玩家在同一时刻看到的游戏画面保持一致。在Pun2中实现帧同步,可以采用以下步骤: 1. **启用帧同步**: 在`PhotonNetwork`组件上,打开`UseMasterClient`选项,这会让一个玩家成为“主客户端”,负责控制帧率,其他客户端则跟随。 ```csharp PhotonNetwork.useMasterClient = true; ``` 2. **设置网络更新频率**: 客户端需要按照同步周期发送位置更新消息。比如,你可以选择每秒发送一次位置,而不是每次移动都发送。 ```csharp float updateInterval = 1f / NetworkUpdateRate; // NetworkUpdateRate可以根据实际网络状况调整 ``` 3. **定时发送位置更新**: 使用`PhotonView`的`OnPhotonSerializeView`方法,只在指定时间间隔更新位置,并忽略非关键帧的变化。 ```csharp void FixedUpdate() { if (isMine && Time.time - lastUpdate > updateInterval) { PhotonView(viewId).RPC("SendPosition", RPCMode.SendToAllButOwner, new Vector3(transform.position)); lastUpdate = Time.time; } } ``` 4. **服务器处理同步请求**: 主服务器会在接收到客户端的位置更新后广播给其他客户端,确保它们同步显示。 5. **优化策略**: 如果网络延迟很高,你还可以考虑增加预测(Predictive Movement),即先预估下一帧的位置,在收到服务器确认后再调整。 ```csharp private Vector3 predictedPosition; void OnPredictionError(Vector3 actualPosition, float timeSinceLastReceived) { // 这里处理预测误差 } // 接收服务器响应后的更新 public void SendPosition(Vector3 newPosition) { transform.position = predictedPosition + (newPosition - predictedPosition) * smoothness; } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值