public override void Generate()
        {
            pathfinderObject = new GameObject(GraphName);
            pathfinderObject.transform.parent = GraphContainer;
            pathfinderObject.transform.position = GraphPosition;
            pathfinderObject.tag = GraphTag;

            pathfinder = pathfinderObject.AddComponent<Pathfinder>();
            pathfinder.ColorTraversable = ColorTraversable;
            pathfinder.ColorOutOfReach = ColorOutOfReach;
            pathfinder.ColorNeutral = ColorNeutral;

            pathfindingNodes = new PathfindingNode[GraphWidth, GraphHeight];

            for (int y = 0; y < GraphHeight; y++)
            {
                for (int x = 0; x < GraphWidth; x++)
                {
                    pathfinderNodeObject = GameObject.Instantiate(NodePrefab) as GameObject;
                    pathfindingNode = pathfinderNodeObject.GetComponent<PathfindingNode>();
                    pathfindingNode.SetColor(pathfinder.ColorNeutral);

                    pathfinderNodeObject.name = "(" + x + ", " + y + ") " + NodePrefab.name;
                    pathfinderNodeObject.transform.parent = pathfinderObject.transform;
                    pathfinderNodeObject.transform.position = new Vector3(x, y, 0);

                    pathfindingNodes[x, y] = pathfindingNode;
                }
            }

            pathfinder.SetNodes(pathfindingNodes);
        }