02. 创建房间的 Prefab
1.02. 创建房间的 Prefab
2.03. 设计地图配置表3.04. 生成地图上的房间4.07. 泛型事件框架5.08. 场景加载6.09. 保存地图场景7.10. 房间进出逻辑8.11. 制作卡牌 Prefab9.12. 创建卡牌数据类10.13. 对象池11.14. 制作卡牌库实现抽卡12.15. 创建卡牌布局13.16. 抽卡动画14.17. 实现卡牌扇形布局15.18. 实现鼠标事件16.19. 卡牌拖拽17.20. 攻击牌的拖拽指针18.21. 实现洗牌逻辑19.22. 导入Spine人物素材20.23. 人物基类代码21.24. 执行卡牌效果22.25. 制作血条的 UI Document23.26. 绑定血条数据24.27. 创建USS血条样式25.28. 制作 Gameplay Panel26.29. 绑定 Gameplay Panel 数据27.30. 回合转换28.31. 出牌能量判断29.32. 防御牌及 UI30.33. 回血的苹果牌及特效31.34. 增加力量牌及 UI32.35. 更多卡牌33.36. 人物动画34.37. 敌人意图 AI 逻辑35.38. 敌人的动画执行逻辑36.39. 对战胜负逻辑37.40. 制作胜利和抽卡面板38.41. 抽卡面板的实际逻辑39.42. GameOver 及 Menu 面板40.43. 实现休息房间的逻辑41.44. Boss 制作和整体流程42.45. 淡入淡出及打包游戏目标
实现如下图所示的随机地图
地图会随机连线,并且最后会连到 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 用于表示房间当前可访问、不可访问、已经访问过这三个状态
项目相关代码
合集:
王国之梦
分类:
unity / 王国之梦
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?