网络是一个非常大的复杂主题。在 Unity 中,创建网络功能非常简单。但是,最好还是应该了解创建任何类型的网络游戏所涉及的广度和深度。本部分将介绍网络的基础知识以及在 Unity 背景中对这些概念的实现。如果您不熟悉网络,那么强烈建议您在尝试创建网络游戏之前详细阅读本指南。
高级概述非常适合初步了解或提升您的基础网络知识。在此处,Unity 网络元素页面讨论了 Unity 对一般概念的实现。
Unity 广泛使用网络视图组件在网络上共享数据,因此了解其工作原理是非常重要的。网络视图提供的功能之一是远程过程调用(即 RPC)。借助此功能,您可以在一个或多个可能是客户端或服务器的远程计算机上调用函数。
对于联网计算机之间的信息维护,状态同步是一种定期更新网络上运行的两个或多个游戏实例中的特定数据集的方法。另一个主题是跟踪哪台计算机拥有或控制共享环境中的哪些对象。网络实例化可用于处理此任务,但您也可以在需要更多控制时使用其他替代方法。
为了发现计算机,有时需要设置服务器计算机,然后邀请其他玩家直接参与。在游戏允许匿名或群众参与的情况下,主服务器可用作通告游戏会话并允许玩家加入游戏的场所。主服务器还可以使用名为 _NAT 穿透_的技术来确保玩家始终可以连接(即使正在运行防火墙)。
减少计算机之间传输的数据量往往会提高性能;关于最小化带宽的页面提供了有关如何实现这些优化的建议。
移动设备上的 Unity 网络 API 与台式机上的非常相似,因此网络游戏通常只需很少或不需要修改便能兼容。移动网络页面讨论了移动设备的一些问题和性能注意事项。