Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- public class GridManager : MonoBehaviour
- {
- [SerializeField] Vector2Int gridSize; // specifies x width & y height of 2D grid
- [Tooltip("World Grid Size - should match UnityEditror snap settings.")]
- [SerializeField] int unityGridSize = 10;
- public int UnityGridSize { get { return unityGridSize; } }
- Dictionary<Vector2Int, Node> grid = new Dictionary<Vector2Int, Node>();
- public Dictionary<Vector2Int, Node> Grid{get {return grid;}}
- void Awake() {
- {
- CreateGrid();
- }
- }
- public Node GetNode(Vector2Int coordinates)
- {
- if(grid.ContainsKey(coordinates))
- {
- return grid[coordinates];
- }
- return null;
- }
- public void BlockNode(Vector2Int coordinates)
- {
- if(grid.ContainsKey(coordinates))
- {
- grid[coordinates].isWalkable = false;
- }
- }
- public Vector2Int GetCoordinatesFromPosition(Vector3 position)
- {
- Vector2Int coordinates = new Vector2Int();
- coordinates.x = Mathf.RoundToInt(position.x/ unityGridSize);
- coordinates.y = Mathf.RoundToInt(position.z/ unityGridSize );
- return coordinates;
- }
- public Vector3 GetPositionFromCoordinates(Vector2Int coordinates)
- {
- Vector3 position = new Vector3();
- position.x = coordinates.x * unityGridSize;
- position.z = coordinates.y * unityGridSize;
- return position;
- }
- void CreateGrid()
- {
- for(int x = 0; x < gridSize.x; x++)
- {
- for(int y = 0; y < gridSize.y; y++)
- {
- Vector2Int coordinates = new Vector2Int(x,y);
- grid.Add(coordinates, new Node(coordinates, true));
- // Dictionary here; uses a Key and a Description.
- //the value of coords in vect2Int .info contained in value
- // The [coordinates] is the key, and .coordinates + .isWalkable is the information/description.
- // Debug.Log(grid[coordinates].coordinates + " = " + grid[coordinates].isWalkable);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement