# 记忆解密器 - 快速入门 ## 🚀 5分钟快速开始 ### 第一步:创建配置文件(可选) **✨ 自动配置模式(推荐)** 无需手动创建配置文件!系统会自动使用默认配置。 **🔧 自定义配置模式(可选)** 如果需要自定义配置: 1. 在 Unity 编辑器中,右键点击 Project 窗口 2. 选择 `Create > AibisDream > Language > Memory Decryptor Config` 3. 命名为 `DefaultMemoryDecryptorConfig` 4. 在 Inspector 中填入基础数据 5. 在 MemoryDecryptorMode 组件中拖入配置文件 **快捷方式**:使用 `MemoryDecryptorConfigExample.CreateDefaultConfig()` 生成示例配置 ### 第二步:设置场景 UI 1. **创建基础 Canvas** ``` - 创建 Canvas(Screen Space - Overlay) - 添加 Canvas Scaler,设置为 Scale With Screen Size ``` 2. **添加记忆解密器根对象** ``` Canvas └── MemoryDecryptorRoot ├── Background (Image - 纯黑色) └── MainPanel (RectTransform) ``` 3. **创建网格容器** ``` MainPanel └── GridContainer (RectTransform) - Anchor: Top-Left - Pivot: (0, 1) - Position: (50, -50, 0) ``` 4. **创建解码器条容器** ``` MainPanel └── DecoderStripContainer (RectTransform) - 与 GridContainer 同级 - 相同的锚点和 Pivot ``` 5. **创建控制面板** ``` MainPanel └── ControlPanel (Vertical Layout Group) ├── FrequencyDisplay (TextMeshPro) │ └── Text: "00.0 Hz" ├── FrequencySlider (Slider) │ └── Min: 0, Max: 100, Value: 50 ├── FilterButton (Button) │ └── Text: "启动过滤分析" ├── VerifyButton (Button) │ └── Text: "验证对齐" ├── SignalPanel │ └── SignalBar (Image - 绿色,Anchor: Stretch-Left) └── LogPanel (ScrollView) └── LogText (TextMeshPro) ``` ### 第三步:添加脚本组件 1. **添加 MemoryDecryptorMode** ``` MemoryDecryptorRoot 上添加: - MemoryDecryptorMode - Config: 【可选】如果不设置,会自动使用默认配置 - (其他组件会自动查找,无需配置) ``` 2. **添加 MemoryDecryptorRenderer** ``` MemoryDecryptorRoot 上添加: - MemoryDecryptorRenderer 【UI 组件(必须配置)】 - Grid Container: 拖入 GridContainer - Decoder Strip Container: 拖入 DecoderStripContainer - Frequency Display: 拖入 FrequencyDisplay - Log Text: 拖入 LogText - Signal Bar: 拖入 SignalBar - (其他组件会自动处理) ``` 3. **添加 MemoryDecryptorInputHandler** ``` MemoryDecryptorRoot 上添加: - MemoryDecryptorInputHandler 【UI 组件(必须配置)】 - Grid Container: 拖入 GridContainer - Frequency Slider: 拖入滑块 - Filter Button: 拖入过滤按钮 - Verify Button: 拖入验证按钮 【拖动设置】 - Grid Cell Size: 45 - Grid Cell Gap: 2 - (Mode 和 Renderer 会自动查找) ``` 4. **Yarn 命令支持** ``` ✅ 无需添加组件! MemoryDecryptorYarnCommands 使用 [YarnCommand] 特性自动注册, 无需添加到场景中,开箱即用。 ``` ### 第四步:连接到 ExpressionManager 1. 找到场景中的 `ExpressionManager` 对象 2. `MemoryDecryptorMode` 会被自动查找,无需手动配置 3. 确保 `MemoryDecryptorMode` 是 `ExpressionManager` 的子对象即可 ### 第五步:编写 Yarn 对话 创建或编辑你的 Yarn 文件: ```yarn title: TestMemoryDecryptor --- 让我们测试一下记忆解密器。 <> <> === title: TestSuccess --- 成功解密! <> === title: TestSuccess_Fail --- 失败了,再试试吧。 === ``` ### 第六步:测试运行 1. 按下 Play 按钮 2. 在 Yarn Dialogue 中触发 `TestMemoryDecryptor` 节点 3. 应该看到: - Boot 序列日志 - 网格流式加载动画 - "启动过滤分析" 按钮变为可用 4. 点击"启动过滤分析" 5. 调整频率滑块,观察网格变化 6. 点击"验证对齐"测试匹配 ## 🎯 最简配置(测试用) 如果只是想快速测试,可以使用这个最简配置: ### 1. 简单场景设置 ``` Canvas └── MemoryDecryptorTest - MemoryDecryptorMode (不需要设置 Config,自动使用默认) - MemoryDecryptorRenderer - MemoryDecryptorInputHandler ``` ### 2. 自动使用默认配置 ✨ 无需任何配置!`MemoryDecryptorMode` 会自动创建默认配置。 ### 3. 最简 Yarn ```yarn title: Start --- <> <> === ``` ## ❓ 常见问题 ### Q: 看不到网格? A: 检查 GridContainer 是否正确设置,确保 Canvas Scaler 工作正常。 ### Q: 解码器条不显示? A: 确保已经调用 `<>`,或点击了"启动过滤分析"按钮。 ### Q: 拖动不工作? A: 检查 Canvas 是否有 GraphicRaycaster 组件,场景是否有 EventSystem。 ### Q: 没有 Shapes 插件怎么办? A: 可以修改 `MemoryDecryptorRenderer` 使用 Unity UI 的 Image 替代 Shapes.Rectangle。 ### Q: Yarn 命令不工作? A: 确保 `ExpressionManager` 已正确注册到 `FixSystemCenter.SystemDic`。命令会自动通过 `[YarnCommand]` 特性注册,无需手动添加组件。 ### Q: 匹配检测不准确? A: 检查配置文件中的目标位置 `stripPosition` 是否与匹配词汇的位置对应。 ## 📚 下一步学习 - 阅读 `README.md` 了解详细机制 - 查看 `ExampleYarnDialogue.yarn` 学习完整对话流程 - 研究 `MemoryDecryptorConfigExample.cs` 学习如何配置谜题 - 阅读 `IMPLEMENTATION_SUMMARY.md` 了解架构设计 ## 💡 提示 1. **调试模式**:在 `MemoryDecryptorMode` 中添加 `[SerializeField] private bool debugMode;`,在匹配时输出详细信息 2. **可视化工具**:可以在 Scene 视图中用 Gizmos 显示解码器孔的位置 3. **自动测试**:创建自动化测试脚本,自动设置频率和位置进行测试 --- **需要帮助?** 检查代码注释或查看完整文档!