目标
实现如下图所示的随机地图
地图会随机连线,并且最后会连到 Boss 的房间,并且确保 Boss 房间前面一定是一个休息的房间
额外需要做的事情
因为点击房间之后涉及场景的切换,根据勇士传说的经验,我们需要使用 Addressable 来切换场景,因此我们需要通过 Package Manager 来安装 Addressable
开始写代码
创建 Room
首先我们需要创建一个空的房间,它上面需要有个 ScriptableObject 用来标识房间信息,它要能够被点击的时候进入战斗场景,它上面要有个图片,所以最后 Room 就变成了如下的样子
RoomPrefab 是房间的预制体,它下面有张图片叫 Sprite。为了让它能够被点击的时候触发点击事件,所以它上面绑定了一个 Capsule Collider 2D。为了让它在初始化的时候可以显示不同的图标,所以给它绑定了 Room Data。肉鸽卡牌游戏会需要区分在哪一行哪一列,所以需要 Column 和 Line。当我打过房间之后,房间会从可选择状态变为不可选择状态,同时它连线后面的房间会变成可选择状态,所以我们需要使用 Room State 来区分它们。
Room 的代码如下所示
Room Data
它就是一个 ScriptableObject,里面存储了房间图标、房间类型、需要加载的场景,它的代码如下所示
通过 RoomDataSO,我创建了两个 Map,它们分别表示小怪房间和Boss房间
其中,RoomType 如下所示
Room State
RoomState 用于表示房间当前可访问、不可访问、已经访问过这三个状态
项目相关代码
代码仓库:https://gitee.com/nbda1121440/DreamOfTheKingdom.git
标签:02,Prefab,需要,Room,创建,代码,房间,Boss,所示 From: https://www.cnblogs.com/hellozjf/p/18048032