using asap.core; using UnityEngine; using UniRx; using System; using GameCore; using UnityEngine.UI; using cfg; using Game; public class HomeTargetBuffPopupPanel : MonoBehaviour { Image icon_buff; IDisposable disposable; private void Awake() { icon_buff = transform.Find("root/icon_buff").GetComponent(); disposable = GContext.OnEvent().Subscribe(GetBuffPosEvent); } void GetBuffPosEvent(GetBuffPosEvent getBuffPosEvent) { getBuffPosEvent.Pos = icon_buff.transform.position; } private void Start() { var targetWeightInit = GContext.container.Resolve().collectingTargetInit; if (targetWeightInit != null) { GContext.container.Resolve().SetImageSprite(icon_buff, targetWeightInit.BuffIcon); } FishBuffTimeData buffData = GContext.container.Resolve().GetBuffData(); if (buffData != null) { FishBuff fishBuff = GContext.container.Resolve().TbFishBuff.GetOrDefault(buffData.buffID); if (fishBuff != null) { GContext.Publish(new EventUISound(fishBuff.Audio)); } } Close(); } async void Close() { await Awaiters.Seconds(2.5f); await Awaiters.NextFrame; UIManager.Instance.DestroyUI(UITypes.HomeTargetBuffPopupPanel); } private void OnDisable() { disposable?.Dispose(); disposable = null; } }