Exemplo n.º 1
0
 //禁用飘字节点
 public void DisableFloatFontItem(UWarFloatFontItem fontItem)
 {
     ActiviteList.Remove(fontItem);
     UnActiviteList.AddLast(fontItem);
     fontItem.SetEnable(false);
     fontItem.Clear();
 }
Exemplo n.º 2
0
        //实例化新飘字节点
        private UWarFloatFontItem CreateNewFont()
        {
            if (null == floatFontItemRes)
            {
                return(null);
            }
            GameObject go = floatFontItemRes.InstanceMainRes();

            if (null == go)
            {
                return(null);
            }
            UWarFloatFontItem uFontItem = go.GetComponent <UWarFloatFontItem>();

            if (null == uFontItem)
            {
                return(null);
            }
            else
            {
                uFontItem.SetFloatFontView(this);

                if (m_Anim != null)
                {
                    uFontItem.SetAnimManager(m_Anim);
                }

                return(uFontItem);
            }
        }
Exemplo n.º 3
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);
         }
     }
 }
Exemplo n.º 4
0
 //重置位置,将新实例化出的节点放在飘字窗口下
 private void RectPosition(UWarFloatFontItem fontItem)
 {
     fontItem.GetRectTransform.SetParent(m_Container, false);
     fontItem.GetRectTransform.localScale       = Vector3.one;
     fontItem.GetRectTransform.anchoredPosition = Vector3.zero;
 }
Exemplo n.º 5
0
 //激活飘字节点
 private void EnableFloatFontItem(UWarFloatFontItem fontItem)
 {
     ActiviteList.AddLast(fontItem);
     UnActiviteList.Remove(fontItem);
 }
Exemplo n.º 6
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);
        }