# CameraModule 接入说明 基于 Cinemachine 2.x 的可复用相机插件,提供跟随缓动、移动方向偏移等基础效果,支持开关控制。 ## 导入步骤 1. 将 `Assets/Plugins/CameraModule/` 整个目录导入目标项目 2. 确保目标项目已安装 `com.unity.cinemachine` 2.x(通过 Package Manager 或 manifest.json 添加) 3. 导入后基座项目仍可正常编译和运行——CameraModule 的 asmdef 独立于基座程序集 ## 程序集结构 ``` SepCore.CameraModule.Base ← 接口与数据类型(无 Cinemachine 依赖) SepCore.CameraModule ← Cinemachine 实现(依赖 Cinemachine 2.x) ``` - `SepCore.CameraModule.Base` 引用 `UnityGameFramework.Runtime` 和 `SepCore.Base` - `SepCore.CameraModule` 额外引用 `Cinemachine` 和 `SepCore.CameraModule.Base` - 移除 CameraModule 后,基座程序集不受任何影响 ## 场景挂载要求 1. 在场景主相机上添加 `CinemachineBrain` 组件(如果还没有) 2. 在主相机上添加 `CinemachineCameraController` 组件 3. 控制器会自动创建 `CinemachineVirtualCamera` 子对象 ## API 初始化方式 ```csharp using SepCore.CameraModule; // 获取控制器引用(通常通过 Inspector 拖拽或 GetComponent) var controller = GetComponent(); // 设置跟随目标 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 平滑回归基础值