Exemple #1
0
        private void SubItem(IUIFrameEffect arg)
        {
            FEItem fei2 = GetItem(arg.ToString());

            if (fei2 != null)
            {
                fei2.Sub();
            }
        }
Exemple #2
0
    /// <summary>
    /// 播放帧特效
    /// </summary>
    /// <param name="arg">帧特效参数</param>
    public IUIFrameEffect Play(UIFrameEffectArgs arg, Vector3 offset = new Vector3())
    {
        IUIFrameEffect effect = Play(arg.EffectID, arg.Parent, offset);

        if (effect == null)
        {
            return(null);
        }
        (effect as UIFrameEffect).IndexEvent = arg.BackDic;
        return(effect);
    }
Exemple #3
0
    /// <summary>
    /// 播放帧特效
    /// </summary>
    /// <param name="effectID">特效 ID</param>
    /// <param name="parent">特效所在的父物体</param>
    public IUIFrameEffect Play(string effectID, Transform parent, Vector3 offset = default(Vector3))
    {
        IUIFrameEffect effect = GetFrameEffect(effectID);

        if (effect == null)
        {
            Debug.LogError("Frame Effect \"" + effectID + "\" is not Exist!");
            return(null);
        }
        counter.Add(effect);
        counter.Destroy += (arg) => { DestroyEffect(arg); };
        effect.SetDestroyEvent((arg) =>
        {
            if (showingList.Contains(arg))
            {
                showingList.Remove(arg);
            }
        });

        effect.SetEndEvent((arg) =>
        {
            arg.gameObject.transform.SetParent(this.parent.transform);
            if (showingList.Contains(arg))
            {
                showingList.Remove(arg);
            }
            if (effectDic.ContainsKey(arg.ToString()))
            {
                effectDic[arg.ToString()].Enqueue(arg);
            }
        });
        effect.gameObject.transform.SetParent(parent);
        effect.gameObject.transform.localEulerAngles = Vector3.zero;
        effect.gameObject.transform.localScale       = Vector3.one;
        effect.gameObject.GetComponent <RectTransform>().anchoredPosition3D = offset;
        (effect as UIFrameEffect).Play();
        showingList.Add(effect);
        return(effect);
    }
Exemple #4
0
        public void Add(IUIFrameEffect effect)
        {
            FEItem fei = GetItem(effect.ToString());

            if (fei == null)
            {
                fei = new FEItem(effect.ToString());
            }
            if (!itemList.Contains(fei))
            {
                itemList.Add(fei);
            }
            fei.Add();
            fei.DestroyName += (arg) =>
            {
                if (Destroy != null)
                {
                    Destroy(arg.ID);
                }
                itemList.Remove(arg);
            };
            effect.SetDestroyEvent(SubItem);
            effect.SetEndEvent(SubItem);
        }