Photon Unity Networking基础教程 0
简介
Photon Unity Networking(PUN)基本教程是基于Unity3D的教程。 它会告诉你使用Photon云如何开发自己的多人游戏以及怎样使用角色和动画。 我们将学习许多重要的功能、提示和技巧,以大概了解使用PUN进行基于网络开发的方法。
主要内容
- 概述
- Photon云
- 开发
概述
本教程将指导您从一个空项目开始,一步步遍及整个创建过程。 一路上,将解释网络游戏中的概念,以及常见陷阱和设计注意事项。
为了不仅仅让玩家走动而不做任何事情,我们将实施一个基本的射击系统,加上玩家的健康管理,这将帮助我们支持网络中变量同步的解释。
我们还将使用基于房间中的玩家数量的自定义尺寸竞技场,竞技场的尺寸基于当前玩家的数量被调整。 这将显示关于自动同步场景的功能的几个概念,以及一些提示,这些提示是关于在加载不同的场景时候如何处理玩家的,并且在这种情况下什么可能会出错。:)
游戏目标
当游戏被启动时,用户将看到连接协议还有在UI中通知进展。 当房间被加入或创建时,玩家进入可调整大小的竞技场,其中一次可以存在多达4个玩家。 玩家可以跑,转身,以及火焰。 每个玩家发射的火光击中其他玩家时将影响他们的健康。 当你的健康是0,游戏结束离开竞技场。 然后,您再次看到介绍屏幕,让您开始加入一个新游戏。
你应该知道的
本教程仅假设使用Unity编辑器和编程的基本知识。 然而,为了专注于Photon网络新的概念介绍,最好有一些普通的非网络游戏开发经验。
示例代码用C#编写,但在Unity Script中工作类似。
Unity和Photon Cloud
创建一个新的Unity工程
确保您使用Unity 4.7或任何Unity 5版本。 创建一个新的项目,然后,一旦你吸收了概念和设计模式,就可以将它们应用到你自己的项目。
导入PUN和设置
打开资源商店并找到PUN资产并下载、安装它。 当您导入所有Pun Assets时,让Unity重新编译。
PUN设置向导可以帮助您的网络设置,并提供了一个方便的方式开始我们的多人游戏:Photon云!
云? 是的,云。 这是一个Photon服务器,我们可以用于我们的游戏。 这里要解释一下。
以“免费计划”使用云是免费的,这里可以输入申请好的AppId或者邮件地址。
Photon Cloud Screen Shot: Cloud Registration那么,这个“Photon Cloud”究竟做什么?
基本上,它是一群电脑,Photon服务器运行在上面。 这个“云”的服务器是由Exit Games公司维护,并为您的多人游戏提供无忧服务。 服务器是按需添加的,因此可以处理任何数量的玩家。
即使Photon Cloud不是完全免费的,但是成本也是低的,特别是与常规主机相比。
Photon Unity Networking将为您处理Photon云,下面是内部发生的事情:
每个人都首先连接到“Name Server”。 它检查哪个应用程序您的客户端(使用AppId)和客户端要使用哪个区域。 然后将客户端转发到主服务器(Master Server)。
主服务器是一群区域服务器的中心。 它知道所有现有的游戏。 每当游戏(房间)被创建或加入时,客户端都会被转发到其他机器 - 称为“游戏服务器(Game Server)”。
PUN中的设置非常简单,您不必关心托管成本,性能或维护。
房间Rooms
Photon Cloud使用“基于房间游戏”的思想来构建,意思是每场比赛玩家有限制(比方说:小于10),与其他人分开。 在一个房间(通常),每个人都收到任何其他人发送。 在房间外面时,玩家不能沟通,所以我们总是希望他们尽快进入房间。
进入房间的最佳方法是使用随机匹配。 我们只是要求进入服务器的任何房间或具有某些属性的房间。
所有房间都有一个名称作为标识符。 除非房间已满或关闭,我们可以通过名字加入。方便起见,主服务器可以提供是我们的应用程序的房间的列表。
大厅Lobby
您的应用程序的大厅存在于主服务器上。 在我们的例子中,我们不会使用大厅,只要加入一个随机房间(如果有的话),或者创建一个新房间,如果没有现有的房间(房间可以有最大容量,所以他们可能是都满了)。
AppIDs和游戏版本
如果每个人都连接到相同的服务器,必须有一种方法来将玩家与其他人分开。
每个游戏(如在应用程序中)在Cloud中获取自己的“AppId”。 玩家只有在与具有相同的“AppId”的其他玩家遇到。
还有一个“游戏版本”,你可以用来分离玩家与老客户端与那些与较新的。
地区
Photon Cloud被组织在全球各个地区,以防止与玩家的距离太远,连接不好。 重要的是要理解这个概念,特别是当在不同地区与远程团队合作时。 因为地区划分,与您的队友测试游戏可能就不行了。 所以,确保所有测试者所在区域是相同的。
开发
下面每个部分涵盖了项目开发阶段的一个具体的部分,按顺序进行很重要。
脚本和Photon Cloud知识水平也逐渐增加。
- 创建基本大厅场景。
- 通过用户界面(UI)改善大厅场景。
- 创建游戏场景。
- 实现级别加载。
- 创建基本Player Prefab。
- 使相机跟随您的玩家。
- 修改Player Prefab以添加网络功能。
- 玩家实例化和场景切换。
- 玩家用户界面(UI)。
小结
好的,我们实现了一个工作系统,用户在互联网上与其他玩家互动,以基本要求实现良好的体验。
我们已经学习了如何控制PUN,如何监听PUN状态和当前上下文,以及利用直观的组件轻松使用Animator。
我们还学习了Photon的一些有趣的功能,如自动场景同步,创建原始和强大的GamePlays。
要创建一个完整的游戏还有很多事情要做,准备发布,但这只是建立在我们在这里介绍内容的基础之上。
- 请务必阅读“开始使用”部分。
- 请浏览文档和API参考,可以大体知道都有什么。 你可能不需要所有的东西,但当你需要或实现新功能的时候能够记起来。 你会记得一些相关的功能或属性,所以现在是时候正确地学习它们了。
- 使用论坛,不要犹豫分享你的问题,甚至挫折:)你不会被问题困住是至关重要的。 把问题写出来让别人理解,你会把你的问题有条理的整理出来,这有助于问题的解决。 没有愚蠢的问题,这一切都取决于你的专业水平和你在学习/掌握Unity和PUN的程度。
原文地址
http://doc.photonengine.com/en-US/pun/current/tutorials/pun-basics-tutorial/intro