05. 生成房间之间连线
画线使用了 LineRenderer

如上图所示,LineRenderer 里面有两个点,分别是 index0 和 index1,然后它还有线宽,我在我的屏幕上试了一下,0.05 是一个粗细比较合适的线

目前线是洋红色的,我们需要添加材质,才能让其有颜色。这边我们创建了一个材质

这个材质使用了透明的 Shader,然后使用了一张白色和透明相交的图片,这样就能画出一条虚线
材质中有个 Tilling 变量,它表示线段的密度,当这个数值越大的时候,虚线之间空隙的间隔就越小
材质中有个 Offset 变量,它表示线段的偏移,可以通过修改这个值使其看上去是在移动的
实现房间之间的连线
修改 MapGenerator 代码,给它添加 LinePrefab

创建房间的时候,需要将这一列的房间添加到当前列房间列表中。
该列创建完房间之后,看看当前列是否是第0列,如果不是第0列,需要在当前列房间列表和上一列房间列表之间创建连线
创建连线的方法实现如下,遍历上一列房间列表的每个房间,然后和随机的当前列房间列表的房间进行相连,连接的方法是创建出一个LinePrefab,然后修改它第0点和第1点的position,创建出来的连线需要记录到List当中,以便重新生成地图的时候需要删除这些连线。每次连接过一个当前列房间列表的房间之后,需要记录一下,等上一列房间列表的房间都遍历完毕之后,再遍历当前列房间列表中没有被访问的房间,进行反向连接。这样就能确保两列之间所有的房间都有连线。
当前列房间列表也遍历完毕之后,需要把当前列房间列表变为上一列房间列表
另外记得在ReGenerateRoom里面,删除掉之前创建的线
让连线动起来
给LinePrefab添加一个Line脚本,在Update方法里面修改LineRenderer的offset.x

                    
                
                
            
        
浙公网安备 33010602011771号