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