摄像机区域的优化

This commit is contained in:
2026-05-17 07:56:12 +08:00
parent f264329751
commit d25f237e76
62 changed files with 25774 additions and 5450 deletions

View File

@@ -6,7 +6,7 @@ namespace BaseGames.World
{
/// <summary>
/// 房间控制器。挂在每个房间场景的 [RoomRoot] 下。
/// Start 时切换摄像机到该房间的 RoomCamera并提供出生点查询。
/// Start 时切换摄像机到该房间的 CameraArea,并提供出生点查询。
/// </summary>
public class RoomController : MonoBehaviour
{
@@ -18,8 +18,25 @@ namespace BaseGames.World
private void Start()
{
if (_cameraArea != null)
ServiceLocator.GetOrDefault<ICameraService>()?.SwitchArea(_cameraArea);
CameraArea area = _cameraArea;
// 未手动绑定时,自动在当前场景中查找(每个房间场景通常只有一个 CameraArea
if (area == null)
{
#if UNITY_6000_0_OR_NEWER
area = Object.FindFirstObjectByType<CameraArea>();
#else
area = Object.FindObjectOfType<CameraArea>();
#endif
if (area != null)
Debug.LogWarning($"[RoomController] {name}_cameraArea 未绑定,自动找到 {area.name}。建议在 Inspector 中手动指定。");
else
Debug.LogError($"[RoomController] {name}:未找到 CameraArea相机不会切换。");
}
if (area != null)
// instantCut = true房间入口传送后相机硬切无混合拖影
ServiceLocator.GetOrDefault<ICameraService>()?.SwitchArea(area, 0, instantCut: true);
}
/// <summary>通过 transitionId 查找对应的出生点。</summary>