序言
这本书打算给你以步骤的方式,通过概念和使用unity游戏引擎使用中间插件创建多人游戏。我一直是一个痴迷于多人游戏的的粉丝。他们有方法轻触我们最基本的欲望,如充满了竞争,合作,以及和我们周围的人类进行社交。这些是单人游戏无法提供的。
我在unity中有许多不同的网络插件和程序设计经验。正如我所了解到的新网络系统中,它总是有一些障碍模块和困难的问题。我写这本书正是因为我想帮助和我同样的人们,帮助他们克服我所遇到的问题。
Unity集成开发环境速成课。
为了更好地理解这本书,我们需要掌握Unity IDE(集成开发环境)的基本功能。
如果你第一时间打开Unity,呈现在你眼前是一个你可以打开一个现有工程和创建一个新工程的窗口。选中新建工程菜单,并且选择你工程的路径。
一旦你的工程被创建,你将看见几个区域。他们分别是Scene(场景)和Game(游戏),和Hierarchy(层级),Project(工程),Console(控制台),Inspector(监视)等等区域。
Scene(场景)视图显示当前场景,这里允许操作场景,选择物体,移动和更多操作。
Game(游戏)视图显示主摄像机。如果你按下Play键,Game视图自动显示并且允许你在编辑器里面测试你的游戏。
Hierarchy(层级)标签显示物体的层级(注层级就是类的继承关系)在当前的场景中。他允许你选择物体的父亲或者解除父子关系,删除,重命名它们,等等更多。
Inspector(监视)标签显示一个编辑器显示每一个所选物体被附加的组件。(像许多传统的引擎不是以继承为基础,Unity是以组件为基础,即事物是组件的集合并且每个组件有各自的职责。)它允许你设置组件的值和改变组件的属性。你可以总是移除组件通过选中组件并且点击Remove Component。在Unity 和最新的版本中你可以点击Add Component按钮来添加组件的脚本。
Project(工程)标签显示assets(不知道翻译成什么)在你的工程中。你可以在这里移除Asset或者导入他们,并且你可以创建新素材,脚本和shaders通过选中并点击Create按钮。你也可以从Hierarchyto拖动对象到Project中创建prefab(预设).prefab本质上是对象模版。你可以实列化一个prefab创建一个正确复制prefab的场景。(对于实列来说,你可能会创建一个敌人prefab(预设),并且实列化他来产生大批量的敌人)。你还可以拖动组件脚本从项目Project到Inspector当前的选择的游戏会将组件添加到对象。
要想了解更多的unity,你可以点击下面网站,
这本书包含了什么?
章节1 Unity网络-一个乒乓球游戏,介绍可靠的网络通信UDP的概念。和不同类型服务器所适用的游戏。他包含了Unity网络,并且创建了一个两个人的网络乒乓游戏模型。
章节2 PhotonUnity网络——聊天客户端,包含了一个可选择的第三方的Unity网络。他展示了云主机游戏服务器的概念,单一的的匹配和好友列表,它也涵盖了创建一个简单的聊天客户端。
章节3 Photon服务器-Star Collector,介绍了专用游戏服务器。它包含创建一个Photon服务器程序,连接到服务器,使用请求、回应事件 系统用于通信和创建一个简单的Star
Collector game。星星收集游戏。
章节4 Player.IO-机器人战争,包含一个可选择的专用服务器系统。它介绍了数据库的特性来保存游戏的输入输出。如何创建一个Player.IO服务器连接Unity,和创建一个简单的永久数据RTS-style 的游戏。
章节5 PubNub-全局聊天盒子,介绍了基于Http的消息服务通信。他包含了Http通信的优点和陷阱,使用www的类通过PubNub通信。并且创建一个聊天室程序。
章节6 Entity Interpolation and Prediction(实体插值和预测) ,介绍了介绍了服务器端的物理运动概念和潜力的问题和解决方案。它包含了客户端运动预测,和怎样让远程的实体平滑的运动。
章节7 (Server-side Hit Detection)服务器端达到检测 介绍了服务端到达检测的概念和射击风格游戏。它包含了产生后面主要目标的问题的原因在多人在线游戏中和怎样解决恢复游戏的问题。
这本书需要你拥有的东西
你需要Unity3或更高版本。许多章节还需要额外的下载。
章节2 Photon Unity Networking 聊天客户端需要Photon Unity Networking plugin插件。
章节3 Photon Server – Star Collector需要Photon 服务器客户端和服务器Api.
章节4 Player.IO- Bot War 需要 Player.IO developer package
章节5 PubNub – The Global Chatbox 需要third-party JSON parse
说明下载的资料将被包含在开始之后的每一个章节
这本书适合谁
这本书是为开发人员想要开始写多人游戏使用Unity游戏引擎。读者被预期为有C#的知识。Unity ide的知识是有帮助的,但不严格要求。
惯例
在这本书中,你会发现许多样式的文本区分不同种类的信息。这里有一些这些样式的例子,和一个解释他们的意思。
这里有一些这些样式的例子,和一个解释他们的意思“打开到Release文件夹并且运行EXE文件”
一块代码设置如下:
public class ExampleUnityNetworkSerializePosition : MonoBehaviour
{
public void OnSerializeNetworkView( BitStream stream,
NetworkMessageInfo info )
{
// we are currently writing information to the network
if( stream.isWriting )
{
// send the object's position
Vector3 position = transform.position;
stream.Serialize( ref position );
}
当我们希望取得您的关注一个特定的代码块的一部分, 相关行或项目以粗体设置。
// the maximum score a player can reach
public int ScoreLimit = 10;
// the display test for player 1's score
public TextMesh Player1ScoreDisplay;
// the display text for player 2's score
public TextMesh Player2ScoreDisplay;
// Player 1's score
private int p1Score = 0;
新的关系和重要的文字将被设为黑色。列如你在屏幕,菜单,对话框上看到的文字,出现这样的文字“点击Next按键移动到下一个屏幕”