Unity实战 RTS3D即时战略游戏开发(一):场景

       这是介绍开发RTS3D即时战略游戏开发的系列教程。下面介绍的是第一篇文章,关于在场景添加Manager以及玩家初始化信息的内容,其中本次所需要的资源大家可以在文章末尾所给的链接中下载。

     首先、我们要在下载好的工程包中找到Scenes文件夹并打开RTSMap场景。

     然后 、我们来创建玩家和敌人的出生点位置,如图所示,在Map中创建两个空物体,分别取名为Player1Start,Player2Start,为了方便我们看到已定义好的Player1Start和Player2Start,我们从检视面板的左上角选择ICON,分别选择一个颜色Icon


      场景弄好了,现在我们来管理我们的场景,首先在Assets下创建一个文件夹Scripts,然后再Scripts下再创建一个叫RtsManager的脚本,它存储并管理着整个游戏中的大部分有用的功能,其他部分需要访问或者查找,我们把它设计成一个单例模式

using UnityEngine; using System.Collections; public class RtsManager : MonoBehaviour { public static RtsManager Current = null; // Use this for initialization void Start () { Current = this; } // Update is called once per frame void Update () { } }


     然后返回Unity中,在Hierarchy中创建一个空对象并命名Manager,之所以叫Manager是因为上面要挂载一些管理脚本。RTSManager就是其中之一,现在就来添加脚本,把写好的RTSManager脚本直接拖拽到Hierarchy中的Manager上即可。如图


下面我们来创建一个Player类来持有一些玩家所需的数据,在Scripts新建一个Definitions文件夹,在其底下新建一个PlayerSetupDefinition脚本,这个脚本不需要继承于MonoBehavior,但是为了让这个类易读并能在检视面板上可见,所以我们需要把它序列化。在这个脚本中,我们需要定义玩家的姓名,起始的位置、要添加一些颜色或标识等来区分它们、然后还需要一个初始单位列表,接下来还要知道它需不需要Ai控制、玩家积分,然后保存。

using UnityEngine; using System.Collections.Generic; [System.Serializable] public class PlayerSetupDefinition { public string Name; //玩家名字 public Transform Location; //起始位置 public Color AccentColor; //玩家标识颜色 public List StartingUnits = new List(); public bool IsAi; //是不是AI控制 public float Credits; //积分 }

然后切换到RTSManager中,来定义这个脚本进行管理

using UnityEngine; using System.Collections.Generic; public class RtsManager : MonoBehaviour { public static RtsManager Current = null; public List Players = new List(); // Use this for initialization void Start () { Current = this; } // Update is called once per frame void Update () { } }

定义完后,来到Unity中,能看到Players的初始值为0,我们把它改为2,然后把Player1和Player 2的属性设置一下如图:


这节我们先说到这来,下面是本次的链接:链接: https://pan.baidu.com/s/1gfqPc6R 密码: 9xkm

Unity实战RTS3D即时战略游戏开发系列:

Unity实战 RTS3D即时战略游戏开发(二):玩家状态显示

Unity实战 RTS3D即时战略游戏开发(三):单位选中处理

Unity实战 RTS3D即时战略游戏开发(四):鼠标管理器

Unity实战 RTS3D即时战略游戏开发(五):NavigationMesh自动寻路

Unity实战 RTS3D即时战略游戏开发(六):信息显示

Unity实战 RTS3D即时战略游戏开发(七):HUD的使用小地图显示

Unity实战 RTS3D即时战略游戏开发(八):HUD的使用单位信息显示

Unity实战 RTS3D即时战略游戏开发(九):行为管理器Action的使用

Unity实战 RTS3D即时战略游戏开发(十):可建造地点标示

Unity实战 RTS3D即时战略游戏开发(十一)AiController

Unity实战 RTS3D即时战略游戏开发(十二):建造AI、生产AI

Unity实战 RTS3D即时战略游戏开发(十三):战斗AI的控制

Unity实战 RTS3D即时战略游戏开发(十四)伤害更新信息显示、销毁单位、爆炸效果

相关知识

Unity实战 RTS3D即时战略游戏开发(一):场景
【文集】用Unity制作一个RTS游戏
Unity手机游戏开发:从搭建到发布上线全流程实战
Unity游戏场景制作实战教程
Unity移动游戏开发
Unity游戏开发实战:详解如何在Unity中调用Android原生方法实现功能扩展
从零开始学Unity游戏开发
Unity快速入门教程:手机游戏开发前的准备
使用 Unity 开发游戏入门
【Unity】Unity游戏开发入门:新手必读的完整游戏开发指南,手把手教你从零开始到制作第一个游戏

网址: Unity实战 RTS3D即时战略游戏开发(一):场景 http://www.hyxgl.com/newsview375123.html

推荐资讯