コード例 #1
0
    private SkillEffectView _GetEffectView(SkillEffectViewType type)
    {
        if (_skillEffectPool.ContainsKey(type))
        {
            var queue = _skillEffectPool[type];
            if (queue == null)
            {
                queue = new Queue <SkillEffectView>();
            }

            if (queue.Count > 0)
            {
                return(queue.Dequeue());
            }
            else
            {
                var oriView = _GetOriSkillEffectView(type);
                var obj     = Instantiate(oriView.gameObject);
                var newView = obj.GetComponent <SkillEffectView>();
                oriView.CopyTo(newView);
                return(newView);
            }
        }
        else
        {
            var queue = new Queue <SkillEffectView>();
            _skillEffectPool.Add(type, queue);
            var oriView = _GetOriSkillEffectView(type);
            var obj     = Instantiate(oriView.gameObject);
            var newView = obj.GetComponent <SkillEffectView>();
            oriView.CopyTo(newView);
            return(newView);
        }
    }
コード例 #2
0
 public void Init(SkillEffectViewType type, Transform transform, Action <SkillEffectView> disableAction,
                  bool isOverTime = false, bool ballistic = false)
 {
     Type             = type;
     _defaultRoot     = transform;
     _onDisableAction = disableAction;
     Ballistic        = ballistic;
     _isOverTime      = isOverTime;
     if (isOverTime)
     {
         _parallelCor = new ParallelCoroutines();
     }
 }
コード例 #3
0
    private SkillEffectView _GetOriSkillEffectView(SkillEffectViewType type)
    {
        switch (type)
        {
        case SkillEffectViewType.FireBall:
            return(_fireBall);

        case SkillEffectViewType.FireBallExplosion:
            return(_fireBallExplosion);

        case SkillEffectViewType.GeneralHit:
            return(_hit);

        case SkillEffectViewType.IceExplosion:
            return(_iceExplosion);

        case SkillEffectViewType.MagicAura:
            return(_magicAura);
        }
        return(null);
    }