Unity学习多人游戏的网络同步入门
2017-01-01 21:53
330 查看
[align=justify] unity中网络的同步是通过组件NetworkManager和NetworkManagerHUD来实现的。[/align]
[align=justify]第一步创建网络管理器:[/align]
[align=justify] 在场景中创建一个空物体命名为NetworkManager并添加NetworkManager组件和NetworkManagerHUD组件[/align]
[align=justify]第二步:设置NetworkManager组件[/align]
[align=justify] 注册PlayerPrefab:在SpawnInfo下为PlayerPrefab添加事先完成的带有NetworkIdentify组件的预制体并勾选NetworkIdentify下的选项LocalPlayerAuthority使客户端有权限控制角色。[/align]
[align=justify]第三步:实现服务器和客户端的玩家运动同步[/align]
[align=justify] 为玩家预制体添加NetWorkTransform组件,NetworkTransform组件是仅用来同步玩家的运动,其他玩家信息的同步需要用到其他的东西。注意,由于不同的客户端在生成时物体完全一样,那么当输入移动命令时为了防止所有客户端的玩家一起运动,控制玩家运动的脚本需要具有网络意识:在脚本中添加usingUnityEngine.Networking,将Monobehaviour换成NetworkBehaviour并在脚本中通过isLocalPlayer来判断是不是本地玩家。另一种方式使脚本具有网络意识的方法是使用[Command]属性,官网上的解释是被[Command]属性修饰的函数将在服务器上执行,在客户端上调用,这样可以通过服务器来区分是哪个客户端调用了方法,从而达到了区分的目的。[Command]的用法:加在函数定义的前面,被[Command]修饰的函数名需要加上前缀Cmd。[/align]
[align=justify]同步变量:[SyncVar][/align]
[align=justify]同步与变量相关的函数:[SyncVar(hook="函数名")][/align]
[align=justify]
[/align]
[align=justify]第一步创建网络管理器:[/align]
[align=justify] 在场景中创建一个空物体命名为NetworkManager并添加NetworkManager组件和NetworkManagerHUD组件[/align]
[align=justify]第二步:设置NetworkManager组件[/align]
[align=justify] 注册PlayerPrefab:在SpawnInfo下为PlayerPrefab添加事先完成的带有NetworkIdentify组件的预制体并勾选NetworkIdentify下的选项LocalPlayerAuthority使客户端有权限控制角色。[/align]
[align=justify]第三步:实现服务器和客户端的玩家运动同步[/align]
[align=justify] 为玩家预制体添加NetWorkTransform组件,NetworkTransform组件是仅用来同步玩家的运动,其他玩家信息的同步需要用到其他的东西。注意,由于不同的客户端在生成时物体完全一样,那么当输入移动命令时为了防止所有客户端的玩家一起运动,控制玩家运动的脚本需要具有网络意识:在脚本中添加usingUnityEngine.Networking,将Monobehaviour换成NetworkBehaviour并在脚本中通过isLocalPlayer来判断是不是本地玩家。另一种方式使脚本具有网络意识的方法是使用[Command]属性,官网上的解释是被[Command]属性修饰的函数将在服务器上执行,在客户端上调用,这样可以通过服务器来区分是哪个客户端调用了方法,从而达到了区分的目的。[Command]的用法:加在函数定义的前面,被[Command]修饰的函数名需要加上前缀Cmd。[/align]
[align=justify]同步变量:[SyncVar][/align]
[align=justify]同步与变量相关的函数:[SyncVar(hook="函数名")][/align]
[align=justify]
[/align]
相关文章推荐
- (9)unity入门,同步、网络。发布
- Unity入门学习 //06_游戏构建导出以及设置,生成.exe文件
- 游戏编程入门学习笔记20——网络篇——理清框架、获取字符串输入
- Unity多人游戏与网络功能(四)- 状态同步与远程动作
- Unity入门学习 //07_Profiler游戏监察器(游戏性能分析器)
- 【网络游戏专题】时间同步装置
- 网络游戏的位置同步
- 网络游戏同步之1
- 网络游戏同步之1 (转载)
- 网络游戏同步法则
- Flash网络游戏开发入门经验共享
- 【网络游戏专题】时间同步装置
- Java网络编程入门学习
- 网络游戏的位置同步
- 小谈网络游戏同步
- Flash网络游戏开发入门经验共享
- 网络游戏开发入门指导
- 开发一个网络学习游戏(抛砖引玉)
- 多人网络游戏入门(ZT)
- 网络游戏同步