using UnityEngine; namespace BaseGames.Camera { /// /// 相机镜头配置。 /// /// 作为 和各 之间的 /// 单一参数来源: /// - Room 场景的 引用同一 SO,编辑器工具在计算限位多边形 /// 时直接读取,无需依赖 Persistent 场景是否已加载。 /// /// 使用方式: /// 1. Project 窗口右键 → BaseGames/Camera/Lens Config 新建一个 SO 资产。 /// 2. 将该资产同时赋给 CameraStateController._lensConfig 和所有 CameraArea._lensConfig。 /// 3. 修改 后,编辑器会自动重新同步所有已打开场景中的 /// CameraArea 限位多边形。 /// [CreateAssetMenu(menuName = "BaseGames/Camera/Lens Config", fileName = "CameraLensConfig")] public class CameraLensConfigSO : ScriptableObject { [Tooltip("虚拟相机的垂直 FOV(度)。\n" + "修改此値后,编辑器会自动对所有已打开场景中的 CameraArea 重新同步限位多边形。")] [Range(1f, 179f)] public float fieldOfView = 60f; [Tooltip("摄像机到场景平面(Z = 0)的垂直距离(世界单位)。\n" + "与 fieldOfView 共同决定透视相机的视口尺寸,\n" + "用于将可视区域(VisibleBounds)换算为 CinemachineConfiner3D 限位体积。\n" + "推荐与 Persistent 场景中相机 Transform 的 |Z| 保持一致(通常为 10)。\n" + "CameraArea._cameraDepth > 0 时以区域专有值优先覆盖此全局值。")] [Min(0.1f)] public float cameraDepth = 10f; } }