2.4 KiB
2.4 KiB
语言粒子系统效果总结
核心功能
1. 粒子系统
- 背景浮动文字(100个):半透明、缓慢移动、定期随机变换字符
- 可交互候选粒子(50个):
- 蓝色粒子:普通粒子
- 红色粒子:目标粒子(8个,需要连接)
- 橙色粒子:被红色粒子"感染"的蓝色粒子
2. 粒子行为
- 边界反弹
- 相互排斥(避免重叠)
- 字符定期随机变化(中文字符集)
- 可选词组模式(相邻粒子组成词组)
3. 连接系统
- 距离小于200像素的粒子之间绘制连线
- 蓝色粒子间:细蓝线
- 红色粒子间:粗红线
4. 交互效果
- 涟漪效果(右键):吸引附近粒子
- 排斥爆发(左键):推开附近粒子
- 粒子受力后产生速度变化
5. 效果传播系统
- 当红色粒子与蓝色粒子新建立连接时:
- 蓝色粒子变橙色
- 橙色粒子字符变化加速(3倍速)
- 橙色粒子产生振动效果
- 橙色粒子有光晕和缩放动画
- 效果可以链式传播(橙色粒子连接新的蓝色粒子)
- 最多传播8步
- 传播时绘制连接线、脉冲光点、箭头
6. 游戏目标与完成序列
目标:让所有红色粒子连接成一个整体,且与蓝色粒子分离
Unity实现要点
技术选型
- 文字渲染:TextMeshPro(支持中文)
- 线条绘制:Shapes插件
- 动画:DOTween
- 画布:10x10 World Space Canvas
- 输入:Unity Input System或传统Input
核心挑战
- Perlin噪声波形生成与平滑
- 粒子间连接检测与效果传播
- 波形交互的抵抗力机制
- 文字抖动与消散效果
- 性能优化(大量粒子+连线)
建议架构
LanguageParticleManager(主管理器)
├── FloatingTextParticle(背景文字)
├── CandidateParticle(候选粒子)
├── ConnectionRenderer(连线渲染)
├── EffectPropagationSystem(效果传播)
├── WaveformSystem(波形系统)
│ ├── WaveformPoint(波形点)
│ └── WaveformRenderer(波形渲染)
└── InteractionHandler(交互处理)
性能优化建议
- 使用对象池管理粒子和效果
- 连接检测使用空间分区(如Grid)
- 波形点数量与文字数量一致(8个)
- 粒子效果使用Instancing
- 线条使用批量绘制