Files
aibis-dream/Assets/Scripts/MiniGame/HuoShan/Language/MemoryDecryptor/QUICKSTART.md
T
2025-12-04 20:38:02 +08:00

6.0 KiB
Raw Blame History

记忆解密器 - 快速入门

🚀 5分钟快速开始

第一步:创建配置文件(可选)

自动配置模式(推荐)

无需手动创建配置文件!系统会自动使用默认配置。

🔧 自定义配置模式(可选)

如果需要自定义配置:

  1. 在 Unity 编辑器中,右键点击 Project 窗口
  2. 选择 Create > AibisDream > Language > Memory Decryptor Config
  3. 命名为 DefaultMemoryDecryptorConfig
  4. 在 Inspector 中填入基础数据
  5. 在 MemoryDecryptorMode 组件中拖入配置文件

快捷方式:使用 MemoryDecryptorConfigExample.CreateDefaultConfig() 生成示例配置

第二步:设置场景 UI

  1. 创建基础 Canvas
- 创建 CanvasScreen Space - Overlay
- 添加 Canvas Scaler,设置为 Scale With Screen Size
  1. 添加记忆解密器根对象
Canvas
└── MemoryDecryptorRoot
    ├── Background (Image - 纯黑色)
    └── MainPanel (RectTransform)
  1. 创建网格容器
MainPanel
└── GridContainer (RectTransform)
    - Anchor: Top-Left
    - Pivot: (0, 1)
    - Position: (50, -50, 0)
  1. 创建解码器条容器
MainPanel
└── DecoderStripContainer (RectTransform)
    - 与 GridContainer 同级
    - 相同的锚点和 Pivot
  1. 创建控制面板
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: 【可选】如果不设置,会自动使用默认配置
  - (其他组件会自动查找,无需配置)
  1. 添加 MemoryDecryptorRenderer
MemoryDecryptorRoot 上添加:
- MemoryDecryptorRenderer
  【UI 组件(必须配置)】
  - Grid Container: 拖入 GridContainer
  - Decoder Strip Container: 拖入 DecoderStripContainer
  - Frequency Display: 拖入 FrequencyDisplay
  - Log Text: 拖入 LogText
  - Signal Bar: 拖入 SignalBar
  - (其他组件会自动处理)
  1. 添加 MemoryDecryptorInputHandler
MemoryDecryptorRoot 上添加:
- MemoryDecryptorInputHandler
  【UI 组件(必须配置)】
  - Grid Container: 拖入 GridContainer
  - Frequency Slider: 拖入滑块
  - Filter Button: 拖入过滤按钮
  - Verify Button: 拖入验证按钮
  【拖动设置】
  - Grid Cell Size: 45
  - Grid Cell Gap: 2
  - Mode 和 Renderer 会自动查找)
  1. Yarn 命令支持
✅ 无需添加组件!
MemoryDecryptorYarnCommands 使用 [YarnCommand] 特性自动注册,
无需添加到场景中,开箱即用。

第四步:连接到 ExpressionManager

  1. 找到场景中的 ExpressionManager 对象
  2. MemoryDecryptorMode 会被自动查找,无需手动配置
  3. 确保 MemoryDecryptorModeExpressionManager 的子对象即可

第五步:编写 Yarn 对话

创建或编辑你的 Yarn 文件:

title: TestMemoryDecryptor
---
让我们测试一下记忆解密器。
<<switch_to_memory_decryptor_mode>>
<<memory_decryptor_start TestSuccess>>
===

title: TestSuccess
---
成功解密!
<<memory_decryptor_stop>>
===

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

title: Start
---
<<enter_language_analysis>>
<<memory_decryptor_start>>
===

常见问题

Q: 看不到网格?

A: 检查 GridContainer 是否正确设置,确保 Canvas Scaler 工作正常。

Q: 解码器条不显示?

A: 确保已经调用 <<memory_decryptor_filter_start>>,或点击了"启动过滤分析"按钮。

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. 自动测试:创建自动化测试脚本,自动设置频率和位置进行测试

需要帮助? 检查代码注释或查看完整文档!