FaceoffSpotHelper.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using UnityEngine;
  2. public class FaceoffSpotHelper : MonoBehaviour
  3. {
  4. [Header("Visual Settings")]
  5. [SerializeField] private Color gizmoColor = Color.red;
  6. [SerializeField] private float circleRadius = 1.0f;
  7. void OnDrawGizmos()
  8. {
  9. Gizmos.color = gizmoColor;
  10. // Draw circle on ice
  11. DrawCircle(transform.position, circleRadius, 32);
  12. // Draw cross in center
  13. Gizmos.DrawLine(
  14. transform.position + Vector3.left * circleRadius * 0.3f,
  15. transform.position + Vector3.right * circleRadius * 0.3f
  16. );
  17. Gizmos.DrawLine(
  18. transform.position + Vector3.forward * circleRadius * 0.3f,
  19. transform.position + Vector3.back * circleRadius * 0.3f
  20. );
  21. }
  22. void DrawCircle(Vector3 center, float radius, int segments)
  23. {
  24. float angle = 0f;
  25. Vector3 lastPoint = center + new Vector3(radius, 0, 0);
  26. for (int i = 0; i <= segments; i++)
  27. {
  28. angle = (i / (float)segments) * 360f * Mathf.Deg2Rad;
  29. Vector3 newPoint = center + new Vector3(
  30. Mathf.Cos(angle) * radius,
  31. 0,
  32. Mathf.Sin(angle) * radius
  33. );
  34. Gizmos.DrawLine(lastPoint, newPoint);
  35. lastPoint = newPoint;
  36. }
  37. }
  38. }