using System; using System.Collections.Generic; using DragonSoul.Shared; using Mono.Event; using Sirenix.OdinInspector; using UnityEngine; namespace UnityTest.ZXL { public class RePlacementUI : UI { [SerializeField] private List _dragItems = new List(); private ETTask _task; public override void OnInit() { base.OnInit(); EventManager.Instance.Subscribe(RePlacementEventArgs.EventId, RePlacementEvent); } private void OnDestroy() { EventManager.Instance.Unsubscribe(RePlacementEventArgs.EventId, RePlacementEvent); } 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) { Debug.Log("换装完成了"); _task.SetResult(true); _task = null; } } #if UNITY_EDITOR [Button] void Add() { this._dragItems.Clear(); var list = gameObject.GetComponentAllChild(); this._dragItems = list; } #endif } }