34 lines
1010 B
C#
34 lines
1010 B
C#
using UnityEngine;
|
|
|
|
public class GridBuildingSystem : MonoBehaviour
|
|
{
|
|
[SerializeField] private Transform _testTransform;
|
|
private GridXZ<GridObject> _grid;
|
|
private void Awake()
|
|
{
|
|
int gridWidth = 10;
|
|
int gridHeight = 10;
|
|
float cellSize = 10f;
|
|
|
|
_grid = new GridXZ<GridObject>(gridWidth, gridHeight, cellSize, Vector3.zero, (GridXZ<GridObject> 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 !!!");
|
|
}
|
|
}
|
|
}
|
|
}
|