public virtual FlyTextEntity Add(string strText, int targetHeroId) { Debug.Log("AddFlyText" + strText); FlyTextEntity flyTextEntity = null; if (this.m_flyTextList.Last != null && !this.m_flyTextList.Last.Value.Active) { flyTextEntity = this.m_flyTextList.Last.Value; this.m_flyTextList.RemoveLast(); flyTextEntity.Active = true; } else { XUIListItem item = this.m_uiList.AddListItem(); if (item != null) { flyTextEntity = new FlyTextEntity(item, targetHeroId); } else { XLog.Log.Error("Item == null"); } } this.InitFlyText(flyTextEntity, strText, targetHeroId); this.m_flyTextList.AddFirst(flyTextEntity); return(flyTextEntity); }
/// <summary> /// 浮动文字移动更新 /// </summary> public virtual void Update() { float time = Time.time; LinkedListNode <FlyTextEntity> next; for (LinkedListNode <FlyTextEntity> linkedListNode = this.m_flyTextList.First; linkedListNode != null; linkedListNode = next) { next = linkedListNode.Next; if (!linkedListNode.Value.Active) { break; } FlyTextEntity value = linkedListNode.Value; float num = time - value.TimeStart; if (num < this.m_fTotalTime) { this.Translate(ref value, num); } else { linkedListNode.Value.FlyTextItem.SetVisible("Effect_GetEquip", false); if (this.m_flyTextList.Count <= 5) { value.Active = false; this.m_flyTextList.Remove(linkedListNode); this.m_flyTextList.AddLast(value); } else { this.m_uiList.DelItemByIndex(value.FlyTextItem.Index); this.m_flyTextList.Remove(linkedListNode); } } } }
public void AddHpEffect(int hpCahnge, int heroId, EHpEffectType type) { if (hpCahnge != 0) { if (this.m_dicFlyTextManagers.ContainsKey(EFlyTextType.eFlyTextType_Hp)) { string hpString = hpCahnge.ToString(); if (hpCahnge > 0) { hpString = string.Format("+{0}", hpString); } FlyTextEntity flyTextEntity = this.m_dicFlyTextManagers[EFlyTextType.eFlyTextType_Hp].Add(hpString, heroId); if (flyTextEntity != null) { switch (type) { case EHpEffectType.eHpEffectType_Damage: flyTextEntity.FlyTextItem.SetVisible("lb_hpGreen", false); //治疗效果的血量 flyTextEntity.FlyTextItem.SetVisible("lb_hpRed", true); flyTextEntity.FlyTextItem.SetText("lb_hpRed", hpString); break; case EHpEffectType.eHpEffectType_Heal: flyTextEntity.FlyTextItem.SetVisible("lb_hpGreen", true); flyTextEntity.FlyTextItem.SetVisible("lb_hpRed", false); flyTextEntity.FlyTextItem.SetText("lb_hpGreen", hpString); break; } } } } }
public void AddDoubleSystemInfo(string str, Action sure, Action cancel) { if (this.m_dicFlyTextManagers.ContainsKey(EFlyTextType.eFlyTextType_SystemInfo)) { FlyTextEntity flyTextEntity = this.m_dicFlyTextManagers[EFlyTextType.eFlyTextType_SystemInfo].Add(str, 0); if (flyTextEntity != null) { flyTextEntity.FlyTextItem.transform.Find("DoubleSureButton").gameObject.SetActive(true); flyTextEntity.FlyTextItem.transform.Find("DoubleCancelButton").gameObject.SetActive(true); flyTextEntity.FlyTextItem.transform.Find("SingleSureButton").gameObject.SetActive(false); Button doubleSureButton = flyTextEntity.FlyTextItem.GetButton("DoubleSureButton"); doubleSureButton.onClick.RemoveAllListeners(); doubleSureButton.onClick.AddListener(() => { flyTextEntity.Active = false; if (sure != null) { sure(); } }); Button doubleCancelButton = flyTextEntity.FlyTextItem.GetButton("DoubleCancelButton"); doubleCancelButton.onClick.RemoveAllListeners(); doubleCancelButton.onClick.AddListener(() => { flyTextEntity.Active = false; if (cancel != null) { cancel(); } }); flyTextEntity.FlyTextItem.transform.Find("SingleSureButton").gameObject.SetActive(false); } } }
protected override void InitFlyText(FlyTextEntity flyText, string strText, int targetBeast) { base.InitFlyText(flyText, strText, targetBeast); flyText.Label.text = strText; flyText.FlyTextItem.gameObject.SetActive(false); flyText.FlyTextItem.gameObject.SetActive(true); time = flyText.FlyTextItem.GetLabel("lb_leftTime"); }
protected override void Translate(ref FlyTextEntity flyText, float fElapseTime) { if (time != null) { int time1 = (int)(this.m_fTotalTime - fElapseTime); string time2 = string.Format("({0})", time1); time.text = time2.ToString(); } }
/// <summary> /// 添加扣血漂浮界面 /// </summary> /// <param name="nHpChange"></param> /// <param name="unTargetHeroId"></param> /// <param name="eHpEffectType"></param> public void AddHpEffect(int nHpChange, long unTargetBeastId, EnumHpEffectType eHpEffectType) { if (base.Prepared) { if (nHpChange != 0) { if (this.m_dicFlyTextManagers.ContainsKey(enumFlyTextType.eFlyTextType_Hp)) { string hpChange = nHpChange.ToString(); if (nHpChange > 0) { hpChange = string.Format("+{0}", nHpChange); } FlyTextEntity flyTextEntity = this.m_dicFlyTextManagers[enumFlyTextType.eFlyTextType_Hp].Add(hpChange, unTargetBeastId, this.PosZ); if (flyTextEntity != null) { string animation = "Demage2"; switch (eHpEffectType) { case EnumHpEffectType.eHpEffectType_Damage: animation = "Demage2"; flyTextEntity.FlyTextItem.SetVisible("Label_FlyTextGreen", false); //治疗效果的血量 flyTextEntity.FlyTextItem.SetVisible("Label_FlyTextRed_Offset", true); flyTextEntity.FlyTextItem.SetVisible("Label_Hit_Offset", false); flyTextEntity.FlyTextItem.SetVisible("Label_Crit_Offset", false); flyTextEntity.FlyTextItem.SetText("Label_FlyTextRed", hpChange); break; case EnumHpEffectType.eHpEffectType_Crit: animation = "Demage_Crit2"; flyTextEntity.FlyTextItem.SetVisible("Label_FlyTextGreen", false); flyTextEntity.FlyTextItem.SetVisible("Label_FlyTextRed_Offset", false); flyTextEntity.FlyTextItem.SetVisible("Label_Hit_Offset", false); flyTextEntity.FlyTextItem.SetVisible("Label_Crit_Offset", true); flyTextEntity.FlyTextItem.SetText("Label_Crit", hpChange); break; case EnumHpEffectType.eHpEffectType_Heal: animation = "Demage"; flyTextEntity.FlyTextItem.SetVisible("Label_FlyTextGreen", true); flyTextEntity.FlyTextItem.SetVisible("Label_FlyTextRed_Offset", false); flyTextEntity.FlyTextItem.SetVisible("Label_Hit_Offset", false); flyTextEntity.FlyTextItem.SetVisible("Label_Crit_Offset", false); flyTextEntity.FlyTextItem.SetText("Label_FlyTextGreen", hpChange); break; } Animation animation2 = flyTextEntity.FlyTextItem.CachedGameObject.animation; if (animation2 != null) { animation2.Stop(); animation2.Play(animation, PlayMode.StopAll); } } } } } }
protected override void InitFlyText(FlyTextEntity flyText, string strText, long targetBeast) { base.InitFlyText(flyText, strText, targetBeast); flyText.Label.SetText(strText); flyText.FlyTextItem.CachedGameObject.SetActive(false); flyText.FlyTextItem.CachedGameObject.SetActive(true); Animation anim = flyText.FlyTextItem.CachedGameObject.GetComponent <Animation>(); if (anim != null) { anim.Stop(); anim.Play(); } }
/// <summary> /// 初始化浮动文字 /// </summary> /// <param name="flyText"></param> /// <param name="strText"></param> /// <param name="targetBeast"></param> protected virtual void InitFlyText(FlyTextEntity flyText, string strText, long targetBeast) { Beast beast = Singleton <BeastManager> .singleton.GetBeastById(targetBeast); flyText.Label.SetText(strText); flyText.TimeStart = Time.time; flyText.Target = beast; if (beast != null) { Vector3 realPos = beast.RealPos3D; realPos.y += 2.5f; flyText.PosStart = realPos; } }
protected override void Translate(ref FlyTextEntity flyText, float fElapseTime) { base.Translate(ref flyText, fElapseTime); Vector3 movingPos = flyText.Target.MovingPos; movingPos.y += flyText.Target.Height + 1f; Vector3 position = Camera.main.WorldToScreenPoint(movingPos); Vector3 vector = UIManager.singleton.UICamera.ScreenToWorldPoint(position); Vector3 zero = Vector3.zero; zero.x = Mathf.Lerp(flyText.Transform.position.x, vector.x, 1f); zero.y = Mathf.Lerp(flyText.Transform.position.y, vector.y, 1f); flyText.Transform.position = zero; Vector3 localPosition = flyText.Transform.localPosition; flyText.Transform.localPosition = new Vector3(localPosition.x, localPosition.y, flyText.PosZ); }
/// <summary> /// 浮动文字移动更新 /// </summary> public virtual void Update() { float time = Time.time; LinkedListNode <FlyTextEntity> next; for (LinkedListNode <FlyTextEntity> linkedListNode = this.m_flyTextList.First; linkedListNode != null; linkedListNode = next) { next = linkedListNode.Next; //如果是外面手动关闭的话 if (!linkedListNode.Value.Active) { //FlyTextEntity value1 = linkedListNode.Value; //this.m_flyTextList.Remove(linkedListNode); //this.m_flyTextList.AddLast(value1); break; } //如果是无限时间的话 if (this.m_fTotalTime == -1) { continue; } FlyTextEntity value = linkedListNode.Value; float num = time - value.TimeStart; if (num < this.m_fTotalTime) { this.Translate(ref value, num); } else { if (this.m_flyTextList.Count <= 5) { value.Active = false; this.m_flyTextList.Remove(linkedListNode); this.m_flyTextList.AddLast(value); } else { this.m_uiList.DelItemByIndex(value.FlyTextItem.Index); this.m_flyTextList.Remove(linkedListNode); } } } }
protected override void InitFlyText(FlyTextEntity flyText, string strText, long targetBeast) { if (Camera.main != null) { base.InitFlyText(flyText, strText, targetBeast); Beast heroById = Singleton <BeastManager> .singleton.GetBeastById(targetBeast); if (null != heroById) { Vector3 movingPos = heroById.MovingPos; movingPos.y += heroById.Height + 1f; Vector3 position = Camera.main.WorldToScreenPoint(movingPos); Vector3 position2 = UIManager.singleton.UICamera.ScreenToWorldPoint(position); flyText.Transform.position = position2; Vector3 localPosition = flyText.Transform.localPosition; flyText.Transform.localPosition = new Vector3(localPosition.x, localPosition.y, flyText.PosZ); } } }
public override FlyTextEntity Add(string strText, long targetBeastId, float PosZ) { FlyTextEntity flyTextEntity = null; if (this.m_flyTextList.First != null) { flyTextEntity = this.m_flyTextList.First.Value; flyTextEntity.Active = true; } else { IXUIListItem item = this.m_uiList.AddListItem(); if (item != null) { flyTextEntity = new FlyTextEntity(item, targetBeastId); this.m_flyTextList.AddFirst(flyTextEntity); } } this.InitFlyText(flyTextEntity, strText, targetBeastId); return(flyTextEntity); }
/// <summary> /// 初始化浮动文字 /// </summary> /// <param name="flyText"></param> /// <param name="strText"></param> /// <param name="targetHeroId"></param> protected virtual void InitFlyText(FlyTextEntity flyText, string strText, int targetHeroId) { EntityParent hero = null; if (targetHeroId > 0) { hero = PlayerManager.singleton.GetEntity(targetHeroId); } if (flyText.Label != null) { flyText.Label.text = strText; } flyText.TimeStart = Time.time; flyText.Target = hero; if (hero != null) { Vector3 realPos = hero.Transform.position; realPos.y += 2.5f; flyText.PosStart = realPos; } }
protected override void Translate(ref FlyTextEntity flyText, float fElapseTime) { }
protected virtual void Translate(ref FlyTextEntity flyText, float fElapseTime) { }