本练习项目主要介绍使用自定义的编辑器创建场景,创建路点来引导敌人行动,对战斗进行配置、动画播放,以及摄像机控制和UI界面设计等相关知识。
1. 地图编辑器
在Hierarchy窗口中单击鼠标右键,选择【Create Empty】创建一个空物体,然后创建脚本TileObject.cs指定给空物体(可命名为GridObject),此类主要保存场景中的“格子”数据。
主要包含的接口函数:
- 在Awake函数中,单例化当前脚本对象;
- Reset()函数用于初始化地图数据;
- getDataFromPosition(float posx, float posz)用于获取相应tile的数值;
- setDataFromPosition(float posx, float posz, int number)用于设置相应tile的数值;
- 在OnDrawGizmos函数中,根据tile数据,在编辑模式时显示相关辅助线和格子信息。
扩展Inspector窗口的UI控件
创建TileEditor.cs,并使其继承自UnityEditor.Editor,通知必须放在Editor文件夹中。
可以在OnEnable函数中,通过转换target(貌似该字段是Editor中的属性)得到目标组件,如TileObject。
创建自定义窗口
注意,必须继承UnityEditor.EditorWindow.
2. 游戏场景、UI与游戏管理器
游戏场景由Sprite(注意将Pixels Per Unit的大小设置与原始像素大小一致)和3D模型组成。
在制作UI时,注意将Texture Type设为Sprite。
通过游戏管理器来管理UI,处理鼠标输入和逻辑事件等。
创建GameManager.cs,并将其添加到Canvas物体上。
3. 摄像机
4. 路点
5. 敌人
6. 防守单位
7. 生命条