01.添加图层列表成员
打开主屏幕类,添加代码:
List<Layer> _layerList; // 图层列表
02.添加默认图层
我的设定是即使没有任何图形需要显示,也要添加一个空白的图层,因为图形是以图层为单位进行叠加的,所以至少需要一个图层。
编辑代码,在主屏幕类中添加一个方法:
// 初始化图层
void InitLayer()
{
_layerList = new List<Layer>();
// 新建默认图层
Layer defaultLayer = new Layer();
defaultLayer.Name = "DefaultLayer";
// 添加至图层列表
_layerList.Add(defaultLayer);
}
03.重构初始化方法
当代码量增加,结构变得复杂、混乱时,必须要保证代码结构的简洁,这在团队合作时非常重要,要有出现混乱时立即重构代码的习惯。
到目前,初始化工作分为了初始化屏幕(创建像素点阵列)和初始化图层,初始化图层已经写好了,还需要写一个初始化屏幕的方法,然后将之前写在初始化方法中的代码转移至新方法:
// 初始化屏幕
void InitScreen()
{
// 创建空数组
_screen = new GameObject[_ScreenHeight, _ScreenWidth];
// 遍历行
for (int line = 0; line < _ScreenHeight; line++)
{
// 遍历列
for (int list = 0; list < _ScreenWidth; list++)
{
// 计算坐标
int x = _ScreenPoint_x + list * (_PixelSize + _PixelInterval);
int y = _ScreenPoint_y + line * (_PixelSize + _PixelInterval);
Vector3 point = new Vector3(x, y, 0);
// 实例化像素点
GameObject pixel = Instantiate(Pixel, point, Quaterni-on.identity) as GameObject;
// 将像素点对象绑定至数组中对应的对象
_screen[line, list] = pixel;
}
}
}
在初始化方法中调用初始化屏幕和初始化图层方法:
// 初始化
public void Init()
{
InitScreen();
InitLayer();
}
04.添加方法——添加图层与获取图层
除了默认图层外,肯定还需要新的图层,所以先添加一个“添加图层”的方法;然后要在图层上添加显示数据的话,肯定要先获取图层,下面就是两个方法的代码:
// 添加图层
public void AddLayer(string layerName)
{
Layer defaultLayer = new Layer();
defaultLayer.Name = layerName;
// 添加至图层列表
_layerList.Add(defaultLayer);
}
// 获取图层
public Layer GetLayer(string layerName)
{
foreach (var item in _layerList)
{
if (item.Name == layerName) return item;
}
return null;
}
关于图层的代码就先告一段落了,接下来,我们要尝试来显示点图形了。
代码链接:https://pan.baidu.com/s/1hqJeMrZ572_hco6PCmFM1w
提取码:e7kk
网友评论