260 lines
7.7 KiB
Markdown
260 lines
7.7 KiB
Markdown
# 分析模式快速设置清单
|
||
|
||
## ✅ 关键要点
|
||
|
||
1. **共享 Canvas**:分析模式使用 LanguageParticleManager 的 `Language Canvas`(WorldSpace Canvas)
|
||
2. **UI 位置**:所有分析模式 UI 都在 `Language Canvas` 下创建
|
||
3. **初始化按钮位置**:放在 `Emotion Control`(情绪控制区)里
|
||
4. **游戏流程**:先完成语言粒子游戏 → 启动分析模式 → 呼出控制器 → 初始化 → 过滤分析 → 验证
|
||
|
||
## 🚀 5分钟快速设置
|
||
|
||
### 1. 找到现有 Canvas(1分钟)
|
||
```
|
||
Hierarchy:
|
||
Expression View
|
||
└── Language Particle Manager
|
||
└── Language Canvas ← 这个!
|
||
```
|
||
|
||
### 2. 创建分析面板(2分钟)
|
||
在 `Language Canvas` 下:
|
||
```
|
||
右键 Language Canvas → Create Empty
|
||
命名为:Analysis Panel
|
||
添加 RectTransform
|
||
设置 Active: false(初始隐藏)
|
||
```
|
||
|
||
### 3. 创建控制区(1分钟)
|
||
在 `Analysis Panel` 下:
|
||
```
|
||
创建 Vertical Layout Group 对象:Control Panel
|
||
├── 创建 Vertical Layout Group 对象:Emotion Control
|
||
│ ├── Button: Initialize Button
|
||
│ ├── TMP_Text: Frequency Text
|
||
│ ├── Slider: Emotion Slider
|
||
│ └── TMP_Text: Signal Strength Text
|
||
├── Button: Start Filter Button
|
||
├── Button: Verify Button
|
||
└── Scroll View: Log Scroll View
|
||
└── TMP_Text: Log Text
|
||
```
|
||
|
||
### 4. 创建网格区(1分钟)
|
||
在 `Analysis Panel` 下:
|
||
```
|
||
创建 Empty 对象:Grid Container
|
||
└── 创建 Image:Decoder Strip
|
||
- 添加 Canvas Group
|
||
- 添加 Outline
|
||
- 添加 AnalysisDecoderStrip
|
||
- Active: false(初始隐藏)
|
||
```
|
||
|
||
### 5. 配置管理器(立即完成)
|
||
```
|
||
创建 GameObject:Analysis Mode Manager(在 Expression View 下)
|
||
添加组件:AnalysisModeManager
|
||
|
||
拖入引用:
|
||
✓ Shared Canvas → Language Canvas
|
||
✓ Analysis Panel → Analysis Panel
|
||
✓ 所有按钮、文本、滑动条
|
||
✓ Grid Container → Grid Container
|
||
✓ Decoder Strip → Decoder Strip
|
||
✓ Grid Cell Prefab → 你创建的预制体
|
||
```
|
||
|
||
## 📋 完整层级结构
|
||
|
||
```
|
||
Expression View
|
||
├── Expression Camera
|
||
├── Expression Deep Camera
|
||
├── Language Particle Manager (挂 LanguageParticleManager)
|
||
│ └── Language Canvas (WorldSpace Canvas)
|
||
│ ├── FloatingParticles (运行时创建)
|
||
│ ├── CandidateParticles (运行时创建)
|
||
│ └── Analysis Panel ← 你要创建的
|
||
│ ├── Control Panel
|
||
│ │ ├── Emotion Control
|
||
│ │ │ ├── Initialize Button
|
||
│ │ │ ├── Frequency Text ("50.0 Hz")
|
||
│ │ │ ├── Emotion Slider (0-100, 初始50)
|
||
│ │ │ └── Signal Strength Text ("信号强度: 0%")
|
||
│ │ ├── Start Filter Button (初始禁用)
|
||
│ │ ├── Verify Button (初始禁用)
|
||
│ │ └── Log Scroll View
|
||
│ │ └── Log Text
|
||
│ └── Grid Container
|
||
│ └── Decoder Strip (初始隐藏)
|
||
└── Analysis Mode Manager (挂 AnalysisModeManager)
|
||
```
|
||
|
||
## 🎯 关键配置项
|
||
|
||
### AnalysisModeManager Inspector 设置
|
||
|
||
#### Canvas 引用(共享)
|
||
- **Shared Canvas**: `Language Canvas` ← **必须设置!**
|
||
|
||
#### UI 引用
|
||
- Analysis Panel: `Analysis Panel`
|
||
- Initialize Button: `Initialize Button`
|
||
- Emotion Slider: `Emotion Slider` (Min: 0, Max: 100, Value: 50)
|
||
- Frequency Text: `Frequency Text`
|
||
- Signal Strength Text: `Signal Strength Text`
|
||
- Start Filter Button: `Start Filter Button` (初始 Interactable: false)
|
||
- Verify Button: `Verify Button` (初始 Interactable: false)
|
||
- Log Text: `Log Text`
|
||
- Log Scroll Rect: `Log Scroll View`
|
||
|
||
#### 网格配置
|
||
- Grid Container: `Grid Container`
|
||
- Grid Cell Prefab: `GridCellPrefab` ← **需要创建预制体**
|
||
- Grid Width: **20**
|
||
- Grid Height: **20**
|
||
- Cell Size: **45**
|
||
- Cell Gap: **2**
|
||
|
||
#### 解码器条纹
|
||
- Decoder Strip: `Decoder Strip`
|
||
- Strip Width: **5**
|
||
- Strip Height: **3**
|
||
|
||
#### 动画配置
|
||
- Panel Slide Duration: 0.5
|
||
- Slide Ease: OutCubic
|
||
|
||
#### 焦虑短句(默认,可通过 Yarn 覆盖)
|
||
```
|
||
临检要来了大家都很紧张只有销售员说终于可以检查业绩了
|
||
不合格英里被骂了因为销售业绩太差了
|
||
我担心业绩会下滑结果真的下滑了我的担心是对的
|
||
销售员总是混淆客户和老板因为都要讨好
|
||
一个销售员走进酒吧问两张桌子要不要买保险
|
||
```
|
||
|
||
#### 目标配置
|
||
- Target Sentence: `[临检]要来了,不合格[英里]被骂了,这让我很[担心]`
|
||
|
||
## 🎮 测试流程
|
||
|
||
### Yarn 测试脚本
|
||
```yarn
|
||
title: 测试分析模式
|
||
---
|
||
// 1. 先完成语言粒子游戏(可选)
|
||
角色:现在让我们分析一下你的焦虑...
|
||
|
||
// 2. 启动分析模式
|
||
<<start_analysis_mode "" "TestComplete">>
|
||
|
||
// 等待玩家操作...
|
||
===
|
||
|
||
title: TestComplete_Success
|
||
---
|
||
角色:太好了!你找到了答案。
|
||
<<close_analysis_mode>>
|
||
===
|
||
|
||
title: TestComplete_Fail
|
||
---
|
||
角色:再试试看...
|
||
-> 重试
|
||
<<start_analysis_mode "" "TestComplete">>
|
||
-> 放弃
|
||
<<close_analysis_mode>>
|
||
===
|
||
```
|
||
|
||
### Play Mode 测试步骤
|
||
1. ✓ 启动游戏,通过 Yarn 触发 `start_analysis_mode`
|
||
2. ✓ 检查 Analysis Panel 是否滑出/显示
|
||
3. ✓ 点击 Initialize Button,网格应该开始填充
|
||
4. ✓ 点击 Start Filter Button,解码器条纹应该出现
|
||
5. ✓ 拖动 Emotion Slider,观察网格变化
|
||
6. ✓ 调整到 90Hz 左右(Fear 频率)
|
||
7. ✓ 点击 Verify Button,应该成功
|
||
|
||
## ⚠️ 常见错误
|
||
|
||
### ❌ 错误 1:网格没有显示
|
||
**原因**:Grid Cell Prefab 没有设置或配置错误
|
||
**解决**:
|
||
1. 确保创建了 GridCellPrefab 预制体
|
||
2. 拖入 AnalysisModeManager 的 Grid Cell Prefab 字段
|
||
3. 预制体必须包含 AnalysisGridCell 组件
|
||
|
||
### ❌ 错误 2:面板没有滑出
|
||
**原因**:Analysis Panel 初始位置不对
|
||
**解决**:
|
||
1. Analysis Panel 初始应该设置为 Active: false
|
||
2. 或者设置到屏幕外位置
|
||
3. 检查 Panel Slide Duration 是否 > 0
|
||
|
||
### ❌ 错误 3:按钮点击没反应
|
||
**原因**:Canvas 缺少 Graphic Raycaster 或 EventSystem
|
||
**解决**:
|
||
1. 在 Language Canvas 上添加 `Graphic Raycaster`
|
||
2. 确保场景中有 `EventSystem`
|
||
|
||
### ❌ 错误 4:文字太小看不清
|
||
**原因**:WorldSpace Canvas 中文字需要更大字号
|
||
**解决**:
|
||
1. 增大 Cell Size(建议 60-80)
|
||
2. 增大 TMP_Text 的 Font Size(建议 16-20)
|
||
3. 调整 Canvas 的缩放
|
||
|
||
## 📖 详细文档
|
||
|
||
- **完整设置指南**:`Unity_Setup_Guide_Updated.md`
|
||
- **功能说明**:`README.md`
|
||
- **Yarn 示例**:`AnalysisMode_YarnExample.yarn`
|
||
|
||
## 🎨 自定义建议
|
||
|
||
### 调整 UI 位置
|
||
根据你的游戏设计,Analysis Panel 可以:
|
||
- 覆盖在粒子系统上方(半透明)
|
||
- 平移到屏幕侧边
|
||
- 淡入淡出切换
|
||
|
||
### 调整网格大小
|
||
如果 20x20 太大:
|
||
- 修改 Grid Width/Height(如 15x15)
|
||
- 相应调整 Cell Size
|
||
- 修改焦虑短句数量
|
||
|
||
### 调整情绪频率
|
||
在 `EmotionConfig` 中:
|
||
- Joy: 15Hz(黄色)
|
||
- Sadness: 40Hz(蓝色)
|
||
- Anger: 65Hz(红色)
|
||
- Fear: 90Hz(紫色)
|
||
|
||
## ✨ 完成检查清单
|
||
|
||
- [ ] Language Canvas 存在且配置正确
|
||
- [ ] Analysis Panel 在 Language Canvas 下
|
||
- [ ] Emotion Control 包含 Initialize Button
|
||
- [ ] 所有按钮都有点击事件(在代码中绑定)
|
||
- [ ] Grid Cell Prefab 创建并配置
|
||
- [ ] AnalysisModeManager 所有字段都拖入了引用
|
||
- [ ] ExpressionManager 中 Analysis Mode Manager 字段已设置
|
||
- [ ] 测试 Yarn 脚本可以启动分析模式
|
||
- [ ] Play Mode 下可以完整走完流程
|
||
|
||
## 🚦 现在开始
|
||
|
||
1. 打开 Unity 编辑器
|
||
2. 找到 `Expression View` -> `Language Particle Manager` -> `Language Canvas`
|
||
3. 按照上面的"5分钟快速设置"创建 UI
|
||
4. 配置 AnalysisModeManager
|
||
5. 运行测试!
|
||
|
||
祝你成功!🎉
|
||
|