Beispiel #1
0
    private void EnrollMultiEventSkillEffect(DinoEffectController effect)
    {
        string animationName = effect.animationName;
        MultiEventDinoEffectController effectController = effect as MultiEventDinoEffectController;

        if (m_multiEventSkillEffects.ContainsKey(animationName))
        {
            m_multiEventSkillEffects[animationName].AddMultiEventSkillEffect(effectController);
        }
        else
        {
            MultiEventSkillEffect multiEventSkillEffect = new MultiEventSkillEffect();
            multiEventSkillEffect.AddMultiEventSkillEffect(effectController);
            m_multiEventSkillEffects.Add(animationName, multiEventSkillEffect);
        }
    }
Beispiel #2
0
    /// <summary>
    /// 스킬에 관한 이벤트 이펙트
    /// 1. 애니메이션에서 어떠한 이벤트가 발동되면 그에 맞춘 스킬 이펙트를 보여준다.
    /// 2. 애니메이션에서 발동한 이벤트에 대하여 그에 맞춘 피격 이펙트가 있다면 보여준다.
    /// </summary>
    /// <param name="entry"></param>
    /// <param name="e"></param>
    private void HandleAnimationStateEvents(TrackEntry entry, Spine.Event e)
    {
        string animationName = entry.Animation.Name;
        string eventName     = e.Data.Name;

        if (m_normalSkillEffects.ContainsKey(animationName))
        {
            List <DinoEffectController> effects = m_normalSkillEffects[animationName].GetDinoSkillEffects(eventName);
            if (effects != null)
            {
                foreach (DinoEffectController effect in effects)
                {
                    effect.PlayDinoEffect();
                }
            }
        }

        if (m_multiEventSkillEffects.ContainsKey(animationName))
        {
            MultiEventSkillEffect multiEventEffects = m_multiEventSkillEffects[animationName];
            multiEventEffects.PlayMultiEventSkillEffect(eventName);
        }

        if (m_targetTransform == null)
        {
            return;
        }

        if (m_normalTargetDinoEffects.ContainsKey(animationName))
        {
            List <TargetDinoEffectController> effects = m_normalTargetDinoEffects[animationName].GetTargetDinoEffects(eventName);
            if (effects != null)
            {
                foreach (TargetDinoEffectController effect in effects)
                {
                    effect.PlayTargetEffect(m_targetTransform);
                }
            }
        }

        if (m_multiEventTargetDinoEffects.ContainsKey(animationName))
        {
            MultiEventTargetDinoEffects multiEventTargetEffects = m_multiEventTargetDinoEffects[animationName];
            multiEventTargetEffects.PlayMultiEventTargetSkillEffect(eventName, m_targetTransform);
        }
    }