private void PlayImpl(int mask) { if (!bInit) { return; } AllEffectCount++; //if (!bWaitForComplete && !isLoop && DebugMode) //{ // GameUtil.StartCoroutineHelper(this,WaitForComplete()); // bWaitForComplete = true; //} //设备丢失了,不播放 if (Initialize.isDeviceLost) { return; } if (/*DebugMode ||*/ ForceBestQuality) { PlayModlues(BestObj, BestModules, isEnemy, mask); PlayModlues(HighObj, HighModlues, isEnemy, mask); PlayModlues(GoodObj, GoodModlues, isEnemy, mask); PlayModlues(FastestObj, FastestModlues, isEnemy, mask); return; } realyQuality = ImageSetting.GetData().currEffectQuality; //等级无效,不播放 if (realyQuality == EffectQuality.Invalid) { return; } ApplyMask(mask); if (realyQuality == EffectQuality.QUALITY_FASTEST) { PlayModlues(FastestObj, FastestModlues, isEnemy, mask); } else if (realyQuality == EffectQuality.QUALITY_MEDIUM) { PlayModlues(GoodObj, GoodModlues, isEnemy, mask); PlayModlues(FastestObj, FastestModlues, isEnemy, mask); } else if (realyQuality == EffectQuality.QUALITY_GOOD) { PlayModlues(HighObj, HighModlues, isEnemy, mask); PlayModlues(GoodObj, GoodModlues, isEnemy, mask); PlayModlues(FastestObj, FastestModlues, isEnemy, mask); } else if (realyQuality == EffectQuality.QUALITY_BEST) { PlayModlues(BestObj, BestModules, isEnemy, mask); PlayModlues(HighObj, HighModlues, isEnemy, mask); PlayModlues(GoodObj, GoodModlues, isEnemy, mask); PlayModlues(FastestObj, FastestModlues, isEnemy, mask); } }
protected void OnCreate() { if (parent == null)//目标丢失 { return; } this.start = GameTimer.time; duration = host.config.EndTime; if (this.asset is GameObject) { this.gameObject = UnityEngine.Object.Instantiate(this.asset) as GameObject; EffectQuality effectQuality = this.gameObject.GetComponent <EffectQuality>(); if (effectQuality) { effectQuality.Show = true; } DestoryByTime component = this.gameObject.GetComponent <DestoryByTime>(); if (component != null) { duration = component.time; Object.DestroyImmediate(component); } } OnInit(); isdone = true; }
/// <summary> /// 设置特效质量 /// </summary> /// <param name="quality"></param> public static void SetEffectQuality(EffectQuality quality, bool bForce = false) { if (OldEffectQuality == quality && !bForce) { return; } OldEffectQuality = quality; currData.currEffectQuality = quality; Effect.EffectNode.ChangeEffectQualityLevel(); }