internal override void OnTrigger() { base.OnTrigger(); List <Entity> listTarget = this.EntityAct.TargetList; foreach (Entity ent in listTarget) { if (ent.ResStatus != ResStatus.OK) { return; } GOEEntityEffectMove effect = this.Entity.AddComponent <GOEEntityEffectMove>(); effect.StartPos = Entity.GetBindPoint(mSenderAttachNode).position; if (ent != null) { effect.EndPos = ent.GetBindPoint(mTargetAttachNode).position; } if (FlyBySpeed) { effect.MaxTime = (ent.Position - Entity.Position).magnitude / mSpeed; } else { effect.MaxTime = mTime; } effect.HeightRatio = HeightRatio; effect.DestructionDelay = mDDelay; effect.EffectName = mEffectName; effect.StartMove(EntityAct.ActSpeed); effects.Add(effect); } }
internal override void OnTrigger() { base.OnTrigger(); effect = this.Entity.AddComponent <GOEEntityEffectMove>(); effect.StartPos = Entity.GetBindPoint(mSenderAttachNode).position; UnityEngine.Vector3 pos = this.EntityAct.TargetPos; if (KeepHeight) { pos.y = effect.StartPos.y; } effect.EndPos = pos; if (FlyBySpeed) { effect.MaxTime = (effect.EndPos - effect.StartPos).magnitude / mSpeed; } else { effect.MaxTime = mTime; } effect.HeightRatio = HeightRatio; effect.DestructionDelay = mDDelay; effect.EffectName = mEffectName; effect.StartMove(EntityAct.ActSpeed); }
internal override void OnDestroy() { base.OnDestroy(); if (effect != null) { effect.OnDestroy(); effect = null; } }
internal override void Restart() { base.Restart(); for (int i = 0; i < effects.Count; i++) { GOEEntityEffectMove effect = effects[i]; effect.Restart(); } }
internal override void Pause() { base.Pause(); for (int i = 0; i < effects.Count; i++) { GOEEntityEffectMove effect = effects[i]; effect.Pause(); } }
internal override void OnDestroy() { base.OnDestroy(); for (int i = 0; i < effects.Count; i++) { GOEEntityEffectMove effect = effects[i]; effect.OnDestroy(); } effects.Clear(); }
internal override void OnTrigger() { base.OnTrigger(); List <Entity> listTarget = this.EntityAct.TargetList; foreach (Entity obj in listTarget) { if (obj != null && obj.ResStatus == ResStatus.OK) { Transform tm = obj.GetBindPoint(mTargetAttachNode); if (tm == null) { continue; } int x = UnityEngine.Random.Range(-100, 100); int z = UnityEngine.Random.Range(-100, 100); if (x == 0 && z == 0) { x = 1; } Vector3 ori = new Vector3(x, 0, z); ori = ori.normalized; Vector3 startPos = tm.position + ori * mDistance; GOEEntityEffectMove move = obj.AddComponent <GOEEntityEffectMove>(); move.EffectName = mEffectName; move.MaxTime = mTime; move.StartPos = startPos; move.EndPos = tm.position; move.StartMove(EntityAct.ActSpeed); effects.Add(move); } } }