Unity5.1 新的网络引擎UNET(七) UNET 单人游戏转换为多人
2015-07-12 22:09
495 查看
单人游戏转换为多人 孙广东 2015.7.12
本文档描述将单人游戏转换为使用新的网络系统的多人游戏的步骤。这里描述的过程是简化,对于一个真正的游戏其实需要更高级别版本的实际流程,现在介绍的是不工作就像这的每一场比赛,但它提供了基本配方。
1、NetworkManager 安装
• 向场景添加一个新的游戏对象并将它重命名为"NetworkManager"。
• 为新的游戏对象添加NetworkManager 组件。
• 将 NetworkManagerHUD 组件添加到游戏物体。这将为管理网络游戏状态提供默认 UI。
2、Player Prefab 安装
• 在游戏中Find player的预制体prefab,或者从player对象创建一个预置。
• NetworkIdentity 组件添加到player prefab上。
• 检查 NetworkIdentity 的 LocalPlayerAuthority box 。
• 在player prefab的NetworkManager 组件上为 “Spawn Info” 设置 playerPrefab
• 从现场删除player 对象实例,如果它存在于现场
3、Player Movement
• 将 NetworkTransform 组件添加到 player prefab
• 更新输入和控制脚本来遵守 isLocalPlayer
• 修复camera 使用衍生出的player 和 isLocalPlayer
例如,此脚本只处理local player输入:
4、Basic Player Game State
• 使脚本包含重要数据到NetworkBehaviours , 而不是 MonoBehaviours
• 使重要成员变量到 SyncVars
5、Networked Actions
• 使脚本执行NetworkBehaviours重要操作成而不是 MonoBehaviours
• Update函数执行player操作的重要命令
6、Non-Player Objects
修改非玩家prefabs,像敌人等:
• 添加 NetworkIdentify 组件
• 添加 NetworkTransform 组件
• NetworkManager注册 spawnable 预置体
• 更新脚本与游戏状态和操作
7、Spawners
• 可能更改的spawner 脚本要继承自 NetworkBehaviours
• 修改spawners 只运行在服务器上,使用 isServer 属性或 OnStartServer() 函数
• 为创建对象调用 NetworkServer.Spawn()
8、Player的产生的位置
• 添加一个新的游戏对象,并将它放在玩家的应该开始的位置
• 新的游戏对象添加 NetworkStartPosition 组件
9、Lobby
• Create Lobby Scene创建大厅现场
• Import multiplayer-lobby package导入多人游戏大厅包
• 添加 GuiLobbyManager 预置到场景
• Configure the manager配置 管理器
•Scenes
• Prefabs
• spawners
本文档描述将单人游戏转换为使用新的网络系统的多人游戏的步骤。这里描述的过程是简化,对于一个真正的游戏其实需要更高级别版本的实际流程,现在介绍的是不工作就像这的每一场比赛,但它提供了基本配方。
1、NetworkManager 安装
• 向场景添加一个新的游戏对象并将它重命名为"NetworkManager"。
• 为新的游戏对象添加NetworkManager 组件。
• 将 NetworkManagerHUD 组件添加到游戏物体。这将为管理网络游戏状态提供默认 UI。
2、Player Prefab 安装
• 在游戏中Find player的预制体prefab,或者从player对象创建一个预置。
• NetworkIdentity 组件添加到player prefab上。
• 检查 NetworkIdentity 的 LocalPlayerAuthority box 。
• 在player prefab的NetworkManager 组件上为 “Spawn Info” 设置 playerPrefab
• 从现场删除player 对象实例,如果它存在于现场
3、Player Movement
• 将 NetworkTransform 组件添加到 player prefab
• 更新输入和控制脚本来遵守 isLocalPlayer
• 修复camera 使用衍生出的player 和 isLocalPlayer
例如,此脚本只处理local player输入:
using UnityEngine; using UnityEngine.Networking; public class Controls : NetworkBehaviour { void Update() { if (!isLocalPlayer) { // exit from update if this is not the local player return; } // handle player input for movement } }
4、Basic Player Game State
• 使脚本包含重要数据到NetworkBehaviours , 而不是 MonoBehaviours
• 使重要成员变量到 SyncVars
5、Networked Actions
• 使脚本执行NetworkBehaviours重要操作成而不是 MonoBehaviours
• Update函数执行player操作的重要命令
6、Non-Player Objects
修改非玩家prefabs,像敌人等:
• 添加 NetworkIdentify 组件
• 添加 NetworkTransform 组件
• NetworkManager注册 spawnable 预置体
• 更新脚本与游戏状态和操作
7、Spawners
• 可能更改的spawner 脚本要继承自 NetworkBehaviours
• 修改spawners 只运行在服务器上,使用 isServer 属性或 OnStartServer() 函数
• 为创建对象调用 NetworkServer.Spawn()
8、Player的产生的位置
• 添加一个新的游戏对象,并将它放在玩家的应该开始的位置
• 新的游戏对象添加 NetworkStartPosition 组件
9、Lobby
• Create Lobby Scene创建大厅现场
• Import multiplayer-lobby package导入多人游戏大厅包
• 添加 GuiLobbyManager 预置到场景
• Configure the manager配置 管理器
•Scenes
• Prefabs
• spawners
相关文章推荐
- NodeJS创建 HTTP 服务器
- Unity5.1 新的网络引擎UNET(一) 概括1
- TCP/IP学习
- 网络数据包捕获函数库Libpcap安装与使用
- bzoj1146: [CTSC2008]网络管理Network 树套树
- Linux网络编程-自己动手写进程池
- http中get和post的区别
- nodejs http响应两次
- 10 Examples of HotSpot JVM Options in Java Read more: http://javarevisited.blogspot.com/2011/11/hot
- linux下C语言socket网络编程简例-(转载)
- libevent(二)libevent 接收TCP连接
- Java 网络编程(TCP)实现服务器与客户端1对多的随意顺 序的聊天室
- 重踏学习Java路上_Day26(网络编程)
- IOS中发http request
- 多层神经网络BP算法 原理及推导
- Nodejs获取网络数据并生成Excel表格
- [转载] 虚拟机3种网络模式(NAT, Host-only, Bridged)
- 网络编程二
- 网络编程一
- Android-非常棒的HTTP通讯总结