# Unity 编辑器设置指南 ## 快速开始 ### 第一步:创建 UI 结构 1. 在 Hierarchy 中找到 `Expression View` 2. 右键 `Expression View` -> `UI` -> `Canvas`,命名为 `Analysis Canvas` 3. 设置 Canvas 属性: - Render Mode: Screen Space - Overlay - Pixel Perfect: 勾选 ### 第二步:创建分析面板 1. 在 `Analysis Canvas` 下创建 `Panel`,命名为 `Analysis Panel` 2. 设置 RectTransform: - Anchor: 右上角到右下角(stretch right) - Width: 600(可调整) - Offset Left: 0 - Offset Right: 0 - Offset Top: 0 - Offset Bottom: 0 3. 添加背景 Image 组件,颜色设置为半透明黑色 ### 第三步:创建控制区和网格区 在 `Analysis Panel` 下创建两个子对象: #### 1. Control Panel(控制区,左侧) - 创建一个空 GameObject,命名为 `Control Panel` - 添加 `Vertical Layout Group` 组件 - 设置属性: - Child Alignment: Upper Left - Spacing: 10 - Padding: 10 all around 在 `Control Panel` 下依次创建: ##### a. Initialize Button - 创建 Button,命名为 `Initialize Button` - 文本内容:`初始化数据` ##### b. Emotion Control(情绪控制区) - 创建空 GameObject,命名为 `Emotion Control` - 在其下创建: - `Frequency Text`(TMP_Text):显示频率值 - `Emotion Slider`(Slider):情绪滑动条 - Min Value: 0 - Max Value: 100 - Value: 50 - `Signal Strength Text`(TMP_Text):显示信号强度 ##### c. Start Filter Button - 创建 Button,命名为 `Start Filter Button` - 文本内容:`启动过滤分析` ##### d. Verify Button - 创建 Button,命名为 `Verify Button` - 文本内容:`验证对齐` ##### e. Log Panel(日志面板) - 创建 Scroll View,命名为 `Log Scroll View` - 在 Viewport -> Content 下创建 TMP_Text,命名为 `Log Text` - 设置 Log Text 属性: - Alignment: Top Left - Font Size: 12 - Color: Light Green #### 2. Grid Container(网格区,右侧) - 创建空 GameObject,命名为 `Grid Container` - 添加 RectTransform 组件 - 设置大小会在运行时自动计算 ### 第四步:创建网格单元格预制体 1. 在 Project 窗口中,在 `Assets/Prefabs/MiniGame/Language/AnalysisMode/` 创建文件夹 2. 创建新的 UI -> Image,命名为 `GridCellPrefab` 3. 设置属性: - RectTransform Size: (45, 45) - Image Color: 半透明绿色 `rgba(0, 10, 0, 0.2)` 4. 在 `GridCellPrefab` 下创建子对象: - UI -> Text - TextMeshPro,命名为 `Text` - 设置 Text 属性: - Alignment: Center Middle - Font Size: 13 - Color: White - Auto Size: 关闭 - Wrapping: 关闭 - Overflow: Overflow 5. 添加 `AnalysisGridCell` 组件到 `GridCellPrefab` 6. 将 `GridCellPrefab` 拖到 Project 窗口中保存为预制体 ### 第五步:创建解码器条纹预制体 1. 创建新的 UI -> Image,命名为 `DecoderStripPrefab` 2. 设置属性: - RectTransform Size: (根据 stripWidth 和 stripHeight 计算) - Image Color: 半透明青色 `rgba(0, 30, 30, 0.95)` 3. 添加组件: - `Canvas Group` - `Outline`(边框效果) - Effect Color: Cyan - Effect Distance: (2, 2) - `AnalysisDecoderStrip` 4. 将 `DecoderStripPrefab` 拖到 `Grid Container` 下,命名为 `Decoder Strip` ### 第六步:创建分析模式管理器 1. 在 `Expression View` 下创建空 GameObject,命名为 `Analysis Mode Manager` 2. 添加 `AnalysisModeManager` 组件 3. 配置 Inspector 中的引用: #### UI 引用 - `Analysis Canvas`: 拖入第二步创建的 Analysis Canvas - `Analysis Panel`: 拖入 Analysis Panel - `Initialize Button`: 拖入 Initialize Button - `Emotion Slider`: 拖入 Emotion Slider - `Frequency Text`: 拖入 Frequency Text - `Signal Strength Text`: 拖入 Signal Strength Text - `Start Filter Button`: 拖入 Start Filter Button - `Verify Button`: 拖入 Verify Button - `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 #### 焦虑短句配置 在 Anxiety Phrases 列表中添加: - `临检要来了大家都很紧张只有销售员说终于可以检查业绩了` - `不合格英里被骂了因为销售业绩太差了` - `我担心业绩会下滑结果真的下滑了我的担心是对的` - `销售员总是混淆客户和老板因为都要讨好` - `一个销售员走进酒吧问两张桌子要不要买保险` #### 目标配置 - `Target Sentence`: `[临检]要来了,不合格[英里]被骂了,这让我很[担心]` ### 第七步:配置 ExpressionManager 1. 找到 `Expression Manager` 组件 2. 将 `Analysis Mode Manager` 拖入 `Analysis Mode Manager` 字段 ### 第八步:测试 1. 保存场景 2. 进入 Play Mode 3. 在 Console 中执行 Yarn 命令: ``` <> ``` 4. 观察分析模式面板是否正确滑出 ## 布局建议 ### 推荐布局(16:9 屏幕) ``` +----------------------------------------------------------+ | Analysis Panel (右侧 600px) | | +-----------------------------------------------------+ | | | Control Panel | Grid Container | | | | (左侧 200px) | (右侧 400px) | | | | +--------------+ | +---------------------------+ | | | | | Initialize | | | | | | | | +--------------+ | | 20x20 Grid | | | | | | Frequency | | | (每个格子 45x45px) | | | | | | 50.0 Hz | | | | | | | | +--------------+ | | +-----+ | | | | | | Slider | | | |Strip| (可拖拽) | | | | | +--------------+ | | +-----+ | | | | | | Signal: 0% | | | | | | | | +--------------+ | +---------------------------+ | | | | | Start Filter | | | | | | +--------------+ | | | | | | Verify | | | | | | +--------------+ | | | | | | Log Window | | | | | | | > Waiting... | | | | | | | > ... | | | | | | +--------------+ | | | | +-----------------------------------------------------+ | +----------------------------------------------------------+ ``` ## 常见问题 ### Q: 面板没有滑出来 **A**: 检查以下几点: 1. `Analysis Panel` 的初始位置是否设置正确(应该在屏幕外) 2. `Analysis Canvas` 是否激活 3. 是否正确调用了 `StartAnalysisMode` 方法 ### Q: 网格没有显示 **A**: 检查以下几点: 1. `Grid Cell Prefab` 是否正确配置 2. `Grid Container` 是否设置正确 3. 焦虑短句列表是否为空 4. 查看 Console 是否有错误信息 ### Q: 解码器条纹无法拖动 **A**: 检查以下几点: 1. `AnalysisDecoderStrip` 组件是否添加 2. `isDraggable` 是否设置为 true 3. 场景中是否有 `EventSystem` ### Q: 验证总是失败 **A**: 检查以下几点: 1. `SetupTargets()` 中的目标位置是否正确 2. 情绪频率是否在正确范围内(< 8 Hz 偏差) 3. 查看 Log 窗口中的调试信息 ## 性能优化 1. **网格大小**:建议不超过 25x25 2. **对象池**:如果需要频繁创建销毁网格,考虑使用对象池 3. **更新频率**:过滤效果更新可以降低到每 0.1 秒一次 4. **DOTween 优化**:使用 `.SetRecyclable(true)` 减少 GC ## 下一步 1. 根据你的游戏风格调整 UI 样式 2. 添加音效和粒子效果 3. 实现多个解密谜题 4. 添加提示系统 5. 记录玩家数据(尝试次数、完成时间等) ## 版本信息 - 创建日期:2025-12-09 - 适用于 Unity 2021.3 及以上版本 - 需要 TextMeshPro 和 DOTween 插件