253 lines
5.3 KiB
Markdown
253 lines
5.3 KiB
Markdown
# 语言分析系统 (Language Analysis System)
|
||
|
||
## 📖 概述
|
||
|
||
语言分析系统是一个独立的游戏系统,通过 `FixStateMachine` 进行状态管理。它包含记忆解密器等多种分析模式,专注于语言相关的解谜玩法。
|
||
|
||
## 🎯 系统特点
|
||
|
||
- ✅ **独立系统** - 完全独立于 ExpressionManager
|
||
- ✅ **状态管理** - 集成到 FixStateMachine
|
||
- ✅ **易于测试** - 可单独进入测试
|
||
- ✅ **易于扩展** - 支持多种分析模式
|
||
|
||
## 📂 文件结构
|
||
|
||
```
|
||
LanguageAnalysis/
|
||
├── LanguageAnalysisManager.cs # 主管理器
|
||
├── LanguageAnalysisYarnCommands.cs # Yarn 状态切换命令
|
||
├── README.md # 本文档
|
||
├── QUICK_REFERENCE.md # 快速参考卡
|
||
├── SETUP_GUIDE.md # 详细设置指南
|
||
├── REFACTORING_SUMMARY.md # 重构说明
|
||
└── TestLanguageAnalysis.yarn # 测试对话
|
||
```
|
||
|
||
## 🚀 快速开始
|
||
|
||
### 1. Yarn 命令
|
||
|
||
```yarn
|
||
// 进入语言分析系统
|
||
<<enter_language_analysis>>
|
||
|
||
// 启动记忆解密器
|
||
<<memory_decryptor_start SuccessNode>>
|
||
|
||
// 退出语言分析系统
|
||
<<exit_language_analysis>>
|
||
```
|
||
|
||
### 2. 最简测试
|
||
|
||
```yarn
|
||
title: Test
|
||
---
|
||
<<enter_language_analysis>>
|
||
<<memory_decryptor_start Success>>
|
||
===
|
||
|
||
title: Success
|
||
---
|
||
成功!
|
||
<<memory_decryptor_stop>>
|
||
<<exit_language_analysis>>
|
||
===
|
||
```
|
||
|
||
## 📋 文档索引
|
||
|
||
| 文档 | 用途 | 适合人群 |
|
||
|------|------|----------|
|
||
| `QUICK_REFERENCE.md` | 快速查询命令和用法 | 所有人 |
|
||
| `SETUP_GUIDE.md` | 详细的场景设置步骤 | 首次使用者 |
|
||
| `REFACTORING_SUMMARY.md` | 重构说明和对比 | 了解架构变更 |
|
||
| `TestLanguageAnalysis.yarn` | 测试对话示例 | 测试功能 |
|
||
|
||
## 🎮 核心组件
|
||
|
||
### LanguageAnalysisManager
|
||
主管理器,负责:
|
||
- 系统视图管理
|
||
- 相机注册
|
||
- 各分析模式的启动和停止
|
||
|
||
### LanguageAnalysisState
|
||
FixState 状态,负责:
|
||
- 状态进入时的场景切换
|
||
- 相机动画
|
||
- 状态退出时的清理
|
||
|
||
### Yarn Commands
|
||
- `enter_language_analysis` - 进入状态
|
||
- `exit_language_analysis` - 退出状态
|
||
- `memory_decryptor_*` - 记忆解密器命令
|
||
|
||
## 🔧 技术细节
|
||
|
||
### 状态机集成
|
||
|
||
```csharp
|
||
public enum FixState
|
||
{
|
||
// ...
|
||
LanguageAnalysis, // 语言分析系统
|
||
}
|
||
|
||
public struct LanguageAnalysisState : IState<FixState>
|
||
{
|
||
// Enter: 切换相机,打开视图
|
||
// Exit: 关闭视图,重置状态
|
||
}
|
||
```
|
||
|
||
### 系统注册
|
||
|
||
```csharp
|
||
// 自动注册到 FixSystemCenter
|
||
FixSystemCenter.SystemDic.Register(this);
|
||
```
|
||
|
||
### 相机管理
|
||
|
||
```csharp
|
||
public enum CameraEnum
|
||
{
|
||
LanguageAnalysis, // 主相机
|
||
LanguageAnalysisDeep, // 深度相机
|
||
}
|
||
```
|
||
|
||
## 📝 使用示例
|
||
|
||
### 完整流程
|
||
|
||
```yarn
|
||
title: LanguageAnalysisDemo
|
||
---
|
||
玩家:我想分析这段记忆...
|
||
|
||
<<enter_language_analysis>>
|
||
|
||
系统进入中...
|
||
|
||
<<memory_decryptor_start Demo_Success>>
|
||
|
||
现在你可以:
|
||
1. 调整情绪频率滑块
|
||
2. 拖动解码器条
|
||
3. 点击"验证对齐"按钮
|
||
===
|
||
|
||
title: Demo_Success
|
||
---
|
||
🎉 解密成功!
|
||
|
||
你发现了隐藏的情绪:
|
||
"[临检]要来了,不合格[英里]被骂了,这让我很[担心]"
|
||
|
||
<<memory_decryptor_stop>>
|
||
<<exit_language_analysis>>
|
||
|
||
返回正常状态...
|
||
===
|
||
|
||
title: Demo_Success_Fail
|
||
---
|
||
❌ 解密失败
|
||
|
||
频率或位置不太对...
|
||
|
||
-> 再试一次
|
||
<<jump LanguageAnalysisDemo>>
|
||
|
||
-> 放弃
|
||
<<memory_decryptor_stop>>
|
||
<<exit_language_analysis>>
|
||
算了,先做别的...
|
||
===
|
||
```
|
||
|
||
## 🐛 常见问题
|
||
|
||
### Q: Unity 提示找不到 LanguageAnalysisManager?
|
||
A: 保存文件后等待 Unity 重新编译。如果问题持续,尝试重启 Unity。
|
||
|
||
### Q: 进入状态后看不到界面?
|
||
A: 检查 Analysis View 是否已设置且激活。
|
||
|
||
### Q: 相机不切换?
|
||
A: 确保两个 Virtual Camera 已正确注册到 CameraKit。
|
||
|
||
### Q: Yarn 命令不工作?
|
||
A: 确保 LanguageAnalysisManager 已添加到场景并注册到 SystemDic。
|
||
|
||
## 🎨 分析模式
|
||
|
||
### 当前支持
|
||
|
||
#### 记忆解密器 (Memory Decryptor)
|
||
- 复古 CRT 显示风格
|
||
- 频率调谐解谜
|
||
- 解码器条拖动
|
||
- 笑话/情绪识别
|
||
|
||
### 未来扩展
|
||
|
||
可以添加更多分析模式:
|
||
- 语法分析器
|
||
- 语义地图
|
||
- 情绪图谱
|
||
- ...
|
||
|
||
## 📊 系统流程图
|
||
|
||
```
|
||
游戏开始
|
||
↓
|
||
Clinic / 其他状态
|
||
↓ <<enter_language_analysis>>
|
||
进入 LanguageAnalysisState
|
||
↓ State.Enter()
|
||
- 切换到 BodyModule (Head)
|
||
- 打开 Analysis View
|
||
- 相机动画 (Analysis → AnalysisDeep)
|
||
↓ <<memory_decryptor_start>>
|
||
记忆解密器 Boot 序列
|
||
↓
|
||
解密器运行中(玩家操作)
|
||
↓ 成功/失败
|
||
Yarn 节点反馈
|
||
↓ <<exit_language_analysis>>
|
||
退出 LanguageAnalysisState
|
||
↓ State.Exit()
|
||
- 关闭视图
|
||
- 重置 Plug
|
||
↓
|
||
返回 Clinic / 其他状态
|
||
```
|
||
|
||
## ✅ 设置清单
|
||
|
||
使用前确保:
|
||
- [ ] LanguageAnalysisManager 已添加到场景
|
||
- [ ] Language Analysis View 已配置
|
||
- [ ] 两个 Virtual Camera 已设置
|
||
- [ ] MemoryDecryptorMode 及其子组件已配置
|
||
- [ ] 配置文件已创建并设置
|
||
- [ ] 已测试基本功能
|
||
|
||
## 🚀 下一步
|
||
|
||
1. 阅读 `QUICK_REFERENCE.md` 了解常用命令
|
||
2. 按照 `SETUP_GUIDE.md` 设置场景
|
||
3. 使用 `TestLanguageAnalysis.yarn` 测试
|
||
4. 开始创建你的语言分析关卡!
|
||
|
||
---
|
||
|
||
**Need Help?** 查看 `SETUP_GUIDE.md` 获取详细步骤
|
||
**Quick Start?** 查看 `QUICK_REFERENCE.md` 快速上手
|
||
|