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...
CollisionObject3D
Hérite de : Node3D < Node < Object
Hérité par : Area3D, PhysicsBody3D
Classe de base abstraite pour les objets physiques 3D.
Description
Classe de base abstraite pour les objets physiques 3D. CollisionObject3D peut contenir tout nombre de Shape3D pour des collisions. Chaque forme doit être attribuée à un propriétaire de forme. Les propriétaires de forme ne sont pas des nœuds et ne figurent pas dans l'éditeur, mais sont accessibles via le code en utilisant les méthodes shape_owner_*.
Attention : Avec une échelle non uniforme, ce nœud ne se comportera probablement pas comme prévu. Il est conseillé de garder la même échelle sur tous les axes et d'ajuster sa ou ses formes de collision à la place.
Propriétés
|
||
|
||
|
||
|
||
|
||
|
Méthodes
Signaux
input_event(camera: Node, event: InputEvent, event_position: Vector3, normal: Vector3, shape_idx: int) 🔗
Émis lorsque l'objet reçoit un InputEvent non traité. event_position est l'emplacement dans les coordonnées globales de la souris sur la surface de la forme à l'index shape_idx, et normal est la normale à la surface en ce point.
mouse_entered() 🔗
Émis lorsque le pointeur de la souris entre dans l'une des formes de cet objet. Nécessite que input_ray_pickable vaille true et au moins qu'un bit de collision_layer soit défini.
Note : En raison de l'absence de détection de collision continue, ce signal peut ne pas être émis dans l'ordre prévu si la souris se déplace assez vite et que la zone du CollisionObject3D est petite. Ce signal peut aussi ne pas être émis si un autre CollisionObject3D chevauche le CollisionObject3D en question.
mouse_exited() 🔗
Émis lorsque le pointeur de la souris sort de toutes les formes de cet objet. Nécessite que input_ray_pickable vaille true et au moins qu'un bit de collision_layer soit défini.
Note : En raison de l'absence de détection de collision continue, ce signal peut ne pas être émis dans l'ordre prévu si la souris se déplace assez vite et que la zone du CollisionObject3D est petite. Ce signal peut aussi ne pas être émis si un autre CollisionObject3D chevauche le CollisionObject3D en question.
Énumérations
enum DisableMode: 🔗
DisableMode DISABLE_MODE_REMOVE = 0
Quand Node.process_mode est défini à Node.PROCESS_MODE_DISABLED, le retirer de la simulation physique pour arrêter toutes les interactions physiques avec ce CollisionObject3D.
Ré-ajouté automatiquement à la simulation physique lorsque le Node est de nouveau traité.
DisableMode DISABLE_MODE_MAKE_STATIC = 1
Quand Node.process_mode est défini à Node.PROCESS_MODE_DISABLED, rend le corps statique. N'affecte pas Area3D. PhysicsBody3D ne peut être affecté par des forces ou d'autres corps alors qu'il est statique.
Définit automatiquement PhysicsBody3D à son mode d'origine lorsque le Node est de nouveau traité.
DisableMode DISABLE_MODE_KEEP_ACTIVE = 2
Quand Node.process_mode est défini à Node.PROCESS_MODE_DISABLED, ne pas affecter la simulation physique.
Descriptions des propriétés
Les couche physiques où se trouve ce CollisionObject3D. Les objets de collision peuvent exister dans une ou plusieurs des 32 couches existantes. Voir aussi collision_mask.
Note : Un objet A peut détecter un contact avec un object B seulement si l'objet A est dans l'une des couches que l'objet B observe. Voir Couches et masques de collisions dans la documentation pour plus d'informations.
La couche physique que ce CollisionObject3D observe. Les objets de collision peuvent observer une ou plusieurs des 32 couches existantes. Voir aussi collision_layer.
Note : Un objet A peut détecter un contact avec un object B seulement si l'objet A est dans l'une des couches que l'objet B observe. 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.
DisableMode disable_mode = 0 🔗
void set_disable_mode(value: DisableMode)
DisableMode get_disable_mode()
Définit le comportement physique lorsque Node.process_mode est défini à Node.PROCESS_MODE_DISABLED.
bool input_capture_on_drag = false 🔗
Si true, le CollisionObject3D continuera de recevoir des événements d'entrée quand la souris sera déplacée au-dessus de ses formes.
bool input_ray_pickable = true 🔗
Si true, cet objet peut être sélectionné. Ces objets peuvent détecter l'entrée/la sortie du pointeur de la souris sur eux, et si la souris pointe sur l'objet, signaler par des événements d'entrée. Nécessite au moins un bit de collision_layer d'être réglé.
Descriptions des méthodes
void _input_event(camera: Camera3D, event: InputEvent, event_position: Vector3, normal: Vector3, shape_idx: int) virtual 🔗
Reçoit les InputEvent non traités. event_position est la position dans l'espace global du curseur de la souris sur la surface de la forme avec index shape_idx et normal est le vecteur de normale de la surface à ce point. Connectez-vous au signal input_event pour récupérer facilement ces événements.
Note : _input_event() nécessite input_ray_pickable d'être true et au moins un bit de collision_layer d'actif.
void _mouse_enter() virtual 🔗
Émis lorsque le curseur de la souris entre dans l'une des formes de cet objet. Nécessite que input_ray_pickable vaille true et au moins un des bits de collision_layer d'être défini. Notez que se déplacer entre plusieurs formes d'un unique CollisionObject3D ne causera pas l'appel de cette fonction.
void _mouse_exit() virtual 🔗
Émis lorsque le curseur de la souris sort de toutes les formes de cet objet. Nécessite que input_ray_pickable vaille true et au moins un des bits de collision_layer d'être défini. Notez que se déplacer entre plusieurs formes d'un unique CollisionObject3D ne causera pas l'appel de cette fonction.
int create_shape_owner(owner: Object) 🔗
Crée un nouveau propriétaire de forme pour l'objet donné. Renvoie l’owner_id du nouveau propriétaire pour une prochaine référence.
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 le RID de l'objet.
PackedInt32Array get_shape_owners() 🔗
Renvoie un Array d'identifiants owner_id. Vous pouvez utiliser ces identifiants dans les méthodes prenant owner_id comme argument.
bool is_shape_owner_disabled(owner_id: int) const 🔗
Si true, le propriétaire de forme et ses formes sont désactivés.
void remove_shape_owner(owner_id: int) 🔗
Supprime le propriétaire de forme donné.
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.
int shape_find_owner(shape_index: int) const 🔗
Renvoie le owner_id de la forme spécifiée.
void shape_owner_add_shape(owner_id: int, shape: Shape3D) 🔗
Ajoute un Shape3D au propriétaire de forme.
void shape_owner_clear_shapes(owner_id: int) 🔗
Enlève toutes les formes au propriétaire de forme.
Object shape_owner_get_owner(owner_id: int) const 🔗
Renvoie l'objet parent du propriétaire de forme spécifié.
Shape3D shape_owner_get_shape(owner_id: int, shape_id: int) const 🔗
Renvoie la Shape3D avec l'identifiant donné du propriétaire de forme donné.
int shape_owner_get_shape_count(owner_id: int) const 🔗
Renvoie le nombre de formes que le propriétaire de forme contient.
int shape_owner_get_shape_index(owner_id: int, shape_id: int) const 🔗
Renvoie l'indice de l'enfant du Shape3D avec l'identifiant donné du propriétaire de forme donné.
Transform3D shape_owner_get_transform(owner_id: int) const 🔗
Renvoie la Transform3D du propriétaire de forme.
void shape_owner_remove_shape(owner_id: int, shape_id: int) 🔗
Retire la forme du propriétaire de forme donné.
void shape_owner_set_disabled(owner_id: int, disabled: bool) 🔗
Si true, désactive le propriétaire spécifié de la forme.
void shape_owner_set_transform(owner_id: int, transform: Transform3D) 🔗
Définit la Transform3D du propriétaire de forme donné.