Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
GridMap
Hérite de : Node3D < Node < Object
Nœud pour les cartes à base de tuiles 3D.
Description
GridMap vous permet de placer de manière interactive des maillages sur une grille. Elle fonctionne à la fois à partir de l'éditeur et des scripts, ce qui peut vous aider à créer des éditeurs de niveau en jeu.
Les GridMaps utilisent une MeshLibrary qui contient une liste de tuiles. Chaque tuile est un maillage avec des matériaux, en plus de formes de collision et de navigation en option.
Une GridMap contient une collection de cellules. Chaque cellule de la grille se réfère à une tuile dans la MeshLibrary. Toutes les cellules de la grille ont les mêmes dimensions.
En interne, une GridMap est divisée en une collection d'octants séparés pour traitement du rendu et de la physique efficace. Chaque octant a les mêmes dimensions et peut contenir plusieurs cellules.
Note : GridMap n'étend pas VisualInstance3D et donc de ne pas être cull ou masqué selon VisualInstance3D.layers. Si vous ajoutez une lumière qui n'affecte pas la première couche, la GridMap entière ne sera éclairée la lumière en question.
Tutoriels
Propriétés
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Méthodes
Signaux
cell_size_changed(cell_size: Vector3) 🔗
Émis lorsque cell_size change.
changed() 🔗
Émis lorsque la MeshLibrary de cette GridMap change.
Énumérations
enum DebugVisibilityMode: 🔗
DebugVisibilityMode DEBUG_VISIBILITY_MODE_DEFAULT = 0
Hide the collisions debug shapes in the editor, and use the debug settings to determine their visibility in game (i.e. SceneTree.debug_collisions_hint or SceneTree.debug_navigation_hint).
DebugVisibilityMode DEBUG_VISIBILITY_MODE_FORCE_SHOW = 1
Always show the collisions debug shapes.
DebugVisibilityMode DEBUG_VISIBILITY_MODE_FORCE_HIDE = 2
Always hide the collisions debug shapes.
Constantes
INVALID_CELL_ITEM = -1 🔗
Élément de cellule invalide qui peut être utilisé dans set_cell_item() pour effacer des cellules (ou représenter une cellule vide dans get_cell_item()).
Descriptions des propriétés
If true, this GridMap creates a navigation region for each cell that uses a mesh_library item with a navigation mesh. The created navigation region will use the navigation layers bitmask assigned to the MeshLibrary's item.
Si true, les éléments de la grille sont centrés sur l'axe X.
Si true, les éléments de la grille sont centrés sur l'axe Y.
Si true, les éléments de la grille sont centrés sur l'axe Z.
La taille de chaque octant mesurée en nombre de cellules. Ceci s'applique aux trois axes.
L'échelle des éléments des cellules.
Cela n'affecte pas la taille des cellules du réseau elles-mêmes, seulement les éléments dans celles-ci. Cela peut être utilisé pour faire que des éléments de cellule chevauchent leurs voisins.
Vector3 cell_size = Vector3(2, 2, 2) 🔗
Les dimensions des cellules de la grille.
Cela n'affecte pas la taille des maillages. Voir cell_scale.
La couche physique dans laquelle est cette GridMap.
Les GridMaps agissent comme des corps statiques, ce qui signifie qu'ils ne sont pas affectés par la gravité ou les autres forces. Ils n'affectent que les autres corps physique qui entrent en collision avec eux.
Les couches physiques sur lesquelles ce GridMap détecte les collisions. Voir Couches et masques de collisions dans la documentation pour plus d'informations.
float collision_priority = 1.0 🔗
La priorité utilisée pour résoudre la collision lors de la pénétration. Plus la priorité est élevée, plus la pénétration dans l'objet sera faible. Cela peut par exemple être utilisé pour empêcher le joueur de franchir les limites d'un niveau.
DebugVisibilityMode collision_visibility_mode = 0 🔗
void set_collision_visibility_mode(value: DebugVisibilityMode)
DebugVisibilityMode get_collision_visibility_mode()
Show or hide the GridMap's collision shapes. If set to DEBUG_VISIBILITY_MODE_DEFAULT, this depends on the show collision debug settings.
MeshLibrary mesh_library 🔗
void set_mesh_library(value: MeshLibrary)
MeshLibrary get_mesh_library()
La MeshLibrary assignée.
PhysicsMaterial physics_material 🔗
void set_physics_material(value: PhysicsMaterial)
PhysicsMaterial get_physics_material()
Redéfinit les propriétés physiques par défaut de la friction et du rebondissement pour la GridMap entière.
Descriptions des méthodes
void clear() 🔗
Effacer toutes les cellules.
void clear_baked_meshes() 🔗
Retire tous les maillages pré-calculés. Voir make_baked_meshes().
RID get_bake_mesh_instance(idx: int) 🔗
Renvoie le RID d'un maillage pré-calculé avec l'index idx donné.
Renvoie un tableau de références d'ArrayMeshs et de Transform3Ds de tous les maillages pré-calculés qui existent dans la GridMap actuelle. Les indices pairs contiennent des ArrayMeshs, tandis que les indices impairs contiennent des Transform3D qui sont toujours égaux à Transform3D.IDENTITY.
Cette méthode repose sur la sortie de make_baked_meshes(), qui sera appelée avec gen_lightmap_uv défini à true et lightmap_uv_texel_size défini à 0.1 si elle n'a pas encore été appelée.
Basis get_basis_with_orthogonal_index(index: int) const 🔗
Renvoie une des 24 rotations possibles qui se situent le long des vecteurs (x,y,z) avec chaque composante valant -1, 0, ou 1. Pour plus de détails, consultez le code source de Godot.
int get_cell_item(position: Vector3i) const 🔗
L'indice de l'élément de la MeshLibrary situé aux coordonnées de grille données. Si la cellule est vide, INVALID_CELL_ITEM sera renvoyé.
Basis get_cell_item_basis(position: Vector3i) const 🔗
Renvoie la base qui donne à la cellule spécifiée son orientation.
int get_cell_item_orientation(position: Vector3i) const 🔗
L'orientation de la cellule aux coordonnées de grille données. -1 est renvoyé si la cellule est vide.
bool get_collision_layer_value(layer_number: int) const 🔗
Renvoie si la couche spécifiée du collision_layer est activée, étant donné un numéro de couche layer_number entre 1 et 32.
bool get_collision_mask_value(layer_number: int) const 🔗
Renvoie si la couche spécifiée du collision_mask est activée, étant donné un numéro de couche layer_number entre 1 et 32.
Renvoie un tableau de références Transform3D et Mesh correspondant aux cellules non vides de la grille. Les transformations sont spécifiées dans l'espace local. Les indices pairs contiennent des Transform3Ds, et les indices impairs contiennent les Meshs liés au Transform3D de l'index précédent.
Renvoie le RID de la carte de navigation que ce nœud GridMap utilise pour ses maillages de navigation à base de cellules pré-calculés.
Cette fonction renvoie toujours la carte définie sur le nœud GridMap et non la carte sur le NavigationServer. Si la carte est changée directement avec l'API NavigationServer, le nœud GridMap ne sera pas au courant du changement de carte.
Vector3i get_octant_coords_from_cell_coords(cell_coords: Vector3i) const 🔗
Returns the Vector3i octant coordinates of the octant that the cell at cell_coords belongs to.
Array[Vector3i] get_octants_in_bounds(bounds: AABB) const 🔗
Returns an array of Vector3i octant coordinates that are inside the given bounds, including octants that have no cells in use.
int get_orthogonal_index_from_basis(basis: Basis) const 🔗
Cette fonction considère une discrétisation des rotations en 24 points sur la sphère unité, le long des vecteurs (x,y,z), chaque composante valant soit -1, 0, ou 1, et renvoie l'index (dans un intervalle de 0 à 23) du point représentant le mieux l'orientation de l'objet. Pour plus de détails, consultez le code source de Godot.
Array[Vector3i] get_used_cells() const 🔗
Renvoie un tableau de Vector3 avec les coordonnées des cellules non vides dans la grille.
Array[Vector3i] get_used_cells_by_item(item: int) const 🔗
Renvoie un tableau de toutes les cellules avec l'indice d'élément donné spécifié dans item.
Array[Vector3i] get_used_cells_in_octant(octant_coords: Vector3i) const 🔗
Returns an array of Vector3is with the cell coordinates of non-empty cells inside the octant at octant_coords.
Array[Vector3i] get_used_cells_in_octant_by_item(octant_coords: Vector3i, item: int) const 🔗
Returns an array of Vector3is with the cell coordinates of cells inside the octant at octant_coords that use the specified cell item.
Array[Vector3i] get_used_octants() const 🔗
Returns an array of Vector3is with the octant coordinates of the non-empty octants in the grid map.
Array[Vector3i] get_used_octants_by_item(item: int) const 🔗
Returns an array of Vector3is with the octant coordinates of the octants that use the specified item in the grid map.
Array[Vector3i] get_used_octants_in_bounds(bounds: AABB) const 🔗
Returns an array of Vector3is with the octant coordinates of non-empty octants that are inside the local bounds.
Vector3i local_to_map(local_position: Vector3) const 🔗
Renvoie les coordonnées de la cellule contenant la position locale local_position donnée. Si local_position est dans les coordonnées globales, envisagez d'utiliser Node3D.to_local() avant de la transmettre à cette méthode. Voir aussi map_to_local().
void make_baked_meshes(gen_lightmap_uv: bool = false, lightmap_uv_texel_size: float = 0.1) 🔗
Génère une maillage pré-calculé qui représente tous les maillages dans la MeshLibrary attribuée à utiliser avec LightmapGI. Si gen_lightmap_uv vaut true, les données UV2 seront générées pour chaque maillage actuellement utilisé dans la GridMap. Sinon, seuls les maillages qui ont déjà des données UV2 présentes seront en mesure d'utiliser des lightmaps pré-calculées. Lors de la génération des UV2, lightmap_uv_texel_size contrôle la densité de texel pour les lightmaps, avec les valeurs inférieures résultant en des lightmaps plus détaillées. lightmap_uv_texel_size est ignoré si gen_lightmap_uv vaut false. Voir aussi get_bake_meshes(), qui dépend de la sortie de cette méthode.
Note : Appeler cette méthode ne pré-calcule pas les lightmaps, car le pré-calcul des lightmaps est effectué en utilisant le nœud LightmapGI.
Vector3 map_to_local(map_position: Vector3i) const 🔗
Renvoie la position d'une cellule de la grille dans l'espace de coordonnées local de la GridMap. Pour convertir la valeur renvoyée en coordonnées globales, utilisez Node3D.to_global(). Voir aussi local_to_map().
void resource_changed(resource: Resource) 🔗
Obsolète : Use Resource.changed instead.
Cette méthode ne fait rien.
void set_cell_item(position: Vector3i, item: int, orientation: int = 0) 🔗
Définit l'indice de maillage pour la cellule référencée par ses coordonnées de grille.
Un index négatif comme INVALID_CELL_ITEM effacera la cellule.
En option, l'orientation de l'objet peut être spécifiée. Pour les valeurs d'orientation valides, voir get_orthogonal_index_from_basis().
void set_collision_layer_value(layer_number: int, value: bool) 🔗
Selon value, active ou désactive la couche spécifiée dans le collision_layer, étant donné un numéro de couche layer_number entre 1 et 32.
void set_collision_mask_value(layer_number: int, value: bool) 🔗
Selon value, active ou désactive la couche spécifiée dans le collision_mask, étant donné un numéro de couche layer_number entre 1 et 32.
Sets the RID of the navigation map this GridMap node should use for its cell baked navigation meshes.