Beispiel #1
0
    /**********************************************************************************************/
    // инициализация дефолтного набора эффектов
    //
    /**********************************************************************************************/
    protected virtual void SetEffectsCollection()
    {
        // добавляем всем юнитам эффект урона
        DamageEffect de = new DamageEffect();

        de.ObjectUnderEffect = gameObject;
        m_effectMaster.SetEffect(de.Type, de);

        // для отображения кислотного урона
        DamageEffect ade = new DamageEffect();

        ade.ObjectUnderEffect = gameObject;
        ade.SetAcidType();
        m_effectMaster.SetEffect(ade.Type, ade);

        // эффект нанесения урона кислотой
        AcidEffect ae = new AcidEffect();

        ae.ObjectUnderEffect = gameObject;
        m_effectMaster.SetEffect(ae.Type, ae);

        // эффект замораживания
        FreezeEffect fe = new FreezeEffect();

        fe.ObjectUnderEffect = gameObject;
        m_effectMaster.SetEffect(fe.Type, fe);


        // получаем саб компоненты
        Transform[] allChildren = GetComponentsInChildren <Transform>();
        for (int ind = 0; ind < allChildren.Length; ind++)
        {
            GameObject component = allChildren[ind].gameObject;
            // настраваем FreezeEffect
            if (component.tag == "FreezeEffect")
            {
                Animator freezeEffectAnimator = component.GetComponent <Animator>();
                if (freezeEffectAnimator == null)
                {
                    Debug.Log("ERROR! freezeEffect Animator is NULL!!!");
                    return;
                }

                // вручаем ему аниматор
                fe.EffectAnimator = freezeEffectAnimator;
            }
        }
    }