第十三节 来显示点图形

作者: 安静的程序员 | 来源:发表于2019-06-24 09:39 被阅读0次
01.添加显示数据

编辑导演类,首先获取主屏幕的默认图层:

Layer defaultLayer = _screenMain.GetLayer("DefaultLayer");

随便添加点显示数据:

if (defaultLayer != null)
{
    // 添加一辆坦克
    defaultLayer.ViewData = new List<MyPoint>()
    {
        new MyPoint(0, 0),
        new MyPoint(0, 2),
        new MyPoint(1, 0),
        new MyPoint(1, 1),
        new MyPoint(1, 2),
        new MyPoint(2, 1),
    };
}
02.重点来了:刷新主屏幕

显示数据有了,但是要显示在屏幕上,需要获取显示数据,然后映射在屏幕上。
目前屏幕上所有像素点都是显示状态,需要稍稍修改下初始化屏幕的代码,将像素点设置为不可见:

// 设置为不可见
pixel.SetActive(false);

添加成员——显示数据,除了图层,在主屏幕类中也需要一个显示数据,该成员的数据是整合所有图层后的数据:

List<MyPoint> _viewData;    // 显示数据

修改初始化方法Init(),在该方法中初始化显示数据:

_viewData = new List<MyPoint>();

添加刷新屏幕方法——遍历图层取出所有显示数据,然后遍历显示数据映射在屏幕上:

// 刷新屏幕
public void RefreshScreen()
{
    // 遍历图层 - 填充显示数据
    foreach (var layer in _layerList)
    {
        // 遍历该图层上的每个点并计算新点的坐标
        foreach (var point in layer.ViewData)
        {
            MyPoint newPoint = new MyPoint();
            // 新点的坐标 = 图层的坐标 + 旧点在图层上的坐标
            newPoint._line = layer.Point._line + point._line;
            newPoint._list = layer.Point._list + point._list;
            // 添入一个点至显示数据
            _viewData.Add(newPoint);
        }
    }

    // 遍历显示数据 - 绘制图形
    foreach (var point in _viewData)
    {
        _screen[point._line, point._list].SetActive(true);
    }
}
03.调用刷新屏幕

回到导演类,在添加显示数据后面加上刷新屏幕:

// 刷新屏幕
_screenMain.RefreshScreen();

回到Unity,运行游戏,如果不出意外,应该显示如下:


代码链接:https://pan.baidu.com/s/195YGyRujzGZlZgDHndsXwQ
提取码:xzd1

相关文章

网友评论

    本文标题:第十三节 来显示点图形

    本文链接:https://www.haomeiwen.com/subject/potnqctx.html