文档详情

Unity3D开发标准教程-网络开发基础

第***
实名认证
店铺
PPT
4.50MB
约20页
文档ID:600653007
Unity3D开发标准教程-网络开发基础_第1页
1/20

单击此处编辑母版标题样式,第一级,第二级,第三级,第四级,第五级,第,*,网络开发基础,第,1,页,11.1,多人联网,Multiplayer Networking,多人联网的工作比较琐碎、复杂,世界各地各种各样的计算机上不同的工程实例之间的同步与通信会出现许多问题在,Unity,内置的多人联网功能(,Multiplayer Networking,)与高级应用程序接口(,High Level API,HLAPI,)的帮助下,创建多人工程会变得更容易11.1.1 Network Manager,网络管理器,网络管理器是一个多人游戏的核心部件,管理着多人游戏的各个方面它的功能包括游戏状态管理、派生管理、场景管理、调试信息、自定义化等功能,如图,11-1,所示对于高级用户,可以从,NetworkManager,中产生一个类来定制化这个组件Network Manager,网络管理器中的常用方法如表,11-1,所列图,11-1,网络管理器设置界面,第,2,页,11.1.1 Network Manager,网络管理器,方法名,方法含义,方法名,方法含义,Get,StartPosition,在场景中找到游戏对象的起始位置,IsClientConnEcted,检查,NetworkManager,是否有客户端并已连接到服务器,OnClientConnect,连接到服务器时在客户端调用,OnClientDisconnect,从服务器断开连接是调用客户端,OnClientError,在发生网络错误时调用客户端,OnClientNotReady,当服务器告诉客户端不在准备好时,调用客户端,OnClientSceneChanged,当场景已加载完成时,当场景加载由服务器启动是,调用客户端,OnStartClient,在客户端启动时调用的回调方法,OnStarthost,当主机启动时调用的回调方法,OnStartServer,当客户端启动时调用的回调方法,0nStopClient,当客户端停止时调用的回调方法,OnStophost,当主机停止时调用的回调方法,OnStopServer,当客户端停止时调用的回调方法,表,11-1,网络管理器的部分成员方法,第,3,页,11.1.1 Network Manager,网络管理器,游戏状态管理,网络多人游戏可以以三种模式运行,作为客户端、作为专用服务器、或者作为同时作为客户端和服务器的“主机”。

无论游戏开始于客户端、服务器还是主机,都要设置使用网络地址和网络端口,如图,11-2,所示,在客户端模式下,游戏尝试连接到指定的地址和端口在服务器或主机模式下,游戏监听指定端口上的传入连接如果您使用的是网络管理器,HUD,,它会根据播放器选择的选项自动告诉网络管理器从哪个模式开始网络管理器,HUD,将在下文介绍图,11-2,网络管理器设置地址和端口,第,4,页,11.1.1 Network Manager,网络管理器,2.,派生管理,使用网络管理器来管理来自预制件的网络游戏对象的子对象(网络实例化)大多数游戏都有一个代表玩家的预置,所以网络管理器有一个玩家预置槽用播放器预置这个插槽有一个玩家预置集时,玩家,GameObject,会自动从游戏中的每个用户产生这适用于托管服务器上的本地播放器和远程客户端上的远程播放器必须将网络身份组件附加到播放器预置一旦分配了一个玩家预置,即可以开始游戏作为一个主机,并看到玩家游戏对象产生子对象停止游戏破坏球员,GameObject,如果构建并运行游戏的另一个副本,并将其作为客户机连接到本地主机,则网络管理器将显示另一个玩家,GameObject,当停止那个客户端时,它就破坏了玩家的游戏对象。

第,5,页,11.1.1 Network Manager,网络管理器,3.,场景管理,大多数游戏都有不止一个场景至少,除了实际玩游戏的场景之外,通常还有标题屏幕或开始菜单场景网络管理器被设计成以适用于多人游戏的方式自动管理场景状态和场景转换的功能当服务器或主机启动时,加载场景,连接到该服务器的任何客户端都被指示也加载该场景此场景的名称存储在网络场景名称属性中当网络停止时,通过停止服务器或主机或客户端断开连接,加载离线场景这使得游戏可以在从多人游戏中断开时自动返回到菜单场景当网络场景管理处于活动状态时,任何对游戏状态管理函数,(,如,NetworkManager.Starthost,(),或,NetworkManager.StopClient,(),的调用都会导致场景更改通过设置场景并调用这些方法,开发人员可以控制多人游戏的流程需要注意的是场景更改会导致前一个场景中的所有生成出的游戏对象被销毁第,6,页,11.1.1 Network Manager,网络管理器,4.,起始位置,若要控制在何处生成玩家游戏对象,可以使用,Network Start Position,组件要使用这些,请将,Network Start Position,组件附加到场景中的游戏对象上,并将游戏对象定位到理想的起始位置。

也可以在场景中添加任意多个起始位置NetworkManager,会检测到场景中的所有开始位置,当它生成每个玩家游戏对象实例时,,NetworkManager,便会使用其中一个实例的位置和方向5.,调试管理,Unity,提供在运行时获取有关游戏的信息的工具这个信息对于测试多人游戏是极为重要的的当游戏运行在编辑器中的播放模式时,网络管理器在运行时显示有关网络状态的附加信息这包括:网络连接、活动游戏对象在具有网络标识组件的服务器上、具有网络标识组件的客户端上的活动游戏对象、客户端对等体第,7,页,11.1.2 Network Manager HUD,11.1.2 Network Manager HUD,网络管理器,HUD,是一个快速启动工具来帮助开始建立多人游戏直线距离,而不必首先建立游戏创作,/,连接,/,连接的用户界面它可以直接跳转至游戏编程,这就意味着可以在随后的开发计划建立自己的这些控件的版本下面的是网络管理器,HUD,组件的界面,如图,11-3,所示图,11-3,网络管理器,HUD,设置界面,第,8,页,11.1.2 Network Manager HUD,方法名,说明,Show Runtime GUI,勾选这个选项来显示网络管理器,HUD,界面在运行时。

这使您可以显示或隐藏其快速调试,GUIHorizontalOffset,设置水平像素,HUD,的偏移,从屏幕的左边缘测量GUIVerticalOffset,设置垂直像素,HUD,的偏移,从屏幕的顶部边缘测量表,11-2,网络管理器,HUD,的属性及功能,网络管理器,HUD,有两种基本模式:,LAN,(局域网)模式和红娘模式这些模式匹配两种常见类型的多人游戏LAN,模式是用于创建或加入托管的局域网上的游戏(即,连接到同一网络的多个计算机),和红娘模式是用于创建,查找和通过网络连接的游戏,第,9,页,11.1.3 Network Identity,网络身份标识,11.1.3 Network Identity,网络身份标识,Network Idenity,是多人联网系统的高级,API,它挂载到游戏对象上成为该对象在多人网络中的唯一标识Network Idenity,标识使联网系统能更快的找到游戏对象,方便其实例化此对象玩家游戏对象必须拥有一个,NetworkInstanceId,组件才能挂载,NetworkManager,上下面是,Network Idenity,组件的界面,如图,11-4,所示。

图,11-4 Network Idenity,组件界面,第,10,页,11.1.3 Network Identity,网络身份标识,方法名,说明,Server Only,勾选此复选框确保只在服务器上产生游戏对象而不是在客户端上Local Player Authority,勾选此复选框,将此游戏对象的控制权限授予拥有它的客户端表,11-3 Network Idenity,的属性及功能,挂载有,Network Idenity,组件的游戏对象在运行时能看到一个预览窗口,这个预览窗口显示了例如场景,ID,、资源,ID,等网络跟踪信息来方便开发人员调试,如图,11-5,所示预览窗口中的部分属性信息含义如表,11-4,所列第,11,页,11.1.4 Network Transform,联网变换组件,11.1.4 Network Transform,联网变换组件,如果想通过网络对物体的运动、旋转等操作进行同步,就要用到,Network Transform,组件了需要注意的是,,Network Transform,组件只能同步被生产成出来的游戏对象Network Transform,组件的界面如图,11-6,所示,界面中的属性含义如表,11-5,所列。

图,11-5 Network Transform,界面,第,12,页,11.1.4 Network Transform,联网变换组件,属性,含义,属性,含义,Network Send Rate,设置网络每秒的更新速率,Transform Sync Mode,选择该对象的同步方式,Sync None,不进行同步,Sync Transform,根据,Transform,组件进行同步,Sync Rigidbody2D,根据,Rigidbody,2D,组件同步,Sync Rigidbody3D,根据,Rigidbody,3D,组件同步,SyncCharacterController,根据角色控制器同步,MovementThreshold,设置对象在不更新同步下可以移动的距离,Snap Threshold,设置阈值,更新移动超过阈值时对象将不再平稳运动,InterpolateMovementFactor,使用它来启用和控制内插同步运动,Rotation Axis,定义哪个旋转轴或哪个轴应该同步,Sync Angular Velocity,勾选此复选框以同步附加刚体部件的角速度表,11-4,NetworkTransform,的部分属性及含义,第,13,页,11.1.5 NetworkBehavior,类,11.1.5 NetworkBehavior,类,Multiplayer Networking,系统中,所有包含网络功能的脚本都需要继承一个基类,那就是,NetworkBehavior,类。

NetworkBehavior,是一个,MonoBehaviour,类,所以需要使用联网功能时应该继承这个类而不是,MonoBehaviour,它允许开发人员调用网络操作,接收各种回调,并从服务器到客户端自动同步状态挂载继承,NetworkBehaviour,类的脚本需要游戏对象上的,NetworkIdty,组件在一个游戏对象上可以有多个继承,NetworkBehaviour,类的脚本第,14,页,11.1.6,多人高层,API,及架构,11.1.6,多人高层,API,及架构,统一的多人高层,API,(,HLAPI,)是一种用于构建多人能力的统一游戏系统它是建立在较低的水平之上,传输实时通信层,并处理了许多所必需的多人游戏的共同任务而在传输层支持任何类型的网络拓扑结构中,,HLAPI,是一个服务器系统权威,;,虽然它允许参与者之一是客户端,并在同一时间内服务器,因此不需要专用服务器进程与协同工作,的互联网服务,这允许多人游戏中播放通过互联网与开发商很少的工作HLAPI,是在一个新的命名空间内构建成,Unity,的一组新的网络命令:,UniTyeEngulink,它的重点是易用性和迭代开发,并提供对多人游戏有用的服务,例如:消息处理程序、通用高性能串行化、分布式对象管理、状态同步、网络类的服务器、客户端、连接等。

第,15,页,11.2 Unity Network,开。

下载提示
相似文档
正为您匹配相似的精品文档