语言想象功能使用说明
功能概述
这是一个语言想象系统,实现了以下功能:
- 背景文字层:大量文字不断变化字符和明暗,文字间寻找关联形成词语连线
- 圆形可视区域:通过鼠标拖拽移动圆形区域查看不同部分
- 造句功能:根据Yarn指令传入的句子,逐步构建句子
- 卡壳功能:可在指定位置卡壳,显示错误文字,需要点击移除
文件结构
TextNode.cs- 文字节点类,管理单个文字的显示、状态和连接关系BackgroundTextLayer.cs- 背景文字层系统,生成和管理背景文字CircularViewport.cs- 圆形可视区域,使用Shapes绘制圆形遮罩SentenceBuilder.cs- 造句系统,处理句子生成流程LanguageImaginationSystem.cs- 主管理器,协调各模块工作LanguageImaginationYarnCommand.cs- Yarn指令接口
使用方法
1. 场景设置
- 在场景中创建一个GameObject
- 添加
LanguageImaginationSystem组件 - 调整参数:
- 场设置:fieldWidth, fieldHeight, backgroundNodeCount
- 圆形视口设置:viewportRadius
- 连线设置:connectionLineWidth, 各种连线颜色
2. Yarn指令使用
开始构建句子
<<language_imagine "这是一个示例用来测试的" 3>>
- 第一个参数:要构建的句子
- 第二个参数(可选):卡壳位置(从0开始,-1表示不卡壳)。例如3表示在第4个字(索引3)处卡壳
停止构建句子
<<language_imagine_stop>>
3. 功能说明
背景文字层
- 自动生成大量随机文字
- 文字会随机变化字符和亮度
- 文字之间会根据距离和概率建立连接关系
- 连接关系会动态更新
圆形可视区域
- 点击并拖拽圆形区域内的任意位置可以移动视口
- 只有视口内的文字和连线会被显示
造句流程
- 在当前可视范围内找到或创建第一个字(如"这")
- 将该字设置为选定状态,放大并高亮显示
- 移动到句子位置
- 在选定字周围生成候选文字
- 候选文字的概率动态变化,直到目标字概率最高
- 目标字成为新的选定字,其他候选恢复随机
- 重复直到句子完成
卡壳功能
- 当到达指定的卡壳位置时,会显示错误文字("我是个傻逼")
- 错误文字显示为红色,概率100%
- 点击错误文字可以移除
- 全部移除后继续构建流程
4. 视觉表现
- 背景文字连线:半透明白色,根据文字亮度调整
- 句子连线:黄色,较粗,稳定清晰
- 候选文字连线:青色,根据概率调整透明度和宽度
- 选定文字:黄色,放大1.5倍
- 候选文字:青色,亮度随概率变化
- 卡壳文字:红色,放大1.2倍
注意事项
- 确保场景中有主摄像机
- 需要TextMeshPro支持
- 需要DOTween支持(用于动画)
- 需要Shapes库支持(用于绘制)
- 建议使用正交摄像机以获得更好的2D效果
扩展建议
- 可以调整候选文字的数量和范围
- 可以自定义卡壳时的错误文字
- 可以添加更多视觉效果(如粒子效果)
- 可以优化性能(如对象池、LOD等)