【问题标题】:unity multiplayer - sync transform vs sync setdestination - navmesh agentunity multiplayer - 同步变换与同步 setdestination - navmesh 代理
【发布时间】:2019-02-24 10:31:01
【问题描述】:

我是脚本新手,我一直在使用 Navmesh 代理为 1V1 游戏 Mova 风格的游戏编写专用 UDP 服务器。 我是否应该只在玩家点击移动时不断更新玩家转换或同步,并且 setDestination 到其他客户端上的那个位置? 另外,关于黑客攻击,我是否必须与服务器仔细检查所有内容?谢谢。

【问题讨论】:

  • 您能解释一下您使用的是什么服务器吗?如果它的自定义构建它具有/需要具有什么语言和功能。
  • 对不起,如果我没有正确回答,我很新。
  • Udp 服务器,语言 c#,将接收来自当前连接到它的所有客户端的消息的服务器,具有游戏的大厅和匹配系统。

标签: c# unity3d server udp navmesh


【解决方案1】:

你有几种方法可以做到这一点,我会指出其中的两个优点和缺点。

玩家发送点击移动位置到服务器。

1) 服务器然后将此位置发送给所有客户端(包括发起者),然后客户端计算路径并开始内插移动。

优点:带宽低、执行速度快、实现复杂度低。

缺点:客户端很容易被破解。

2) 服务器计算玩家需要遵循的路径(寻路)并将路径节点发送给客户端。

优点:不可破解,服务器将在每个玩家动作中拥有最终决定权

缺点:服务器需要物理或寻路才能工作,这确实是很多工作。如果您实现物理,您将能够在服务器上插入运动并定期向客户端发送位置以模拟运动。

帮助您实现第二个选项的有用技术是BulletSharpSharpNav 这两个都需要您将几何体(地形)加载到服务器端)和Snapshot Compression 用于优化客户端-服务器网络物理。

祝你好运,您可以要求任何澄清或帮助。

【讨论】:

  • 我将如何在服务器中实现我的统一游戏物理?您是否碰巧知道任何可以提供帮助的指南?
  • 我应该在统一内部做服务器以便能够通过使用线程来使用统一的物理吗?而不是在外面用控制台
  • @xred 我不认为你可以在统一之外使用 Unity 的物理,但你可以使用不同的物理和/或寻路引擎为你完成工作,而且你不需要在服务器上使用繁重的物理,只需可能会影响您的游戏的绝对关键的事情。
  • 查看我提供的 BulletSharp 链接并查看演示如何使物理引擎工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-06
  • 1970-01-01
相关资源
最近更新 更多