05. 生成房间之间连线
1.1-2. 安装 Unity 引擎和代码编辑器2.1-3. 素材导入和整理3.1-4. 场景绘制和叠层设置4.1-5. 有规则和动态瓦片5.2-1. 设置人物及基本组件6.2-2. 创建及配置新输入系统7.2-3. 实现移动和翻转8.2-4. 实现人物跳跃9.2-5. 物理环境监测及绘制10.2-6. 创建人物基本动画11.2-7. 人物行走设定12.2-8. 创建人物跳跃动画13.2-9. 实现人物下蹲逻辑和动画14.2-10. 人物属性及伤害计算15.2-11. 受伤和死亡的逻辑和动画16.2-12. 三段攻击动画的实现17.2-13. 实装攻击判定18.3-1. 野猪 - 基本的移动逻辑和动画19.3-2. 野猪-撞墙判定和等候计时20.3-3. 野猪-受伤及死亡的逻辑和动画21.3-4. 有限状态机&抽象类多态22.3-5. 追击状态的转换23.3-6. 蜗牛-基本的移动逻辑和动画24.3-7. 蜗牛 - 特殊技能状态的实现25.3-8. 蜜蜂 - 基本的移动逻辑和动画26.3-9. 蜜蜂 - 追击和攻击的实现27.4-1. 创建人物状态栏28.4-2. 血量更新逻辑的实现29.5-1. 滑墙及蹬墙跳的实现30.5-2. 滑铲的逻辑和动画的实现31.6-1. 摄像机跟随及攻击抖动实现32.6-2. 音源设置和音效播放33.6-3. 水和荆棘的逻辑实现34.7-1. 人物可互动标识35.7-2. 场景互动的逻辑实现36.7-3. 场景管理和切换37.7-4. 场景加载后的执行逻辑38.7-5. 场景淡入淡出效果39.7-6. 主场景制作40.7-7. 实现新的冒险逻辑41.8-1.存储点及画面效果42.8-2. 数据结构及坐标保存加载43.8-3. 人物数值及场景的保存加载44.8-4. 制作游戏结束面板45.8-5. 序列化保存数据文件46.9-1. 实现移动设备屏幕操控47.9-2. 暂停面板及声音控制48.9-3. 打包生成游戏
49.05. 生成房间之间连线
50.06. 实现随机地图画线使用了 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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?