public RaycastHit2D GetResult(out bool hasTarget) { RaycastHit2D[] rays = Physics2D.RaycastAll(laserFirePoint.position, MathQ.QuaternionToDirection(transform.rotation), MaxDistance, layerTarget); lastMaxDistance = MaxDistance; hasTarget = false; RaycastHit2D rayss = new RaycastHit2D(); if (rays == null || rays.Length == 0) { } else { foreach (RaycastHit2D ray in rays) { if (ray.collider.GetComponent <ITakeHit>() != null) { lastMaxDistance = Vector2.Distance(ray.point, laserFirePoint.position); hasTarget = true; rayss = ray; break; } } } if (!showed) { ShowVFXHit(); showed = true; } UpdateVFXHit(); return(rayss); }