UAC2015W120405SourceUAC2015W120405章节.pptxVIP

  • 1
  • 0
  • 约4.14千字
  • 约 20页
  • 2017-11-27 发布于广东
  • 举报
第04-05课 网络进阶进阶 —Unity中的网络元素课程名称 Lesson Title网络进阶阶段—Unity中的网络元素学习者等级 Learner Level 专业阶段模块 Module 网络进阶阶段本课时长 Duration 135分钟 学习者背景 Learner Background 本课程要求学习者熟悉Unity网络的基本架构,有一定的网络基础知识。 教学目标 Objectives 本课的目标是让学生了解Unity网络中的元素,能够运用Network类相关变量和 方法创建和连接服务器。 ?理解Network view组件的用途。 ?掌握Network类相关变量和方法的用法。主题 Topics Unity中的网络元素 Network类 NetworkViews组件 Animator组件创建服务器在开始玩网络游戏前,必须确定进行通信的计算机,为此创建一个服务器。服务器可以是运行该游戏的一台设备,也可以是不参与该游戏的一台专用设备。要创建服务器,只需从脚本调用 Network.InitializeServer()。当您想要连接一个作为客户端的现有服务器时,您可以调用 Network.Connect()。使用网络视图(Network Views)通信网络视图 (Network Views) 是一个通过网络发送数据的组件。网络视图 (Network Views) 使 “游戏对象”(GameObject) 能够通过使用 RPC 调用或“状态同步”(State Synchronization) 发送数据。使用网络视图 (Network Views) 的方式将决定游戏的网络行为的工作方式。“网络视图”(Network Views) 只有少许选项,但是这些选项对网络游戏非常重要。远程过程调用(Remote Procedure Call)远程过程调用 (RPC) 是在脚本中声明的函数,这些脚本被附加到包含网络视图 (Network View) 的游戏对象 (GameObject) 上。网络视图 (Network View) 必须指向包含 RPC 函数的脚本。然后才可以从游戏对象 (GameObject) 范围内的任何脚本中调用 RPC 函数。状态同步(State Synchronization)状态同步 (State Synchronization) 是在所有游戏客户端上持续共享数据。通过这种方法,可以在所有客户端上同步玩家的位置,所以看起来是由本地控制的,但实际上数据是由网络传送的。要使状态在某个游戏对象 (GameObject) 中同步,只需将网络视图 (NetworkView) 添加到该对象并告诉其观察的内容。观察的数据在游戏中所有客户端上同步。Network.Instantiate()Network.Instantiate() 可以轻松自然地在所有客户端上实例化预设。本质上这是一个 Instantiate() 调用,但是它在所有客户端上执行实例化。Network.Instantiate 实际上只是一个在所有客户端上(或在本地)执行的缓冲 RPC 调用。它分配 NetworkViewID 并将其指派给实例化的预设,从而确保了其在所有客户端上正确同步。NetworkLevelLoad()处理共享数据、客户端播放器的状态和加载等级。主服务器(Master Server)主服务器有助于匹配游戏。当您启动一台连接到主服务器的服务器时,它将提供一张所有活跃服务器的列表。Master Server 是服务器和客户端相互接触的场所,其中服务器是列出的,而兼容的客户端可以连接到运行中的游戏。它可以帮助客户端绕过服务器的防火墙进入私人的 IP 地址,而通常情况下是不能通过公共网络访问的。通过服务商的帮助可加快连接的建立,从而完成此功能。Network类变量描述1isClient如果端类型为客户端,返回true。2isServer如果端类型为服务端,返回true。3peerType端类型的状态。4sendRate网络更新的默认的发送速率。Network类方法描述1Connect连接到特定主机和服务端口2Disconnect关闭所有开放的连接,关闭网络接口3Instantiate网络实例化预设4RemoveRPCs移除所有属于这个玩家的ID的RPC函数5OnServerInitialized每当一个Network.InitializeServer被调用并完成时,在服务器上调用这个函数6OnPlayerConnected每当一个新玩家成功连接时,在服务器上调用这个函数7OnConnectedToServer当成功连接到服务器时,在客户端调用这个函数。8OnDisconnectedFromServer在服务器上当连接已经断开,在客户端调用这个函

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档