02. 创建房间的 Prefab

目标

实现如下图所示的随机地图

地图会随机连线,并且最后会连到 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

标签:20240301_1403

posted @   hellozjf  阅读(367)  评论(2编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示