using Microsoft.Win32; using System.Linq; using UnityEngine; public class RectangleGenerator : ShapeGenerator { #region InspectorVariables [Header("Rectangle values")] [SerializeField] protected float _ab = 1f; [SerializeField] protected float _bc = 1f; public float ab { get { return _ab; } set { _ab = value; GenerateShapeForAll(); } } public float bc { get { return _bc; } set { _bc = value; GenerateShapeForAll(); } } #endregion InspectorVariables #region Implementation public static (Vector3[], int[]) CreateRectangle(float ab, float bc, Vector3 offset, bool invert = false) { Vector3[] edge = GetRectanglePoints(ab, bc); Vector3[] vertices = new Vector3[] { offset } .AppendRange(edge) .Append(edge[0]) .ToArray(); return CreatePlane(vertices, invert); } public static (Vector3[], int[]) CreateRectangle(float ab, float bc, bool invert = false) { return CreateRectangle(ab, bc, Vector3.zero, invert); } protected override (Vector3[] vertices, int[] triangles) GenerateTopology() => CreateRectangle(ab, bc); #endregion Implementation }