public void Init(Vector2 orgPos, Vector2 targetPos, float progressTime) { Vector2 dir = (targetPos - orgPos).normalized; transform.rotation = Quaternion.Euler(new Vector3(0, 0, Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg)); this.StartCoroutine(AnimationUtil.MoveAnimationCoroutine(gameObject, orgPos, targetPos, progressTime)); this.StartCoroutine(AnimationUtil.DespawnAnimationCoroutine(gameObject, progressTime)); }
public IEnumerator SpellCoroutine(Player player, Vector2 position) { if (preEffectPrefab != null) { GameObject preEffect = GameData.field.Spawn(preEffectPrefab, position); CoroutineManager.RegisterCoroutine(AnimationUtil.DespawnAnimationCoroutine(preEffect, preDelay)); } yield return(new WaitForSeconds(preDelay)); List <GameEntity> gameEntityList = GameData.field.FindEnemyGameEntityRadius(position, player.team, radius); for (int i = 0; i < gameEntityList.Count; i++) { gameEntityList[i].HitDamage(damage); } if (damageEffectPrefab != null) { GameObject damageEffect = GameData.field.Spawn(damageEffectPrefab, position); CoroutineManager.RegisterCoroutine(AnimationUtil.DespawnAnimationCoroutine(damageEffect, damageEffectExposureTime)); } }