using System; using System.Collections.Generic; using UnityEngine; using TcgEngine.Gameplay; using TcgEngine.UI; namespace TcgEngine.Client { /// /// 游戏客户端任务集成,用于将任务系统集成到游戏客户端中 /// public class GameClientTaskIntegration : MonoBehaviour { [Header("所有任务")] public List tasks = new List(); [Header("活跃任务")] public List activeTasks = new List(); [Header("已完成任务")] public List completedTasks = new List(); private GameClient client; private TaskPanel taskPanel; private void Start() { Debug.LogError("------------"+gameObject.name+"-------------------"); // 在游戏客户端启动时初始化任务系统 client = FindFirstObjectByType(); client = GameClient.Get(); Debug.LogError(client.name); if (client != null) { // 玩家连接到游戏服务器时触发任务检查 client.onConnectServer += OnConnectToServer; Debug.LogError(client.onConnectServer + "任务系统初始化成功"); } if (TaskManager.Instance != null) { TaskManager.Instance.refreshTaskUI += OnRefreshTaskPanel; } // 找 UI 面板 taskPanel = GetComponent(); if (taskPanel == null) taskPanel = FindObjectOfType(); } private void OnDestroy() { client.onConnectServer -= OnConnectToServer; TaskManager.Instance.refreshTaskUI -= OnRefreshTaskPanel; } private void OnConnectToServer() { // 玩家登录时检查任务 TaskManager taskManager = TaskManager.Instance; if (taskManager != null) { Debug.LogError("初始化完成"); taskManager.OnPlayerLogin(); taskPanel.ShowTasks(taskManager.GetAllTasks()); } } private void OnRefreshTaskPanel(List tasksList) { TaskManager taskManager = TaskManager.Instance; if (taskManager == null || taskPanel == null) return; tasks = taskManager.GetAllTasks(); activeTasks = taskManager.GetActiveTasks(); completedTasks = taskManager.GetCompletedTasks(); taskPanel.RefreshTasks(activeTasks); } } }