本次修改将Toast提示系统从直接节点操作改为事件驱动机制,提高了代码的解耦性和可维护性。
在 assets/scripts/Core/EventBus.ts 中添加了新的Toast事件:
// Toast提示事件
SHOW_TOAST = 'SHOW_TOAST',
HIDE_TOAST = 'HIDE_TOAST'
创建了 assets/scripts/Animations/ToastAni.ts 文件,实现了Toast的滑动动画效果:
SHOW_TOAST 和 HIDE_TOAST 事件toastNode 属性的直接引用showInsufficientCoinsUI() 方法使用事件机制showNoPlacedBlocksToast() 方法使用事件机制toastPrefab 属性showStartWavePromptUI() 方法使用事件机制// 显示Toast消息
EventBus.getInstance().emit(GameEvents.SHOW_TOAST, {
message: '这是提示消息',
duration: 3.0 // 可选,默认3秒
});
// 手动隐藏Toast
EventBus.getInstance().emit(GameEvents.HIDE_TOAST);
ToastAni 组件label 需要有 cc.Label 组件