private void OnFlyTextEvent(GameEvent ge, EventParameter parameter) { GameObject owner = parameter.goParameter; FlyTextType ftype = (FlyTextType)parameter.intParameter; int value = parameter.intParameter1; int isGood = parameter.intParameter2; string txt = string.Empty; if (ftype == FlyTextType.Crit) { if (0 == value) { return; } txt = string.Format("暴击 {0}", value); } else if (ftype == FlyTextType.Buff) { txt = (string)parameter.objParameter; } else if (ftype == FlyTextType.MonsterNormal) { if (0 == value) { return; } txt = string.Format("{0}", value); } else if (ftype == FlyTextType.PlayerNormal) { if (0 == value) { return; } txt = string.Format("{0}", value); } else if (ftype == FlyTextType.AddHP) { if (0 == value) { return; } txt = string.Format("+{0}", -value); } else if (ftype == FlyTextType.Special) { txt = (string)parameter.objParameter; } ShowText(owner, txt, ftype, isGood); }
public void Init(GameObject owner, string text, FlyTextType type, int isGood) { FlyType = type; ShowText.text = text; mOwner = owner; Inverse = false; InitBindPosition(); GetRandomPosition(); }
private void AddProcessInfo(bool isPlayer, GameObject owner, string text, FlyTextType type, int isGood = 0) { FlyTextInfo info = new FlyTextInfo(); info.owner = owner; info.text = text; info.flyType = type; info.isGood = isGood; if (isPlayer) { //ShowText(info.owner, info.text, info.flyType, info.isGood); mPlayerInfo.Enqueue(info); } else { ShowText(info.owner, info.text, info.flyType, info.isGood); //mProcessInfo.Enqueue(info); } }
private void ShowText(GameObject owner, string text, FlyTextType type, int isGood = 0) { Transform parent = FlyTextRoot; if (null == parent) { return; } string path = m_FlyTextPath[type]; List <FlyText> activeList = m_FlyTextList[(int)type]; List <FlyText> cacheList = m_CachedList[(int)type]; int cachedCnt = cacheList.Count; FlyText ft = null; if (cachedCnt > 0) { ft = cacheList[cachedCnt - 1]; cacheList.RemoveAt(cachedCnt - 1); if (ft != null) { ft.AniStart = Time.realtimeSinceStartup; ft.transform.localPosition = Vector3.zero; //ft.gameObject.SetActive(true); ft.gameObject.transform.SetRenderActive(true); activeList.Add(ft); } } else { GameObject prefab = (GameObject)CoreEntry.gResLoader.Load(path, typeof(GameObject)); if (null == prefab) { return; } GameObject obj = Instantiate(prefab) as GameObject; if (null == obj) { return; } obj.transform.SetParent(parent); obj.transform.localPosition = Vector3.zero; obj.transform.localScale = Vector3.one; obj.SetActive(true); ft = obj.GetComponent <FlyText>(); if (ft != null) { ft.AniStart = Time.realtimeSinceStartup; activeList.Add(ft); } } if (null != ft) { ft.Init(owner, text, type, isGood); } }