using UnityEngine; using Cinemachine; using AibisDream.FixSystem; using AibisDream.Framework; using System.Collections.Generic; namespace AibisDream.MiniGame.Language { /// /// 销售系统管理器 /// public class SalesManager : MonoBehaviour { [Header("UI配置")] [Tooltip("销售系统主视图对象(会自动查找名为'SaleView'的子对象)")] [SerializeField] private GameObject saleView; [Header("相机配置")] [Tooltip("主销售相机")] [SerializeField] private CameraEnum mainCamera = CameraEnum.SaleCamera; [Tooltip("深度销售相机(可选)")] [SerializeField] private CameraEnum deepCamera = CameraEnum.SaleDeepCamera; private readonly List registeredCameras = new(); private void Start() { RegisterToSystem(); RegisterCameras(); FindSaleView(); } private void OnDestroy() { UnregisterCameras(); } /// /// 查找销售视图(按名字"SaleView") /// private void FindSaleView() { if (saleView == null) { Transform viewTransform = transform.Find("SaleView"); if (viewTransform != null) { saleView = viewTransform.gameObject; Debug.Log("[SalesManager] 找到 SaleView"); } else { Debug.LogWarning("[SalesManager] 未找到名为 'SaleView' 的子对象"); } } // 初始时隐藏视图 if (saleView != null) { saleView.SetActive(false); } } /// /// 注册到系统字典 /// private void RegisterToSystem() { FixSystemCenter.SystemDic.Register(this); } /// /// 注册所有相机到CameraKit /// private void RegisterCameras() { if (CameraKit.Instance == null) { Debug.LogError("[SalesManager] CameraKit.Instance 为 null,无法注册相机!"); return; } // 获取所有相机 var virtualCams = GetComponentsInChildren(); if (virtualCams.Length == 0) { Debug.LogWarning("[SalesManager] 未找到任何 ICinemachineCamera 组件!"); return; } // 注册主相机 if (virtualCams.Length > 0) { CameraKit.Instance.RegisterCamera(mainCamera, virtualCams[0]); registeredCameras.Add(mainCamera); Debug.Log($"[SalesManager] 成功注册主相机: {mainCamera}"); } // 注册深度相机(如果有) if (virtualCams.Length > 1) { CameraKit.Instance.RegisterCamera(deepCamera, virtualCams[1]); registeredCameras.Add(deepCamera); Debug.Log($"[SalesManager] 成功注册深度相机: {deepCamera}"); } } /// /// 从CameraKit注销所有相机 /// private void UnregisterCameras() { if (CameraKit.Instance == null) return; foreach (var cameraType in registeredCameras) { CameraKit.Instance.UnRegisterCamera(cameraType); Debug.Log($"[SalesManager] 已注销相机: {cameraType}"); } registeredCameras.Clear(); } /// /// 打开销售系统界面 /// public void OpenView() { gameObject.SetActive(true); if (saleView != null) { saleView.SetActive(true); Debug.Log("[SalesManager] 销售系统已打开"); } else { Debug.LogError("[SalesManager] SaleView 未找到,无法打开销售界面"); } } /// /// 关闭销售系统界面 /// public void CloseView() { if (saleView != null) { saleView.SetActive(false); } gameObject.SetActive(false); Debug.Log("[SalesManager] 销售系统已关闭"); } /// /// 初始化销售系统 /// public void Initialize() { Debug.Log("[SalesManager] 初始化销售系统"); // 这里添加初始化逻辑 } } }