Open
Conversation
新增: - EventBus: 类型安全的事件总线,支持泛型订阅/发布,深度计数器防无限循环 - GameEvents: 核心游戏事件定义(翻转、静止、被砸、掉落、结算、回合结束等) - ITagBehavior: 标签行为接口(OnAttached/OnDetached) - TagManager: 标签管理器(固有标签 + 附着标签,品质槽位限制) - TagContext: 标签运行上下文 - CoinQuality: 硬币品质枚举(普通/稀有/传说 → 1/2/3 槽) - TagIds: 标签 ID 常量集中定义 - GameServices: 全局服务定位器 修改: - Coin.cs: 集成 TagManager,添加事件桥接(翻转/静止/掉落事件发布) - GameManager.cs: 初始化 GameServices
标签实现(按复杂度递增): - CorpseTag(尸体):被动属性修饰,面值归零 - HeavyTag(超重):被动属性修饰,质量 ×10 - FragileTag(脆弱):翻转后落地即消失 - VoidTag(虚无):回合结束后消失 - CreatureTag(生物):被砸死后移除生物标签 + 添加尸体标签 - ReturnTag(回归):掉出场地后传送回最后有效位置 - BounceTag(再弹跳):落地后再弹起一次 - DoubleFaceTag(正面翻倍):正面 ×2,背面不拿分 - MagneticTag(磁力):落地后吸引周围硬币 - RabbitTag(兔子):落地后生成小兔子硬币(数量 = 翻转次数) 基础设施: - TagRegistry: 标签行为注册表,根据 TagId 创建实例 - CoinDefinition: 数据驱动硬币模板 Resource(面值、品质、大小、固有标签) - CoinFactory: 硬币工厂,根据定义生成硬币 + 附着固有标签 - 内置小兔子硬币和黑曜石硬币的快捷创建方法
碰撞检测: - Coin.cs: 连接 BodyEntered 信号,硬币间碰撞时发布 CoinHitEvent (碰撞力度阈值 0.5,避免静止接触误触发) - 修复 CoinQuality 枚举值在 .tres 中的映射(0 → 1) 调试工具升级: - DebugUI: 显示每个硬币的标签列表和有效面值 - DebugInputHandler: 添加标签测试快捷键 1=小兔子 2=黑曜石 3=回归币 4=磁力币 5=弹跳币 硬币定义资源文件(.tres): - bunny.tres: 小兔子(面值1, 极小, 虚无+脆弱+生物) - bunny_corpse.tres: 小兔子尸体(面值1, 极小, 虚无+脆弱+尸体) - obsidian.tres: 黑曜石(面值10, 虚无+超重) - standard_copper.tres: 标准铜币(面值1, 无标签)
问题: - ReturnTag 回归到 LastPosition(可能在场地边缘),导致重复掉落 - UpdateFallOffDetection 每帧检查,掉落后连续发布多个 CoinFellOffEvent 修复: - ReturnTag: 回归位置改为场地中心 (0, 3, 0) - Coin.cs: 添加 _hasFallenOff 防重复标记,0.5 秒后重置
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Milestone 2:标签系统核心
概述
实现标签系统的完整核心框架,这是游戏一切行为的基础。标签系统采用事件驱动架构:物理层产生事件 → 事件总线分发 → 标签响应并产出效果。
架构设计
核心设计原则:
新增内容
事件系统
EventBus: 类型安全的泛型事件总线(Subscribe/Publish)GameEvents: 7 种核心事件(翻转、静止、碰撞、掉落、结算、回合结束、生成/移除)GameServices: 全局服务定位器标签框架
ITagBehavior: 标签行为接口(OnAttached/OnDetached)TagManager: 标签管理器(固有标签 + 附着标签,品质槽位限制)TagContext: 标签运行上下文TagRegistry: 标签行为注册表CoinQuality: 品质枚举(普通1/稀有2/传说3 槽)10 个基础标签
数据驱动硬币定义
CoinDefinition: Resource 模板(面值、品质、大小、固有标签列表)CoinFactory: 硬币工厂(加载场景 → 设置属性 → 附着标签)Coin.cs 集成
GetEffectiveFaceValue(): 考虑尸体标签的面值查询调试工具
验收测试建议