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.

SpringArm3D

Hérite de : Node3D < Node < Object

Un raycast 3D qui déplace dynamiquement ses enfants près du point de collision.

Description

SpringArm3D projette un rayon ou une forme le long de son axe Z et déplace tous ses enfants directs au point de collision, avec une marge facultative. Ceci est utile pour les caméras à la 3ème personne qui se rapprochent du joueur lorsqu'il se trouve à l'intérieur d'un espace serré (vous pourriez avoir besoin d'exclure le collider du joueur de la vérification de collision du SpringArm3D).

Tutoriels

Propriétés

int

collision_mask

1

float

margin

0.01

Shape3D

shape

float

spring_length

1.0

Méthodes

void

add_excluded_object(RID: RID)

void

clear_excluded_objects()

float

get_hit_length()

bool

remove_excluded_object(RID: RID)


Descriptions des propriétés

int collision_mask = 1 🔗

  • void set_collision_mask(value: int)

  • int get_collision_mask()

The layers against which the collision check will be done. See Collision layers and masks in the documentation for more information.


float margin = 0.01 🔗

  • void set_margin(value: float)

  • float get_margin()

Lorsque la vérification de collision est faite, une longueur candidate pour le SpringArm3D est donnée.

La marge est ensuite soustraite à cette longueur et la translation est appliquée aux objets enfants du SpringArm3D.

Cette marge est utile lorsque le SpringArm3D a un nœud enfant Camera3D : sans la marge, la Camera3D serait placée au point de collision exact, alors qu'avec la marge la Camera3D serait placée près du point de collision.


Shape3D shape 🔗

La Shape3D à utiliser pour le SpringArm3D.

Lorsque la forme est définie, le SpringArm3D projettera la Shape3D sur son axe Z au lieu d'effectuer un raycast.


float spring_length = 1.0 🔗

  • void set_length(value: float)

  • float get_length()

L'étendue maximale du SpringArm3D. Elle est utilisée comme longueur pour le raycast et le shapecast utilisés en interne pour calculer la position désirée pour les nœuds enfants du SpringArm3D.

Pour en savoir plus sur la façon d'effectuer un shapecast ou un raycast, veuillez consulter la documentation de PhysicsDirectSpaceState3D.


Descriptions des méthodes

void add_excluded_object(RID: RID) 🔗

Ajoute l'objet PhysicsBody3D avec le RID donné à la liste des objets PhysicsBody3D exclus de la vérification de collision.


void clear_excluded_objects() 🔗

Vide la liste des objets PhysicsBody3D exclus de la vérification de collision.


float get_hit_length() 🔗

Renvoie la longueur actuelle du bras en ressort.


bool remove_excluded_object(RID: RID) 🔗

Supprime le RID donné de la liste des objets PhysicsBody3D exclus de la vérification de collision.