| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 | 
							- using Common.Utility.CombatEvent;
 
- using Fort23.Core;
 
- using Fort23.UTool;
 
- using UnityEngine;
 
- namespace Fort23.Mono
 
- {
 
-     [UIBinding(prefab = "HeroHpWidget")]
 
-     public partial class HeroHpWidget : UIComponent
 
-     {
 
-         public CombatHeroEntity combatHeroEntity;
 
-         private Transform hpTransform;
 
-         private void Init()
 
-         {
 
-         }
 
-         public override void AddEvent()
 
-         {
 
-         }
 
-         public override void DelEvent()
 
-         {
 
-         }
 
-         public override void AddButtonEvent()
 
-         {
 
-         }
 
-         public override void DormancyObj()
 
-         {
 
-             CombatEventManager.Instance.RemoveEventListener(CombatEventType.HeroHpUpdate, HeroHpUpdateEventData);
 
-             CombatEventManager.Instance.RemoveEventListener(CombatEventType.ClearHeroHp, ClearHeroHp);
 
-             StaticUpdater.Instance.RemoveRenderUpdateCallBack(Update);
 
-             base.DormancyObj();
 
-         }
 
-         private void HeroHpUpdateEventData(IEventData iEventData)
 
-         {
 
-             HeroHpUpdateEventData heroHpUpdateEventData = iEventData as HeroHpUpdateEventData;
 
-             if (heroHpUpdateEventData.combatHeroEntity == combatHeroEntity)
 
-             {
 
-                 UpdateHp();
 
-             }
 
-         }
 
-         private void UpdateHp()
 
-         {
 
-             float v = (combatHeroEntity.CurrCombatHeroInfo.hp.Value * 1f) /
 
-                       combatHeroEntity.MaxCombatHeroInfo.hp.Value;
 
-             v = Mathf.Clamp(v, 0, 1);
 
-             if (v < 0.98f && !transform.gameObject.activeSelf)
 
-             {
 
-                 transform.gameObject.SetActive(true);
 
-             }
 
-             hp.rectTransform.sizeDelta = new Vector2(v * 60, hp.rectTransform.sizeDelta.y);
 
-         }
 
-         private void ClearHeroHp(IEventData iEventData)
 
-         {
 
-             HeroHpUpdateEventData heroHpUpdateEventData = iEventData as HeroHpUpdateEventData;
 
-             if (heroHpUpdateEventData.combatHeroEntity == combatHeroEntity)
 
-             {
 
-                 GObjectPool.Instance.Recycle(this);
 
-             }
 
-         }
 
-         public void Init(CombatHeroEntity combatHeroEntity)
 
-         {
 
-             this.combatHeroEntity = combatHeroEntity;
 
-             CombatEventManager.Instance.AddEventListener(CombatEventType.HeroHpUpdate, HeroHpUpdateEventData);
 
-             CombatEventManager.Instance.AddEventListener(CombatEventType.ClearHeroHp, ClearHeroHp);
 
-             StaticUpdater.Instance.AddRenderUpdateCallBack(Update);
 
-             hpTransform = combatHeroEntity.combatHeroGameObject.hpTransform;
 
-             transform.gameObject.SetActive(false);
 
-             if (combatHeroEntity.IsEnemy)
 
-             {
 
-                 hp.color = new Color(0.56f, 0f, 0f);
 
-             }
 
-             else
 
-             {
 
-                 hp.color = new Color(0.06f, 0.56f, 0.06f);
 
-             }
 
-             UpdateHp();
 
-         }
 
-         private void Update()
 
-         {
 
-             Vector3 worldPos = hpTransform.position;
 
-             Vector3 p = UIManager.Instance.CurrCustomCameraStack.camera.WorldToScreenPoint(worldPos);
 
-             Vector3 p2 = UIManager.Instance.UICamera.ScreenToWorldPoint(p);
 
-             transform.position = p2;
 
-         }
 
-     }
 
- }
 
 
  |