示例#1
0
    public virtual void Init()
    {
        BindAnim();//绑定动画事件
        //初始化技能特效
        Dictionary <int, SpecialEffect> effectDic = Util.GetDic <MsgSpecialEffect, SpecialEffect>();

        if (dmgEffectId != 0)
        {
            dmgEffect     = effectDic[dmgEffectId];
            dmgEffectName = Util.GetConfigString(dmgEffect.name);
        }
        if (castEffectId != 0)
        {
            castEffect     = effectDic[castEffectId];
            castEffectName = Util.GetConfigString(castEffect.name);
        }
        if (flyEffectId != 0)
        {
            flyEffect      = Util.GetDic <MsgFlyingEffect, FlyingEffect>()[flyEffectId];
            flyEffectName  = Util.GetConfigString(flyEffect.name);
            flyEffectTrans = mineUnit.GetEffectPoint((EffectPoint)flyEffect.bone);
        }
        if (hitEffectId != 0)
        {
            hitEffect     = effectDic[hitEffectId];
            hitEffectName = Util.GetConfigString(hitEffect.name);
        }
        StartCoroutine(LoadEffect());
    }
示例#2
0
    public virtual IEnumerator DisplayPreEffect()
    {
        if (castEffect != null)
        {
            EffectTarget effectTarget = (EffectTarget)castEffect.target;
            if (effectTarget == EffectTarget.Enemy)
            {
                castEffectTrans = targetUnit.GetEffectPoint((EffectPoint)castEffect.bone);
            }
            else if (effectTarget == EffectTarget.Self)
            {
                castEffectTrans = mineUnit.GetEffectPoint((EffectPoint)castEffect.bone);
            }
            else if (effectTarget == EffectTarget.Screen)
            {
                castEffectTrans = FightEffectManager.instance.transform;
            }
            if (!string.IsNullOrEmpty(castEffectName))
            {
                yield return(StartCoroutine(AssetManager.LoadAsset(castEffectName, AssetManager.AssetType.Effect, false)));

                GameObject obj = AssetManager.GetGameObject(castEffectName, castEffectTrans);
                yield return(StartCoroutine(AssetManager.LoadAsset(castEffectAudioName, AssetManager.AssetType.Audio, false)));

                AudioClip audio = AssetManager.GetAudio(castEffectAudioName);
                obj.AddComponent <AudioSource> ().clip = audio;
                StartCoroutine(WaitAudioDelay(castEffectAudioDelay));
                obj.GetComponent <AudioSource> ().Play();
            }
        }
    }
示例#3
0
    /// <summary>
    /// 展现施法特效
    /// </summary>
    public virtual IEnumerator DisplayPreEffect()
    {
        if (castEffect != null)
        {
            EffectTarget effectTarget = (EffectTarget)castEffect.target;
            if (effectTarget == EffectTarget.Enemy)
            {
                castEffectTrans = targetUnit.GetEffectPoint((EffectPoint)castEffect.bone);
            }
            else if (effectTarget == EffectTarget.Self)
            {
                castEffectTrans = mineUnit.GetEffectPoint((EffectPoint)castEffect.bone);
            }
            else if (effectTarget == EffectTarget.Screen)
            {
                castEffectTrans = FightEffectManager.instance.transform;
            }
            if (!string.IsNullOrEmpty(castEffectName))
            {
                yield return(StartCoroutine(AssetManager.LoadAsset(castEffectName, AssetManager.AssetType.Effect, false)));

                GameObject obj = AssetManager.GetGameObject(castEffectName, castEffectTrans);
            }
        }
    }
示例#4
0
    /// <summary>
    /// 展现魔法特效
    /// </summary>
    public virtual IEnumerator DisplaydmgEffect(FightUnit dmgEffectTarget)
    {
        if (dmgEffect != null && !string.IsNullOrEmpty(dmgEffectName))
        {
            EffectTarget effectTarget   = (EffectTarget)dmgEffect.target;
            Transform    dmgEffectTrans = null;
            Vector3      effectLocalPos = Vector3.zero;
            if (effectTarget == EffectTarget.Screen)
            {
                dmgEffectTrans = FightEffectManager.instance.transform;
            }
            else if (effectTarget == EffectTarget.MineCenter)
            {
                dmgEffectTrans = mineUnit.mTrans.parent;
                effectLocalPos = mineUnit.parentGroup.Center;
            }
            else if (effectTarget == EffectTarget.EnemyCenter)
            {
                dmgEffectTrans = mineUnit.mTrans.parent;
                effectLocalPos = targetUnit.parentGroup.Center;
            }
            else if (dmgEffectTarget != null)
            {
                dmgEffectTrans = dmgEffectTarget.GetEffectPoint((EffectPoint)dmgEffect.bone);
            }

            yield return(StartCoroutine(AssetManager.LoadAsset(dmgEffectName, AssetManager.AssetType.Effect, false)));

            GameObject obj = AssetManager.GetGameObject(dmgEffectName, dmgEffectTrans);
            obj.transform.localPosition = effectLocalPos;
        }
    }
示例#5
0
    /// <summary>
    /// 展现受击特效
    /// </summary>
    public IEnumerator DisplayHitEffect(FightUnit tg, SpecialEffect fx)
    {
        if (fx != null)
        {
            Transform hitEffectTrans = tg.GetEffectPoint((EffectPoint)fx.bone);
            Vector3   pos            = hitEffectTrans.position;
            hitEffectName       = Util.GetConfigString(fx.name);
            hitEffectAudioName  = Util.GetConfigString(fx.audio);
            hitEffectAudioDelay = fx.audioDelay;
            if (!string.IsNullOrEmpty(hitEffectName))
            {
                yield return(StartCoroutine(AssetManager.LoadAsset(hitEffectName, AssetManager.AssetType.Effect, false)));

                yield return(StartCoroutine(AssetManager.LoadAsset(hitEffectAudioName, AssetManager.AssetType.Audio, false)));

                GameObject obj = AssetManager.GetGameObject(hitEffectName);
                obj.transform.parent     = mineUnit.mTrans.parent;
                obj.transform.localScale = Vector3.one;
                obj.transform.position   = pos;
                AudioClip   audio      = AssetManager.GetAsset <AudioClip>(hitEffectAudioName);
                AudioSource audiosouce = obj.AddComponent <AudioSource> ();
                audiosouce.clip = audio;
                StartCoroutine(WaitAudioDelay(hitEffectAudioDelay));
                audiosouce.Play();
            }
        }
    }
示例#6
0
    /// <summary>
    /// 展现受击特效
    /// </summary>
    public virtual IEnumerator DisplayHitEffect(FightUnit tg)
    {
        if (hitEffect != null)
        {
            Transform hitEffectTrans = tg.GetEffectPoint((EffectPoint)hitEffect.bone);
            Vector3   pos            = hitEffectTrans.position;
            if (!string.IsNullOrEmpty(hitEffectName))
            {
                yield return(StartCoroutine(AssetManager.LoadAsset(hitEffectName, AssetManager.AssetType.Effect, false)));

                GameObject obj = AssetManager.GetGameObject(hitEffectName);
                obj.transform.parent     = mineUnit.mTrans.parent;
                obj.transform.localScale = Vector3.one;
                obj.transform.position   = pos;
            }
        }
    }
示例#7
0
文件: Buff.cs 项目: foolishfool/Spine
    IEnumerator DisplayEffect(string effectName, SpecialEffect effectConfig, EffectId id)
    {
        if (!string.IsNullOrEmpty(effectName))
        {
            yield return(StartCoroutine(AssetManager.LoadAsset(effectName, AssetManager.AssetType.Effect, false)));

            GameObject obj = AssetManager.GetGameObject(effectName, target.GetEffectPoint((EffectPoint)effectConfig.bone));
            if (id == EffectId.StartEffect)
            {
                startEffect = obj;
            }
            else if (id == EffectId.ProcessEffect)
            {
                processEffect = obj;
            }
            else if (id == EffectId.EndEffect)
            {
                endEffect = obj;
            }
        }
    }
示例#8
0
    public virtual IEnumerator DisplayHitEffect(FightUnit tg)
    {
        if (hitEffect != null)
        {
            Transform hitEffectTrans = tg.GetEffectPoint((EffectPoint)hitEffect.bone);
            Vector3   pos            = hitEffectTrans.position;
            if (!string.IsNullOrEmpty(hitEffectName))
            {
                yield return(StartCoroutine(AssetManager.LoadAsset(hitEffectName, AssetManager.AssetType.Effect, false)));

                yield return(StartCoroutine(AssetManager.LoadAsset(hitEffectAudioName, AssetManager.AssetType.Audio, false)));

                GameObject obj = AssetManager.GetGameObject(hitEffectName);
                obj.transform.parent     = mineUnit.mTrans.parent;
                obj.transform.localScale = Vector3.one;
                obj.transform.position   = pos;
                AudioClip audio = AssetManager.GetAudio(hitEffectAudioName);
                obj.AddComponent <AudioSource> ().clip = audio;
                StartCoroutine(WaitAudioDelay(hitEffectAudioDelay));
                obj.GetComponent <AudioSource> ().Play();
            }
        }
    }