using System; using System.Collections.Generic; using DragonSoul.Shared; using Mono.Event; using Sirenix.OdinInspector; using UnityEngine; using UnityEngine.UI; namespace UnityTest.ZXL { public class RePlacementUI : UI { [SerializeField] private List _dragItems = new List(); private ETTask _task; private GameObject finishPanel; private Button btnFinish; public override void OnInit() { base.OnInit(); EventManager.Instance.Subscribe(RePlacementEventArgs.EventId, RePlacementEvent); finishPanel.SetActive(false); btnFinish.onClick.AddListener(ClickClose); } private void OnDestroy() { EventManager.Instance.Unsubscribe(RePlacementEventArgs.EventId, RePlacementEvent); finishPanel.SetActive(false); btnFinish.onClick.RemoveListener(ClickClose); } public void SetAction(ETTask task) { if (task == null) { return; } _task = task; } private void RePlacementEvent(object sender, GameEventArgs e) { var args = e as RePlacementEventArgs; _dragItems.Remove(args.dragItem); if (_dragItems.Count == 0) { finishPanel.SetActive(true); } } void ClickClose() { Debug.Log("换装完成了"); _task.SetResult(true); _task = null; } #if UNITY_EDITOR [Button] void Add() { this._dragItems.Clear(); var list = gameObject.GetComponentAllChild(); this._dragItems = list; } #endif } }