Files
aibis-dream/Assets/Scripts/MiniGame/HuoShan/NewExpress
2025-11-03 18:24:38 +08:00
..
2025-11-03 18:24:38 +08:00
2025-11-03 18:24:38 +08:00
2025-11-03 18:24:38 +08:00
2025-11-03 18:24:38 +08:00
2025-11-03 18:24:38 +08:00
2025-11-03 18:24:38 +08:00
2025-11-03 18:24:38 +08:00
2025-11-03 18:24:38 +08:00
2025-11-03 18:24:38 +08:00
2025-11-03 18:24:38 +08:00
2025-11-03 18:24:38 +08:00
2025-11-03 18:24:38 +08:00
2025-11-03 18:24:38 +08:00

语言想象功能使用说明

功能概述

这是一个语言想象系统,实现了以下功能:

  1. 背景文字层:大量文字不断变化字符和明暗,文字间寻找关联形成词语连线
  2. 圆形可视区域:通过鼠标拖拽移动圆形区域查看不同部分
  3. 造句功能:根据Yarn指令传入的句子,逐步构建句子
  4. 卡壳功能:可在指定位置卡壳,显示错误文字,需要点击移除

文件结构

  • TextNode.cs - 文字节点类,管理单个文字的显示、状态和连接关系
  • BackgroundTextLayer.cs - 背景文字层系统,生成和管理背景文字
  • CircularViewport.cs - 圆形可视区域,使用Shapes绘制圆形遮罩
  • SentenceBuilder.cs - 造句系统,处理句子生成流程
  • LanguageImaginationSystem.cs - 主管理器,协调各模块工作
  • LanguageImaginationYarnCommand.cs - Yarn指令接口

使用方法

1. 场景设置

  1. 在场景中创建一个GameObject
  2. 添加 LanguageImaginationSystem 组件
  3. 调整参数:
    • 场设置fieldWidth, fieldHeight, backgroundNodeCount
    • 圆形视口设置viewportRadius
    • 连线设置connectionLineWidth, 各种连线颜色

2. Yarn指令使用

开始构建句子

<<language_imagine "这是一个示例用来测试的" 3>>
  • 第一个参数:要构建的句子
  • 第二个参数(可选):卡壳位置(从0开始,-1表示不卡壳)。例如3表示在第4个字(索引3)处卡壳

停止构建句子

<<language_imagine_stop>>

3. 功能说明

背景文字层

  • 自动生成大量随机文字
  • 文字会随机变化字符和亮度
  • 文字之间会根据距离和概率建立连接关系
  • 连接关系会动态更新

圆形可视区域

  • 点击并拖拽圆形区域内的任意位置可以移动视口
  • 只有视口内的文字和连线会被显示

造句流程

  1. 在当前可视范围内找到或创建第一个字(如"这")
  2. 将该字设置为选定状态,放大并高亮显示
  3. 移动到句子位置
  4. 在选定字周围生成候选文字
  5. 候选文字的概率动态变化,直到目标字概率最高
  6. 目标字成为新的选定字,其他候选恢复随机
  7. 重复直到句子完成

卡壳功能

  • 当到达指定的卡壳位置时,会显示错误文字("我是个傻逼")
  • 错误文字显示为红色,概率100%
  • 点击错误文字可以移除
  • 全部移除后继续构建流程

4. 视觉表现

  • 背景文字连线:半透明白色,根据文字亮度调整
  • 句子连线:黄色,较粗,稳定清晰
  • 候选文字连线:青色,根据概率调整透明度和宽度
  • 选定文字:黄色,放大1.5倍
  • 候选文字:青色,亮度随概率变化
  • 卡壳文字:红色,放大1.2倍

注意事项

  1. 确保场景中有主摄像机
  2. 需要TextMeshPro支持
  3. 需要DOTween支持(用于动画)
  4. 需要Shapes库支持(用于绘制)
  5. 建议使用正交摄像机以获得更好的2D效果

扩展建议

  1. 可以调整候选文字的数量和范围
  2. 可以自定义卡壳时的错误文字
  3. 可以添加更多视觉效果(如粒子效果)
  4. 可以优化性能(如对象池、LOD等)