bool IsTargetInRangeTest() { RaycastOrigins raycastOrigins = charDriver.GetRaycastOrigins(); bool isFacingRight = charDriver.IsFacingRight(); RaycastHit2D hit = CheckObjectInArea(raycastOrigins, isFacingRight, offset, targetLayer, range, radius); // May be necessary to check if the target is alive! return(hit.transform != null); }
public static void DisplayAttackAreaCircle(ICharacterDriver driver, float radius, Vector2 offset) { RaycastOrigins raycastOrigins = driver.GetRaycastOrigins(); bool isFacingRight = driver.IsFacingRight(); Vector2 center = ((isFacingRight) ? raycastOrigins.rightCenter : raycastOrigins.leftCenter); // Add offset. center.x += offset.x * ((isFacingRight) ? 1 : -1); center.y += offset.y; // Centralize. center.x += (radius / 2) * ((isFacingRight) ? 1 : -1); Gizmos.DrawWireSphere(center, radius); }
/// <summary> /// Display the attack area. /// </summary> /// <param name="driver">Character's driver.</param> /// <param name="range">Attack range.</param> public static void DisplayAttackArea(ICharacterDriver driver, Vector2 range, Vector2 offset) { RaycastOrigins raycastOrigins = driver.GetRaycastOrigins(); bool isFacingRight = driver.IsFacingRight(); Vector2 center = ((isFacingRight) ? raycastOrigins.rightCenter : raycastOrigins.leftCenter); // Add offset. center.x += offset.x * ((isFacingRight) ? 1 : -1); center.y += offset.y; // Centralize the central point. center.x += (range.x / 2) * ((isFacingRight) ? 1 : -1); Gizmos.DrawWireCube(center, new Vector3(range.x, range.y, 0)); }