05. 生成房间之间连线

画线使用了 LineRenderer

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

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

这个材质使用了透明的 Shader,然后使用了一张白色和透明相交的图片,这样就能画出一条虚线

材质中有个 Tilling 变量,它表示线段的密度,当这个数值越大的时候,虚线之间空隙的间隔就越小

材质中有个 Offset 变量,它表示线段的偏移,可以通过修改这个值使其看上去是在移动的

实现房间之间的连线

修改 MapGenerator 代码,给它添加 LinePrefab

创建房间的时候,需要将这一列的房间添加到当前列房间列表中。

该列创建完房间之后,看看当前列是否是第0列,如果不是第0列,需要在当前列房间列表上一列房间列表之间创建连线

创建连线的方法实现如下,遍历上一列房间列表的每个房间,然后和随机的当前列房间列表的房间进行相连,连接的方法是创建出一个LinePrefab,然后修改它第0点和第1点的position,创建出来的连线需要记录到List当中,以便重新生成地图的时候需要删除这些连线。每次连接过一个当前列房间列表的房间之后,需要记录一下,等上一列房间列表的房间都遍历完毕之后,再遍历当前列房间列表中没有被访问的房间,进行反向连接。这样就能确保两列之间所有的房间都有连线。

当前列房间列表也遍历完毕之后,需要把当前列房间列表变为上一列房间列表

另外记得在ReGenerateRoom里面,删除掉之前创建的线

让连线动起来

LinePrefab添加一个Line脚本,在Update方法里面修改LineRendereroffset.x

项目相关代码

代码仓库:https://gitee.com/nbda1121440/DreamOfTheKingdom.git

标签:20240302_0913

posted @ 2024-03-02 23:18  hellozjf  阅读(34)  评论(0编辑  收藏  举报