123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220 |
- <?xml version="1.0" encoding="UTF-8" ?>
- <class name="GridMap" inherits="Spatial" version="3.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../doc/class.xsd">
- <brief_description>
- Node for 3D tile-based maps.
- </brief_description>
- <description>
- 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 [MeshLibrary] 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.
- [b]Note:[/b] GridMap doesn't extend [VisualInstance] and therefore can't be hidden or cull masked based on [member VisualInstance.layers]. If you make a light not affect the first layer, the whole GridMap won't be lit by the light in question.
- </description>
- <tutorials>
- <link title="Using gridmaps">$DOCS_URL/tutorials/3d/using_gridmaps.html</link>
- <link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link>
- <link title="3D Kinematic Character Demo">https://godotengine.org/asset-library/asset/126</link>
- </tutorials>
- <methods>
- <method name="clear">
- <return type="void" />
- <description>
- Clear all cells.
- </description>
- </method>
- <method name="clear_baked_meshes">
- <return type="void" />
- <description>
- </description>
- </method>
- <method name="get_bake_mesh_instance">
- <return type="RID" />
- <argument index="0" name="idx" type="int" />
- <description>
- </description>
- </method>
- <method name="get_bake_meshes">
- <return type="Array" />
- <description>
- Returns an array of [ArrayMesh]es and [Transform] references of all bake meshes that exist within the current GridMap.
- </description>
- </method>
- <method name="get_cell_item" qualifiers="const">
- <return type="int" />
- <argument index="0" name="x" type="int" />
- <argument index="1" name="y" type="int" />
- <argument index="2" name="z" type="int" />
- <description>
- The [MeshLibrary] item index located at the grid-based X, Y and Z coordinates. If the cell is empty, [constant INVALID_CELL_ITEM] will be returned.
- </description>
- </method>
- <method name="get_cell_item_orientation" qualifiers="const">
- <return type="int" />
- <argument index="0" name="x" type="int" />
- <argument index="1" name="y" type="int" />
- <argument index="2" name="z" type="int" />
- <description>
- The orientation of the cell at the grid-based X, Y and Z coordinates. -1 is returned if the cell is empty.
- </description>
- </method>
- <method name="get_collision_layer_bit" qualifiers="const">
- <return type="bool" />
- <argument index="0" name="bit" type="int" />
- <description>
- Returns an individual bit on the [member collision_layer].
- </description>
- </method>
- <method name="get_collision_mask_bit" qualifiers="const">
- <return type="bool" />
- <argument index="0" name="bit" type="int" />
- <description>
- Returns an individual bit on the [member collision_mask].
- </description>
- </method>
- <method name="get_meshes" qualifiers="const">
- <return type="Array" />
- <description>
- Returns an array of [Transform] and [Mesh] references corresponding to the non-empty cells in the grid. The transforms are specified in world space.
- </description>
- </method>
- <method name="get_used_cells" qualifiers="const">
- <return type="Array" />
- <description>
- Returns an array of [Vector3] with the non-empty cell coordinates in the grid map.
- </description>
- </method>
- <method name="get_used_cells_by_item" qualifiers="const">
- <return type="Array" />
- <argument index="0" name="item" type="int" />
- <description>
- Returns an array of all cells with the given item index specified in [code]item[/code].
- </description>
- </method>
- <method name="make_baked_meshes">
- <return type="void" />
- <argument index="0" name="gen_lightmap_uv" type="bool" default="false" />
- <argument index="1" name="lightmap_uv_texel_size" type="float" default="0.1" />
- <description>
- </description>
- </method>
- <method name="map_to_world" qualifiers="const">
- <return type="Vector3" />
- <argument index="0" name="x" type="int" />
- <argument index="1" name="y" type="int" />
- <argument index="2" name="z" type="int" />
- <description>
- Returns the position of a grid cell in the GridMap's local coordinate space.
- </description>
- </method>
- <method name="resource_changed">
- <return type="void" />
- <argument index="0" name="resource" type="Resource" />
- <description>
- </description>
- </method>
- <method name="set_cell_item">
- <return type="void" />
- <argument index="0" name="x" type="int" />
- <argument index="1" name="y" type="int" />
- <argument index="2" name="z" type="int" />
- <argument index="3" name="item" type="int" />
- <argument index="4" name="orientation" type="int" default="0" />
- <description>
- Sets the mesh index for the cell referenced by its grid-based X, Y and Z coordinates.
- A negative item index such as [constant INVALID_CELL_ITEM] will clear the cell.
- Optionally, the item's orientation can be passed. For valid orientation values, see [method Basis.get_orthogonal_index].
- </description>
- </method>
- <method name="set_clip">
- <return type="void" />
- <argument index="0" name="enabled" type="bool" />
- <argument index="1" name="clipabove" type="bool" default="true" />
- <argument index="2" name="floor" type="int" default="0" />
- <argument index="3" name="axis" type="int" enum="Vector3.Axis" default="0" />
- <description>
- </description>
- </method>
- <method name="set_collision_layer_bit">
- <return type="void" />
- <argument index="0" name="bit" type="int" />
- <argument index="1" name="value" type="bool" />
- <description>
- Sets an individual bit on the [member collision_layer].
- </description>
- </method>
- <method name="set_collision_mask_bit">
- <return type="void" />
- <argument index="0" name="bit" type="int" />
- <argument index="1" name="value" type="bool" />
- <description>
- Sets an individual bit on the [member collision_mask].
- </description>
- </method>
- <method name="world_to_map" qualifiers="const">
- <return type="Vector3" />
- <argument index="0" name="pos" type="Vector3" />
- <description>
- Returns the coordinates of the grid cell containing the given point.
- [code]pos[/code] should be in the GridMap's local coordinate space.
- </description>
- </method>
- </methods>
- <members>
- <member name="bake_navigation" type="bool" setter="set_bake_navigation" getter="is_baking_navigation" default="false">
- If [code]true[/code], this GridMap uses cell navmesh resources to create navigation regions.
- </member>
- <member name="cell_center_x" type="bool" setter="set_center_x" getter="get_center_x" default="true">
- If [code]true[/code], grid items are centered on the X axis.
- </member>
- <member name="cell_center_y" type="bool" setter="set_center_y" getter="get_center_y" default="true">
- If [code]true[/code], grid items are centered on the Y axis.
- </member>
- <member name="cell_center_z" type="bool" setter="set_center_z" getter="get_center_z" default="true">
- If [code]true[/code], grid items are centered on the Z axis.
- </member>
- <member name="cell_octant_size" type="int" setter="set_octant_size" getter="get_octant_size" default="8">
- The size of each octant measured in number of cells. This applies to all three axis.
- </member>
- <member name="cell_scale" type="float" setter="set_cell_scale" getter="get_cell_scale" default="1.0">
- The scale of the cell items.
- This does not affect the size of the grid cells themselves, only the items in them. This can be used to make cell items overlap their neighbors.
- </member>
- <member name="cell_size" type="Vector3" setter="set_cell_size" getter="get_cell_size" default="Vector3( 2, 2, 2 )">
- The dimensions of the grid's cells.
- This does not affect the size of the meshes. See [member cell_scale].
- </member>
- <member name="collision_layer" type="int" setter="set_collision_layer" getter="get_collision_layer" default="1">
- 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.
- </member>
- <member name="collision_mask" type="int" setter="set_collision_mask" getter="get_collision_mask" default="1">
- The physics layers this GridMap detects collisions in. See [url=$DOCS_URL/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information.
- </member>
- <member name="mesh_library" type="MeshLibrary" setter="set_mesh_library" getter="get_mesh_library">
- The assigned [MeshLibrary].
- </member>
- <member name="navigation_layers" type="int" setter="set_navigation_layers" getter="get_navigation_layers" default="1">
- The navigation layers the GridMap generates its navigation regions in.
- </member>
- <member name="physics_material" type="PhysicsMaterial" setter="set_physics_material" getter="get_physics_material">
- Overrides the default friction and bounce physics properties for the whole [GridMap].
- </member>
- <member name="use_in_baked_light" type="bool" setter="set_use_in_baked_light" getter="get_use_in_baked_light" default="false">
- Controls whether this GridMap will be baked in a [BakedLightmap] or not.
- </member>
- </members>
- <signals>
- <signal name="cell_size_changed">
- <argument index="0" name="cell_size" type="Vector3" />
- <description>
- Emitted when [member cell_size] changes.
- </description>
- </signal>
- </signals>
- <constants>
- <constant name="INVALID_CELL_ITEM" value="-1">
- Invalid cell item that can be used in [method set_cell_item] to clear cells (or represent an empty cell in [method get_cell_item]).
- </constant>
- </constants>
- </class>
|