GridMap

    Node for 3D tile-based maps.

    GridMap lets you place meshes on a grid interactively. It works both from the editor and from scripts, which can help you create in-game level editors.

    GridMaps use a which contains a list of tiles. Each tile is a mesh with materials plus optional collision and navigation shapes.

    A GridMap contains a collection of cells. Each grid cell refers to a tile in the MeshLibrary. All cells in the map have the same dimensions.

    Internally, a GridMap is split into a sparse collection of octants for efficient rendering and physics processing. Every octant has the same dimensions and can contain several cells.

    Note: GridMap doesn’t extend and therefore can’t be hidden or cull masked based on VisualInstance.layers. If you make a light not affect the first layer, the whole GridMap won’t be lit by the light in question.

    Tutorials

    Methods

    void

    ( )

    void

    clear_baked_meshes ( )

    get_bake_mesh_instance ( idx )

    Array

    ( )

    int

    ( int x, y, int z ) const

    get_cell_item_orientation ( x, int y, z ) const

    bool

    ( int bit ) const

    get_collision_mask_bit ( bit ) const

    Array

    get_used_cells ( ) const

    get_used_cells_by_item ( item ) const

    void

    make_baked_meshes ( gen_lightmap_uv=false, float lightmap_uv_texel_size=0.1 )

    map_to_world ( x, int y, z ) const

    void

    resource_changed ( resource )

    void

    set_cell_item ( x, int y, z, int item, orientation=0 )

    void

    set_clip ( enabled, bool clipabove=true, floor=0, Vector3.Axis axis=0 )

    void

    set_collision_layer_bit ( bit, bool value )

    void

    ( int bit, value )

    Vector3

    ( Vector3 pos ) const

    • cell_size_changed ( Vector3 cell_size )

    Emitted when changes.

    Constants

    • INVALID_CELL_ITEM = -1 —- Invalid cell item that can be used in to clear cells (or represent an empty cell in get_cell_item).
    • bool bake_navigation

    Default

    false

    Setter

    set_bake_navigation(value)

    Getter

    is_baking_navigation()

    If true, this GridMap uses cell navmesh resources to create navigation regions.


    Default

    true

    Setter

    set_center_x(value)

    Getter

    get_center_x()

    If true, grid items are centered on the X axis.


    • cell_center_y

    Default

    true

    Setter

    set_center_y(value)

    Getter

    get_center_y()

    If true, grid items are centered on the Y axis.


    If , grid items are centered on the Z axis.


    • cell_octant_size

    Default

    8

    Setter

    set_octant_size(value)

    Getter

    get_octant_size()

    The size of each octant measured in number of cells. This applies to all three axis.


    Default

    1.0

    Setter

    set_cell_scale(value)

    Getter

    get_cell_scale()

    The scale of the cell items.


    • cell_size

    Default

    Vector3( 2, 2, 2 )

    Setter

    set_cell_size(value)

    Getter

    get_cell_size()

    The dimensions of the grid’s cells.

    This does not affect the size of the meshes. See cell_scale.


    • collision_layer

    Default

    1

    Setter

    set_collision_layer(value)

    Getter

    get_collision_layer()

    The physics layers this GridMap is in.

    GridMaps act as static bodies, meaning they aren’t affected by gravity or other forces. They only affect other physics bodies that collide with them.


    • int collision_mask

    The physics layers this GridMap detects collisions in. See in the documentation for more information.


    Setter

    set_mesh_library(value)

    Getter

    get_mesh_library()

    The assigned .


    • int navigation_layers

    Default

    1

    Setter

    set_navigation_layers(value)

    Getter

    get_navigation_layers()

    The navigation layers the GridMap generates its navigation regions in.


    • physics_material

    Setter

    set_physics_material(value)

    Getter

    get_physics_material()

    Overrides the default friction and bounce physics properties for the whole GridMap.


    • bool use_in_baked_light

    Default

    false

    Setter

    set_use_in_baked_light(value)

    Getter

    get_use_in_baked_light()

    Controls whether this GridMap will be baked in a or not.

    Method Descriptions

    • void clear ( )

    Clear all cells.


    • void clear_baked_meshes ( )

    • get_bake_mesh_instance ( int idx )

    Returns an array of es and Transform references of all bake meshes that exist within the current GridMap.


    • get_cell_item ( int x, y, int z ) const

    The item index located at the grid-based X, Y and Z coordinates. If the cell is empty, INVALID_CELL_ITEM will be returned.


    • get_cell_item_orientation ( int x, y, int z ) const

    The orientation of the cell at the grid-based X, Y and Z coordinates. -1 is returned if the cell is empty.


    • get_collision_layer_bit ( int bit ) const

    Returns an individual bit on the .


    • bool get_collision_mask_bit ( bit ) const

    Returns an individual bit on the collision_mask.


    • get_meshes ( ) const

    Returns an array of Transform and references corresponding to the non-empty cells in the grid. The transforms are specified in world space.


    • Array get_used_cells ( ) const

    Returns an array of with the non-empty cell coordinates in the grid map.


    • Array get_used_cells_by_item ( item ) const

    Returns an array of all cells with the given item index specified in .


    • void make_baked_meshes ( bool gen_lightmap_uv=false, lightmap_uv_texel_size=0.1 )

    Returns the position of a grid cell in the GridMap’s local coordinate space.


    • void resource_changed ( Resource resource )

    • void set_cell_item ( x, int y, z, int item, orientation=0 )

    Sets the mesh index for the cell referenced by its grid-based X, Y and Z coordinates.

    A negative item index such as INVALID_CELL_ITEM will clear the cell.

    Optionally, the item’s orientation can be passed. For valid orientation values, see .


    • void set_clip ( bool enabled, clipabove=true, int floor=0, Vector3.Axis axis=0 )

    • void set_collision_layer_bit ( bit, bool value )

    Sets an individual bit on the .


    • void set_collision_mask_bit ( int bit, value )

    Sets an individual bit on the collision_mask.


    Returns the coordinates of the grid cell containing the given point.