2.6 KiB
2.6 KiB
CameraModule 接入说明
基于 Cinemachine 2.x 的可复用相机插件,提供跟随缓动、移动方向偏移等基础效果,支持开关控制。
导入步骤
- 将
Assets/Plugins/CameraModule/整个目录导入目标项目 - 确保目标项目已安装
com.unity.cinemachine2.x(通过 Package Manager 或 manifest.json 添加) - 导入后基座项目仍可正常编译和运行——CameraModule 的 asmdef 独立于基座程序集
程序集结构
SepCore.CameraModule.Base ← 接口与数据类型(无 Cinemachine 依赖)
SepCore.CameraModule ← Cinemachine 实现(依赖 Cinemachine 2.x)
SepCore.CameraModule.Base引用UnityGameFramework.Runtime和SepCore.BaseSepCore.CameraModule额外引用Cinemachine和SepCore.CameraModule.Base- 移除 CameraModule 后,基座程序集不受任何影响
场景挂载要求
- 在场景主相机上添加
CinemachineBrain组件(如果还没有) - 在主相机上添加
CinemachineCameraController组件 - 控制器会自动创建
CinemachineVirtualCamera子对象
API 初始化方式
using SepCore.CameraModule;
// 获取控制器引用(通常通过 Inspector 拖拽或 GetComponent)
var controller = GetComponent<CinemachineCameraController>();
// 设置跟随目标
controller.SetTarget(targetTransform);
// 调整效果参数
var settings = CameraEffectSettings.Default;
settings.dampingX = 2f;
settings.dampingY = 2f;
settings.dampingZ = 2f;
settings.offsetStrength = 3f;
settings.maxOffsetDistance = 5f;
controller.ApplySettings(settings);
// 开关控制
controller.DisableEffect(CameraEffectType.FollowDamping); // 关闭缓动
controller.EnableEffect(CameraEffectType.FollowDamping); // 开启缓动
controller.DisableEffect(CameraEffectType.MovementDirectionOffset); // 关闭方向偏移
CameraEffectSettings 参数说明
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
dampingX/Y/Z |
float | 1.0 | 跟随阻尼,值越大响应越慢。设为 0 则无缓动 |
offsetStrength |
float | 2.0 | 移动方向偏移强度系数 |
maxOffsetDistance |
float | 3.0 | 最大偏移距离(世界单位) |
offsetSmoothing |
float | 5.0 | 偏移平滑速度 |
offsetDeadZone |
float | 0.1 | 速度低于此值时不产生偏移 |
效果开关
通过 EnableEffect / DisableEffect 控制:
CameraEffectType.FollowDamping— 跟随缓动。关闭后 damping 设为 0,相机即时跟随CameraEffectType.MovementDirectionOffset— 移动方向偏移。关闭后 FollowOffset 平滑回归基础值