圆滑角色同步移动
角色移动每1/10秒发送的情况,移动会有些迟钝,本讲进行圆滑处理.
通过ProudNet提供的PositionFollower和 AngleFollower类可进行圆滑处理.
本章只对使用PositionFollower类进行讲述
.
对PositionFollower的详细说明请参考角色位置同步.
想要对位置更圆滑和精确处理的话,在客户端中发送"位置信息"时,需同时发送位置信息和速度.
对此计算"角色"的速度.
修改接收信息部分的代码,接收部分不进行直接修改角色的位置, PositionFollower中添加位置信息.
为进行运作,在RemotePlayer Prefab中添加RemoteControl.cs脚本文件.
然后,PositionFollower对象以成员变数添加.
PositionFollower对象中输入的 "对方角色的位置和速度" 获取校正后的位置信息.
然后更新至实际位置
,如以下代码.
现在,开启两个以上的客户端, 确认移动是否圆滑.
如果想获取更佳效果的话,可以添加Follower的多个其它成员变数.然后,通过NetClient.GetRecentPing函数获取对方的延迟结果.根据延迟结果,对进入PositionFollower对象的位置和速度进一步深入. 赛车游戏中可进行更准确的位置同步化.
|
Unity结合C++开发服务器实现多人游戏(九)
最新推荐文章于 2024-05-25 19:20:08 发布