//禁用飘字节点 public void DisableFloatFontItem(UWarFloatFontItem fontItem) { ActiviteList.Remove(fontItem); UnActiviteList.AddLast(fontItem); fontItem.SetEnable(false); fontItem.Clear(); }
//如果非活动列表里飘字太多,则删一部分,保持在20个 public override void Update() { if (UnActiviteList.Count > 20) { int count = UnActiviteList.Count - 20; for (int i = 0; i < count; i++) { UWarFloatFontItem temp = UnActiviteList.First.Value; UnActiviteList.RemoveFirst(); temp.Clear(); var temp1 = temp.gameObject; ResNode.DestroyRes(ref temp1); } } }
/// <summary> /// 创建飘字 /// </summary>piaozi /// <param name="entry">实体</param> /// <param name="text">飘字内容</param> /// <param name="type">飘字类型</param> /// <returns></returns> public UWarFloatFontItem CreateFloatFont(GameObject entry, String text, WarFloatFontType type) { UWarFloatFontItem tempItem = null; //判断是否需要创建 if (!NeedToCreate(entry)) { return(null); } if (type == WarFloatFontType.Invalid) { return(null); } //先从非活动列表取 if (UnActiviteList.Count > 0) { tempItem = UnActiviteList.First.Value; UnActiviteList.RemoveFirst(); tempItem.ChangeHostEntity(entry); if (!tempItem.ChangeType(type)) { tempItem.SetEnable(false); tempItem.Clear(); UnActiviteList.AddLast(tempItem); return(null); } tempItem.SetText(text); if (tempItem.UpdatePos()) { tempItem.ActivateFont(); ActiviteList.AddLast(tempItem); } else { tempItem.SetEnable(false); tempItem.Clear(); UnActiviteList.AddLast(tempItem); return(null); } } //否则实例化新节点 else { tempItem = CreateNewFont(); if (null == tempItem) { return(null); } RectPosition(tempItem); tempItem.ChangeHostEntity(entry); if (!tempItem.ChangeType(type)) { tempItem.SetEnable(false); tempItem.Clear(); UnActiviteList.AddLast(tempItem); return(null); } tempItem.SetText(text); if (tempItem.UpdatePos()) { tempItem.ActivateFont(); ActiviteList.AddLast(tempItem); } else { tempItem.SetEnable(false); tempItem.Clear(); UnActiviteList.AddLast(tempItem); } } return(tempItem); }