Files
aibis-dream/Assets/Scripts/MiniGame/HuoShan/Language/AnalysisMode/Unity_Setup_Guide.md
T
2025-12-09 21:42:49 +08:00

8.0 KiB
Raw Blame History

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 TextTMP_Text):显示频率值
    • Emotion SliderSlider):情绪滑动条
      • Min Value: 0
      • Max Value: 100
      • Value: 50
    • Signal Strength TextTMP_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 命令:
    <<start_analysis_mode "" "TestNode">>
    
  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 插件