1 / 12
文档名称:

游戏开发源码.doc

格式:doc   大小:28KB   页数:12页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

游戏开发源码.doc

上传人:文库旗舰店 2019/11/20 文件大小:28 KB

下载得到文件列表

游戏开发源码.doc

文档介绍

文档介绍:游戏开发源码下面按步骤为大家介绍如何在Unity中制作本教程的主场景。1、背景首先在主场景中创建一个画布(Canvas)来显示背景图片。新建Canvas命名为BackgroundCanvas,将渲染模式(RenderMode)设为ScreenSpace-Camera,将主相机(MainCanvas)设为画布相机。然后将CanvasScaler中的UI缩放模式(UIScaleMode)设为与屏幕大小一致,而参考分辨率(ReferenceResolution)设为1280x960然后新建图片(Image)对象,让它作为这个画布的子对象。将源图片(SourceImage)设置成背景图片,为了正确显示背景图,将其大小设为原始大小。2、HUD画布现在,我们要另一个Canvas来显示HUD元素。主场景中包括主题文本和播放按钮。首先,新建Canvas,与创建BackgroundCanvas步骤相同。但为了将这个画布显示在背景画布的上方,需要正确地设置它的SortingLayer。新建层命名为HUD,并将HUDCanvas放于该层。最后,创建两个HUD对象:一个是Text,另一个是Button。对于Text对象,只需要设置它的文本。而对于Button对象,需要设置它的OnClick回调函数。PlayButton对象的OnClick回调函数在下面的ChangeScene脚本中。该脚本仅有一个方法,用于根据给定的场景名称切换至目标场景。然后设置播放按钮的OnClick回调函数,让它调用loadNextScene方法,参数为“Town”。3、玩家部分游戏希望保存玩家单位的数据,即使切换场景数据也不会丢失。所以新建持久化对象命名为“PlayerParty”,即使切换场景,这个对象也不会被销毁。同时要正确设置它的坐标,让它在战斗场景中显示在正确的位置。一步完成之后,Tiled2Unity会在城镇场景中创建一个游戏对象,作为城镇地图。它会自动为可碰撞瓦片创建碰撞器。下图显示了场景中的城镇对象及其在检视面板中的属性。接下来创建CreateEnemyMenuItem脚本。这个脚本将负责创建其菜单项并设置OnClick回调函数。这些步骤都在Awake方法中完成。首先,根据现有菜单项的数量来计算菜单项坐标。然后将其实例化为EnemyUnitsMenu的子对象,随后通过脚本设置其localPosition和localScale。最后,将OnClick回调函数设置为selectEnemyTarget方法,并将菜单项设置为该单位在KillEnemy脚本中对应的菜单项。selectEnemyTarget方法用于让玩家能够攻击敌人单位。但现在还不需要这样的代码。所以暂时留空。最后要添加的HUD元素是显示玩家单位信息的,如生命值和法力值等。首先新建游戏对象命名为PlayerUnitInformation来放置所有HUD元素。然后,为该对象添加Image子对象命名为PlayerUnitFace。该图片将会显示当前面对的单位。暂时任选一个单位头像作为其目标图片。下面添加是命条和对应的文本。生命条是一个图片,显示生命值的精灵,而文本则用于显示HP信息。最后按同样方式添加法力条,只需要改变显示的精灵和文本信息即可。因为这两个条非常相似,下面仅展示生命条的检视面板。目前战斗场景如下图所示。这是场景视图的截图,因为还要添加非常多内容才能正常运行战斗场景。下面的图片展示了场景中对象的层次结构。2、单位动画接下来我们要创建单位动画。每个单位将有四个动画:空闲(Idle),物理攻击(PhysicalAttack),魔法攻击(MagicalAttack)和攻击(Hit)。首先为其中一个玩家单位(例如MageUnit法师单位)创建动画器(Animator),然后将它添加到对应的预制件中。选择该预制件并打开Animator视图,按照下图那样配置动画状态机。为每个动画创建一个状态,其中默认状态是空闲,所有其他动画在结束播放时都会过渡为空闲状态。现在需要创建四个动画来并将它们添加到对应的状态。下图显示了法师单位的魔法攻击动画。您可以在Animator视图中按照相同的过程创建所有动画,这里不再赘述。另外,您必须对所有角色单位(包括敌方)都进行这样的设置。还需要定义何时播放这些动画,这将在为角色单位添加更多功能时完成。暂时让所有角色单位仅默认地播放空闲动画。现在运行游戏,可以看到所有角色单位都在播放空闲动画。但请注意,需要从主场景切换到战斗场景才能看到这些角色单位。回合战斗系统如何为游戏添加回合制战斗系统呢?首先新建游戏对象,并且为其添加TurnSystem的脚本TurnSystem脚本将保存所有角色单位(玩家和敌人)的UnitStats脚本列表。然后在每个回合中,它会弹出列表的第一个元素,让该单位操作完