我们知道在游戏中,游戏等级不是在搭建UI时写死的,而是动态加载的.
比如,消灭星星,等级的信息是根据玩家的数据而改变的,不同的等级可能得到的星星数量不同.
动态加载时在搭好的UI界面通过Resources,load动态加载进去,
资源工程文件:https://pan.baidu.com/s/1RIF_fdFOye6sFu82_7aUpw
项目目标.
步骤:
1.首先还是搭建UI界面,层次等级如下:
SelectLevelUI是UI界面背景,
TitleView 是TitleBar,不做解析
LevelCount: 游戏等级的承载体,游戏等级的直接背景,等级元素将动态生成在此下面,
需要对他进行预布局,作为元素的载体,同时,还会最为每个元素Toggle的组头,
每个元素都以此为分组.
其中,Cell Size是其内每个元素的大小设置,习惯上LevelCount的尺寸大小根据排列的Cell相关,
cell 直接填满LevelCount,每个元素的具体布局则在Cell内具体排布.
Cell 也就是此处的Level,是对具体游戏等级的具体排布.
背景有两种颜色的image,分别表示正常和被选中时,将分别拖入到Toggle里,
Target Graphic :Normal_bg
Graphic: Hight_bg
Group: 就是上面提到的levelCount父物体为分组;
将搭建好的level元素做成预制体防止丢失.
以上为UI的搭建
-------------------------------------------------------------------------------------------------------------------
2.代码编写:
2-1.制作Model;
一个level有多少数据,独处出来建一个数据类,取名LevelData
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- /*
- * MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,
- * 一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,
- * 将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,
- * 不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理
- * 和输出功能在一个逻辑的图形化用户界面的结构中。
- */