void DetectCollision() { hit = detectZone.DetectCollider(transform); if (hit) { GetHitInfo(); if (Data.spawnOnImpact.Length > 0) { DoSpawnOnImpact(); } if (Data.interactFX.Length > 0) { DoInteractFX(hit.gameObject); } Unit unit = hit.GetComponent <Unit>(); if (unit) { DoDamage(unit); } curhitAmount++; if (curhitAmount >= Data.hitMaxAmount) { KillProjectile(); } } lastPos = transform.position; }
void DetectCollision() { if (Data.impactType != ProjectileData.OnImpactType.DetectZone) { return; } var hit = detectZone.DetectCollider(transform, out rayHit); if (hit) { if (!impacted) { OnImpact(hit.gameObject); impacted = true; } } else if (impacted) { impacted = false; } }