using UnityEngine; public class GridBuildingSystem : MonoBehaviour { [SerializeField] private Transform _testTransform; private GridXZ _grid; private void Awake() { int gridWidth = 10; int gridHeight = 10; float cellSize = 10f; _grid = new GridXZ(gridWidth, gridHeight, cellSize, Vector3.zero, (GridXZ g, int x, int z) => new GridObject(g, x, z)); } private void Update() { if (Input.GetMouseButtonDown(0)) { _grid.GetXZ(Mouse3d.GetMouseWorldPosition(), out int x, out int z); var gridObject = _grid.GetGridObject(x, z); if (gridObject.CanPlace()) { var transform = Instantiate(_testTransform, _grid.GetWorldPosition(x, z), Quaternion.identity); gridObject.SetTransform(transform); } else { Debug.Log("Can't place item here !!!"); } } } }