Beispiel #1
0
 //禁用飘字节点
 public void DisableFloatFontItem(UWarFloatFontItem fontItem)
 {
     ActiviteList.Remove(fontItem);
     UnActiviteList.AddLast(fontItem);
     fontItem.SetEnable(false);
     fontItem.Clear();
 }
Beispiel #2
0
 //如果非活动列表里飘字太多,则删一部分,保持在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);
         }
     }
 }
Beispiel #3
0
        /// <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);
        }