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.

VehicleBody3D

Eredita: RigidBody3D < PhysicsBody3D < CollisionObject3D < Node3D < Node < Object

Un corpo fisico 3D che simula il comportamento di un'auto.

Descrizione

Questo corpo fisico implementa tutta la logica fisica necessaria per simulare un'auto. Si basa sul sistema di veicoli con proiezione di raggi comunemente presente nei motori fisici. Oltre a un CollisionShape3D per il corpo principale del veicolo, bisogna anche aggiungere un nodo VehicleWheel3D per ogni ruota. Bisognerebbe anche aggiungere un MeshInstance3D a questo nodo per il modello 3D del veicolo, ma questo modello in genere non dovrebbe includere mesh per le ruote. È possibile controllare il veicolo attraverso le proprietà brake, engine_force e steering. La posizione o l'orientamento di questo nodo non dovrebbero essere modificati direttamente.

Nota: La direzione in avanti locale per questo nodo è Vector3.MODEL_FRONT.

Nota: il punto di origine del VehicleBody3D determinerà il baricentro del veicolo. Per rendere il veicolo più ancorato, il punto di origine è solitamente mantenuto basso, spostando CollisionShape3D e MeshInstance3D verso l'alto.

Nota: Questa classe presenta problemi noti e non è progettata per fornire una fisica realistica dei veicoli 3D. Se desideri una fisica avanzata dei veicoli, potresti dover scrivere la tua integrazione di fisica tramite CharacterBody3D o RigidBody3D.

Tutorial

Proprietà

float

brake

0.0

float

engine_force

0.0

float

mass

40.0 (overrides RigidBody3D)

float

steering

0.0


Descrizioni delle proprietà

float brake = 0.0 🔗

Rallenta il veicolo applicando una forza frenante. Il veicolo rallenta solo se le ruote sono a contatto con una superficie. La forza che devi applicare per rallentare adeguatamente il tuo veicolo dipende dalla RigidBody3D.mass del veicolo. Per un veicolo con una massa impostata su 1000, prova un valore nell'intervallo 25 - 30 per una frenata brusca.


float engine_force = 0.0 🔗

  • void set_engine_force(value: float)

  • float get_engine_force()

Accelera il veicolo applicando una forza motrice. Il veicolo accelera solo se le ruote hanno VehicleWheel3D.use_as_traction impostato su true e sono a contatto con una superficie. Il RigidBody3D.mass del veicolo ha un effetto sull'accelerazione del veicolo. Per un veicolo con una massa impostata su 1000, prova un valore nell'intervallo 25 - 50 per l'accelerazione.

Nota: La simulazione non tiene conto dell'effetto delle marce, dovrai aggiungere logica per questo se desideri simulare le marce.

Un valore negativo provocherà la retromarcia del veicolo.


float steering = 0.0 🔗

  • void set_steering(value: float)

  • float get_steering()

L'angolo di sterzata per il veicolo. Impostando questo valore su un valore diverso da zero, il veicolo sterzerà quando è in movimento. Le ruote che hanno VehicleWheel3D.use_as_steering impostato su true saranno automaticamente ruotate.

Nota: Questa proprietà è modificata nell'ispettore in gradi. Nel codice la proprietà è impostata in radianti.