System.Collections.IEnumerator Run(Vector3 origin, Vector3 target, Ability.RangeType range) { switch (range) { case Ability.RangeType.Mortar: case Ability.RangeType.Ray: float t = 0; if (origin != target) { while (t < 1) { this.transform.position = Vector3.Lerp(origin, target, t); t = t + lerpStep; yield return(new WaitForSeconds(timeBetweenFrames)); } } break; default: break; } pd.Play(); Destroy(this.gameObject, (float)pd.duration); }
public void Setup(Vector3 origin, Vector3 target, Ability.RangeType range) { if (range == Ability.RangeType.Ray || range == Ability.RangeType.Mortar) { Duration = Duration + timeBetweenFrames / lerpStep; } StartCoroutine(Run(origin, target, range)); }