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()); }
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(); } } }
/// <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); } } }
/// <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; } }
/// <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(); } } }
/// <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; } } }
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; } } }
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(); } } }