|
|
using UnityEngine; |
|
|
|
|
|
public class Grid : MonoBehaviour |
|
|
{ |
|
|
#region Singleton |
|
|
public static Grid instance; |
|
|
private void Awake() |
|
|
{ |
|
|
if (instance == null) |
|
|
instance = this; |
|
|
|
|
|
goalPosition = (Random.Range(1, rows-1), Random.Range(1, columns-1)); |
|
|
Instantiate(goalCube, new Vector3(goalPosition.Item1, 0.5f, goalPosition.Item2), Quaternion.identity); |
|
|
} |
|
|
#endregion |
|
|
|
|
|
public GameObject floorCube; |
|
|
public GameObject goalCube; |
|
|
public int rows = 15; |
|
|
public int columns = 15; |
|
|
private GameObject[,] grid; |
|
|
public WeightDisplay weightDisplay; |
|
|
|
|
|
public (int, int) goalPosition; |
|
|
|
|
|
private void OnDrawGizmosSelected() |
|
|
{ |
|
|
|
|
|
for (int r = 0; r < rows; ++r) |
|
|
{ |
|
|
for (int c = 0; c < columns; ++c) |
|
|
{ |
|
|
Gizmos.color = new Color(0.5f, 0.5f, 0.5f, 0.5f); |
|
|
Vector3 position = new Vector3(c, transform.position.y, r); |
|
|
Gizmos.DrawCube(position, new Vector3(1, 1, 1)); |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
private void Start() |
|
|
{ |
|
|
grid = new GameObject[rows, columns]; |
|
|
|
|
|
|
|
|
for (int c = 0; c < columns; ++c) |
|
|
{ |
|
|
for (int r = 0; r < rows; ++r) |
|
|
{ |
|
|
Vector3 position = new Vector3(r, transform.position.y, c); |
|
|
grid[r, c] = Instantiate(floorCube, position, Quaternion.identity); |
|
|
grid[r, c].GetComponent<FloorCube>().position = (r, c); |
|
|
grid[r, c].GetComponent<FloorCube>().weightDisplay = weightDisplay; |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
public void ClearColors() |
|
|
{ |
|
|
for (int r = 0; r < grid.GetLength(0); ++r) |
|
|
{ |
|
|
for (int c = 0; c < grid.GetLength(1); ++c) |
|
|
{ |
|
|
grid[r, c].GetComponent<FloorCube>().SetFadeScale(0.0f); |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
public void UpdateColor(int x, int y) |
|
|
{ |
|
|
|
|
|
grid[x, y].GetComponent<FloorCube>().SetFadeScale(2.0f); |
|
|
} |
|
|
} |
|
|
|