public class Projectile_Split : ProjectileBase { public float DamageArea = 0f; public bool ReTarget = false; public override void Set(ProjectileData _data) { _data.DamageArea = DamageArea; if (ReTarget) _data.target = ActorInfo.Ins.Get_Nearest_EnemyActor_orNull(_data.shooter.IsEnemy(), transform.position); if(_data.target == null) { Off(); return; } base.Set(_data); StartCoroutine(Co_Move_Split(() => { if (_data.target == null) { Off(); } else { if (DamageArea > 0f) { var enemies = Get_Enemies(transform, DamageArea); for (int i = 0; i < enemies.Count; i++) enemies[i].Get_Damage(_data.shooter.Get_DamageInfo(_data)); } else _data.target.Get_Damage(_data.shooter.Get_DamageInfo(_data)); Off(); } }, _data.v3_StartPos, _data.target.Get_position(), 1f)); } }