using UnityEngine; namespace Flexalon { /// <summary> Specifies which cell a gameObject should occupy in a grid layout. </summary> [AddComponentMenu("Flexalon/Flexalon Grid Cell"), HelpURL("https://www.flexalon.com/docs/gridLayout")] public class FlexalonGridCell : FlexalonComponent { [SerializeField, Min(0)] private int _column; /// <summary> The column of the cell. </summary> public int Column { get => _column; set { _column = Mathf.Max(0, value); MarkDirty(); } } [SerializeField, Min(0)] private int _row; /// <summary> The row of the cell. </summary> public int Row { get => _row; set { _row = Mathf.Max(0, value); MarkDirty(); } } [SerializeField, Min(0)] private int _layer; /// <summary> The layer of the cell. </summary> public int Layer { get => _layer; set { _layer = Mathf.Max(0, value); MarkDirty(); } } /// <summary> The cell to occupy. </summary> public Vector3Int Cell { get => new Vector3Int(_column, _row, _layer); set { _column = Mathf.Max(0, value.x); _row = Mathf.Max(0, value.y); _layer = Mathf.Max(0, value.z); MarkDirty(); } } } }