43. 实现休息房间的逻辑
1.02. 创建房间的 Prefab2.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. 淡入淡出及打包游戏本节目标
实现休息房间可以回一次血,实现宝箱房间可以获得卡牌
实现办法
休息房间回血
添加一个 RestRoomPanel,给它挂上 UI 和 脚本
代码实现如下
using System;
using UnityEngine;
using UnityEngine.UIElements;
public class RestRoomPanel : MonoBehaviour
{
private VisualElement rootElement;
private Button restButton;
private Button backToMapButton;
public Effect restEffect;
public ObjectEventSO loadMapEvent;
private CharacterBase player;
private void OnEnable()
{
rootElement = GetComponent<UIDocument>().rootVisualElement;
restButton = rootElement.Q<Button>("RestButton");
backToMapButton = rootElement.Q<Button>("BackToMapButton");
player = FindAnyObjectByType<Player>(FindObjectsInactive.Include);
restButton.clicked += OnRestButtonClicked;
backToMapButton.clicked += OnBackToMapButtonClicked;
}
private void OnBackToMapButtonClicked()
{
loadMapEvent.RaiseEvent(null, this);
}
private void OnRestButtonClicked()
{
restEffect.Execute(player, null);
restButton.SetEnabled(false);
}
}
当点击休息一下之后,会执行 restEffect,然后禁用休息按钮
当点击返回地图之后,会广播loadMapEvent
事件
其中 restEffect 是一个给自己回 20 点血的卡牌效果
loadMapEvent 事件会被SceneLoadManager
监听到,并且调用SceneLoadManager.LoadMenu
方法,这个方法会卸载当前场景,并回到 map 场景
宝箱房间获取宝物
修改 Treasure 场景,在它下面添加TreasureChest
对象,编辑碰撞体,添加Treasure Button
组件
当碰撞体被点击之后,就会触发gameWinEvent
事件
gameWinEvent 事件会被 UIManager 监听到
这个方法触发的时候,会隐藏 gameplayPanel,然后显示 gameWinPanel
需要注意一下,GameWinPanel
需要将原来Awake
里面的代码移动到OnEnable
里面去,否则按钮点击事件可能不会触发
项目相关代码
合集:
王国之梦
分类:
unity / 王国之梦
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?