Exemplo n.º 1
0
    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();
    }
Exemplo n.º 2
0
    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;
         }
     }
 }
Exemplo n.º 4
0
 public void CreateGrid()
 {
     ClearGrid();
     scriptableGrid = (ScriptableGrid)CreateInstance(typeof(ScriptableGrid));
 }
Exemplo n.º 5
0
 void Start()
 {
     grid = GameVariable.Instance.scriptableGrid;
 }