private void OnGUI() { GUILayout.Space(50); GUILayout.BeginHorizontal(); if (GUILayout.Button("Create Grid", GUILayout.ExpandWidth(false))) { CreateGrid(); } if (GUILayout.Button("Clear Grid", GUILayout.ExpandWidth(false))) { ClearGrid(); } GUILayout.EndHorizontal(); GUILayout.Space(50); scriptableGrid = (ScriptableGrid)EditorGUILayout.ObjectField(scriptableGrid, typeof(ScriptableGrid), true, GUILayout.ExpandWidth(false)); GUILayout.BeginHorizontal(); if (GUILayout.Button("Get Neighbors", GUILayout.ExpandWidth(false))) { GetNeighbors(); } GUILayout.EndHorizontal(); nPos = EditorGUILayout.Vector2Field("Position", nPos, GUILayout.ExpandWidth(false)); GUILayout.BeginHorizontal(); dims = EditorGUILayout.Vector2Field("Grid Dimensions", dims, GUILayout.ExpandWidth(false)); GUILayout.EndHorizontal(); }
private void OnDrawGizmos() { bool isHit = false; Event e = Event.current; Ray ray = HandleUtility.GUIPointToWorldRay(e.mousePosition); grid = GameVariable.Instance.scriptableGrid; GUIStyle style = new GUIStyle(); style.normal.textColor = Color.red; RaycastHit hit; if (Physics.Raycast(ray, out hit)) { int bob = (int)hit.point.x + (int)hit.point.z * grid.gridSize.x; if (e.shift) { if (!grid.indexNoWalkable.Contains(bob)) { grid.indexNoWalkable.Add(bob); } } if (e.control) { if (grid.indexNoWalkable.Contains(bob)) { grid.indexNoWalkable.Remove(bob); } } } /*if (e.shift) * { * Debug.Log("mousefckDown"); * }*/ for (int i = 0; i < grid.gridSize.x; i++) { for (int j = 0; j < grid.gridSize.y; j++) { if (grid.indexNoWalkable.Contains(i + j * grid.gridSize.x)) { Gizmos.color = Color.red; } else { Gizmos.color = Color.white; } //Gizmos.DrawCube(new Vector3(((grid.nodeSize.x / 2f) * i) + (grid.nodeSize.x / 2f),0 ,(j * (grid.nodeSize.z / 2f)) + (grid.nodeSize.z / 2f)),new Vector3(grid.nodeSize.x, grid.nodeSize.y, grid.nodeSize.z)); Gizmos.DrawCube(new Vector3(i, 0, j), new Vector3(grid.nodeSize.x, grid.nodeSize.y, grid.nodeSize.z)); //Handles.Label(new Vector3(i,1,j), (i + j * grid.gridSize.x).ToString(), style); } } }
protected void Start() { scriptableGrid = GameVariable.Instance.scriptableGrid; isWalkable = new bool[scriptableGrid.gridSize.x * scriptableGrid.gridSize.y]; for (int i = 0; i < scriptableGrid.gridSize.x; i++) { for (int j = 0; j < scriptableGrid.gridSize.y; j++) { isWalkable[i + j * scriptableGrid.gridSize.x] = true; } } }
public void CreateGrid() { ClearGrid(); scriptableGrid = (ScriptableGrid)CreateInstance(typeof(ScriptableGrid)); }
void Start() { grid = GameVariable.Instance.scriptableGrid; }