摘要: 目标 当我进入房间,然后出去之后,当前房间设置为已访问,同一列的其它房间设置为不可访问,当前房间相连的房间设置为可访问 实现 点击房间广播 因为 RoomPrefab 上面有碰撞体,所以鼠标或手指点击它的时候会触发OnMouseDown方法,然后就会触发LoadRoomEvent广播事件 监听点击房 阅读全文
posted @ 2024-03-02 23:20 hellozjf 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 本节目的 将 Map 上的房间和连线都保存下来,以便从战斗场景回来的时候能够恢复这些数据 实现方法 定义存储结构 定义一个名叫MapLayoutSO的 ScriptableObject,它里面记录了所有的房间和连线信息,如下图所示 房间的信息中不单单有房间的图标、房间的类型、引用的场景,还有房间的状 阅读全文
posted @ 2024-03-02 23:20 hellozjf 阅读(50) 评论(0) 推荐(0) 编辑
摘要: awaitable 关键字 本节涉及到场景的加载和卸载,在勇士传说中,我们使用协程的方式来加载和卸载场景,在本节使用了 unity2023.3 最新的特性 awaitable awaitable 具体是啥,我也不太清楚,见下图 加载场景 在上一节中,我们监听了 LoadRoomEvent 事件,成功 阅读全文
posted @ 2024-03-02 23:19 hellozjf 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 事件监听和发布 我们要实现这样一个功能,当玩家在 Map 场景中点击一个图标的时候,需要发送事件给场景管理器,场景管理器监听事件,然后执行切换场景的操作 在勇士传说中,我们使用 ScriptableObject.UnityAction 发布事件,以及监听事件,那时候每种类型都有一个 Scriptab 阅读全文
posted @ 2024-03-02 23:19 hellozjf 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 最终效果 每列根据自己的定义,创建出对应的房间图片 实现方法 补全所有的 Room Data 将它们添加到 Map Generator 上面 然后我们需要根据 MapConfigSO 上面 RoomType 的定义,随机取出一个对应的 RoomData 获取到 RoomType 之后,就能根据 Ro 阅读全文
posted @ 2024-03-02 23:18 hellozjf 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 画线使用了 LineRenderer 如上图所示,LineRenderer 里面有两个点,分别是 index0 和 index1,然后它还有线宽,我在我的屏幕上试了一下,0.05 是一个粗细比较合适的线 目前线是洋红色的,我们需要添加材质,才能让其有颜色。这边我们创建了一个材质 这个材质使用了透明的 阅读全文
posted @ 2024-03-02 23:18 hellozjf 阅读(34) 评论(0) 推荐(0) 编辑