画线使用了 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
项目相关代码
代码仓库:https://gitee.com/nbda1121440/DreamOfTheKingdom.git
标签:连线,创建,房间,生成,前列,一列,列表,05 From: https://www.cnblogs.com/hellozjf/p/18049446