예제 #1
0
    private NativeArray <PathNode> GetPathNodeArray()
    {
        TileGrid <GridNode> grid = DefaultNamespace.SetupPathFindingGrid.Instance.Grid;

        int2 gridSize = new int2(grid.GetWidth(), grid.GetHeight());
        // Debug.Log($"GridSize {gridSize}");
        NativeArray <PathNode> pathNodeArray =
            new NativeArray <PathNode>(gridSize.x * gridSize.y, Allocator.TempJob);

        for (int x = 0; x < gridSize.x; x++)
        {
            for (int y = 0; y < gridSize.y; y++)
            {
                var pathNode = new PathNode
                {
                    X                 = x,
                    Y                 = y,
                    Index             = CalculateIndex(x, y, gridSize.x),
                    GCost             = int.MaxValue,
                    IsWalkable        = grid.GetValue(x, y).IsWalkable(),
                    CameFromNodeIndex = -1
                };


                pathNodeArray[pathNode.Index] = pathNode;
            }
        }

        return(pathNodeArray);
    }
예제 #2
0
 private void UpdateVisual()
 {
     MeshUtils.CreateEmptyMeshArrays(_grid.GetWidth() * _grid.GetHeight(), out Vector3[] vertices,
                                     out Vector2[] uv, out int[] triangles);