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

5.3 KiB
Raw Blame History

语言分析系统 - 清晰架构说明

你应该使用的系统:LanguageAnalysisManager

系统位置

Assets/Scripts/MiniGame/HuoShan/Language/
└── LanguageAnalysis/
    └── LanguageAnalysisManager.cs  # ✅ 这是主系统!

使用方法

在 Yarn 中

// 进入语言分析系统
<<enter_language_analysis>>

// 启动记忆解密器
<<memory_decryptor_start Success>>

// 退出语言分析系统
<<exit_language_analysis>>

在场景中

LanguageAnalysisManager
├── Language Analysis View (GameObject)
│   └── MemoryDecryptorMode
│       ├── Config: 留空即可(自动使用默认配置)
│       ├── MemoryDecryptorRenderer
│       └── MemoryDecryptorInputHandler
├── Language Analysis Camera
└── Language Analysis Deep Camera

📋 核心流程图

游戏开始
    ↓
任意状态 (Clinic / BodyModule / etc.)
    ↓
<<enter_language_analysis>>  ← Yarn 命令
    ↓
[FixStateMachine 切换状态]
    ↓
FixState.LanguageAnalysis ← 进入此状态
    ↓
LanguageAnalysisState.Enter()
  - 切换相机
  - 打开 Analysis View
  - 淡入淡出效果
    ↓
<<memory_decryptor_start>>  ← Yarn 命令
    ↓
LanguageAnalysisManager.StartMemoryDecryptor()
    ↓
MemoryDecryptorMode.StartSystem()
  - Boot 序列
  - 加载网格
  - 显示笑话
    ↓
玩家操作界面
  - 调整频率
  - 拖动解码器
  - 点击验证
    ↓
成功/失败
    ↓
Yarn 节点跳转 (Success / Success_Fail)
    ↓
<<memory_decryptor_stop>>  ← Yarn 命令
    ↓
<<exit_language_analysis>>  ← Yarn 命令
    ↓
[FixStateMachine 切换状态]
    ↓
返回之前的状态

🔑 关键组件

1. LanguageAnalysisManager (主系统)

位置: LanguageAnalysis/LanguageAnalysisManager.cs
职责:

  • 管理语言分析视图
  • 注册到 FixSystemCenter
  • 注册相机
  • 管理子系统(MemoryDecryptorMode

公开方法:

void OpenView()                              // 打开视图
void CloseView()                             // 关闭视图
void StartMemoryDecryptor(string node)      // 启动解密器
void StartMemoryDecryptorFiltering()        // 开始过滤
void SetMemoryDecryptorFrequency(float f)   // 设置频率
void CheckMemoryDecryptorMatch()            // 检查匹配

2. LanguageAnalysisState (状态机状态)

位置: FixSystemNew/FixStateMachine.cs
职责:

  • Enter: 切换相机、打开视图、淡入淡出
  • Exit: 关闭视图、重置 Plug

3. MemoryDecryptorMode (解密器核心)

位置: MemoryDecryptor/MemoryDecryptorMode.cs
职责:

  • 游戏逻辑
  • 网格管理
  • 频率调谐
  • 匹配检测

4. Yarn 命令

位置:

  • LanguageAnalysis/LanguageAnalysisYarnCommands.cs (状态切换)
  • MemoryDecryptor/MemoryDecryptorYarnCommands.cs (解密器控制)

📝 调用链

Yarn → Manager → Mode

<<enter_language_analysis>>
    ↓
LanguageAnalysisYarnCommands.EnterLanguageAnalysis()
    ↓
FixStateMachine.SwitchState(LanguageAnalysis)
    ↓
LanguageAnalysisState.Enter()
    ↓
LanguageAnalysisManager.OpenView()

---

<<memory_decryptor_start>>
    ↓
MemoryDecryptorYarnCommands.StartMemoryDecryptor()
    ↓
LanguageAnalysisManager.StartMemoryDecryptor()
    ↓
MemoryDecryptorMode.StartSystem()

快速配置(零配置模式)

最简场景设置

  1. 创建 LanguageAnalysisManager 对象
  2. 添加子对象和组件(参考 SETUP_GUIDE.md
  3. 运行游戏
  4. 在 Yarn 中使用:
<<enter_language_analysis>>
<<memory_decryptor_start>>

就这么简单!

已移除的内容

从 ExpressionManager 中移除了:

  • AnalysisMode 枚举
  • memoryDecryptorMode 字段
  • SwitchMode() 方法
  • SwitchToParticleMode() 方法
  • SwitchToMemoryDecryptorMode() 方法
  • StartMemoryDecryptor() 方法
  • SetMemoryDecryptorFrequency() 方法
  • StartMemoryDecryptorFiltering() 方法
  • CheckMemoryDecryptorMatch() 方法

原因: 记忆解密器现在完全属于 LanguageAnalysisManager

现在的清晰架构

ExpressionManager (表达系统)
├── 只管理粒子表达
└── 不再管理记忆解密器

LanguageAnalysisManager (语言分析系统)
├── 管理所有语言分析相关功能
└── 包含记忆解密器

🎯 使用建议

表达情绪时 → ExpressionManager

<<open_expression>>
<<start_expression "焦虑短句" "目标句子">>

解密语言时 → LanguageAnalysisManager

<<enter_language_analysis>>
<<memory_decryptor_start>>

📚 文档导航

开始使用语言分析系统:

  1. 📖 LanguageAnalysis/QUICK_REFERENCE.md - 快速上手
  2. 🔧 LanguageAnalysis/SETUP_GUIDE.md - 详细设置
  3. 🧪 LanguageAnalysis/TestLanguageAnalysis.yarn - 测试示例

了解记忆解密器:

  1. 📖 MemoryDecryptor/README.md - 详细说明
  2. MemoryDecryptor/QUICKSTART.md - 快速入门
  3. MemoryDecryptor/AUTO_CONFIG_FEATURE.md - 自动配置

💡 记住

只使用 LanguageAnalysisManager
ExpressionManager 已经不再包含记忆解密器了!
两个系统完全独立,不要混用!


🚀 开始使用: <<enter_language_analysis>>