SuperAPI AI 工具集

tools-unity-cinemachine

通用与其它

查看项目

更新于 10-16 06:43

技能介绍

用途:本技能面向 Unity 的 Cinemachine 相机系统,整理游戏中动态、程序化相机行为的常见实现模式,适用于第三人称相机、战斗相机行为、过场动画相机、相机震动、多目标取景与状态驱动的相机切换。

主要能力:资料覆盖以下主题。 一、基础设置:通过脚本为 CinemachineVirtualCamera 设置 Follow 与 LookAt 目标。 二、第三人称相机:获取 Cinemachine3rdPersonFollow 与 CinemachineComposer 组件,设置相机距离、肩膀偏移与阻尼。 三、相机混合:按优先级切换探索、战斗、对话相机;通过 CinemachineBrain 设置混合时长与混合样式,包括 Cut 硬切与 EaseInOut 平滑过渡。 四、状态驱动相机:使用 CinemachineStateDrivenCamera 绑定 Animator,触发动画状态时自动切换相机;也可按游戏状态手动切换优先级。 五、相机震动:用 CinemachineImpulseSource 配合 CinemachineImpulseDefinition 做一次性冲击震动,支持轻/重震动、按速度或方向施加;用 CinemachineBasicMultiChannelPerlin 做持续噪声震动,可调振幅与频率。 六、目标组:通过 CinemachineTargetGroup 添加、移除、修改成员权重与半径,实现多目标取景,例如战斗中同时取景玩家与敌人。 七、视野:动态修改虚拟相机 Lens 的 FieldOfView,实现冲刺、瞄准等 FOV 过渡。 八、轨道相机:结合 CinemachineDollyCart 与 CinemachineSmoothPath 播放轨道运镜。 九、边界限制:使用 CinemachineConfiner2D 设置 2D 边界碰撞体,并调用 InvalidateCache()。

使用方式:技能以 C# 脚本示例给出,组件引用通常通过 SerializeField 在 Inspector 中赋值,部分组件在 Awake 中缓存。示例依赖 using Cinemachine,部分代码使用 UniTask。

限制与建议:资料未提供具体安装命令、版本要求与收费信息。最佳实践包括:不要直接移动主相机,应使用虚拟相机;用优先级切换相机;一次性震动用 Impulse,持续震动用噪声;在 Awake 中缓存组件引用;相机更新可能开销较大,需做性能分析。常见问题排查:相机不切换检查优先级,移动生硬调整阻尼,震动过强降低振幅增益,混合异常检查 Brain 的自定义混合,目标丢失检查 Follow/LookAt,Confiner 异常调用 InvalidateCache()。