unity3d
Collisione
Ricerca…
collider
Box Collider
Un Collider primitivo a forma di cuboide.
Proprietà
È Trigger - Se selezionata, la Casella Collider ignorerà la fisica e diventare un trigger Collider
Materiale : un riferimento, se specificato, al materiale fisico di Box Collider
Centro : la posizione centrale di Box Collider nello spazio locale
Dimensione : la dimensione del Box Collider misurata nello spazio locale
Esempio
// Add a Box Collider to the current GameObject.
BoxCollider myBC = BoxCollider)myGameObject.gameObject.AddComponent(typeof(BoxCollider));
// Make the Box Collider into a Trigger Collider.
myBC.isTrigger= true;
// Set the center of the Box Collider to the center of the GameObject.
myBC.center = Vector3.zero;
// Make the Box Collider twice as large.
myBC.size = 2;
Sphere Collider
Un Collider primitivo a forma di sfera.
Proprietà
Trigger : se spuntato, Sphere Collider ignorerà la fisica e diventerà un Trigger Collider
Materiale : un riferimento, se specificato, al materiale fisico di Sphere Collider
Centro : la posizione centrale di The Sphere Collider nello spazio locale
Raggio : il raggio del Collider
Esempio
// Add a Sphere Collider to the current GameObject.
SphereCollider mySC = SphereCollider)myGameObject.gameObject.AddComponent(typeof(SphereCollider));
// Make the Sphere Collider into a Trigger Collider.
mySC.isTrigger= true;
// Set the center of the Sphere Collider to the center of the GameObject.
mySC.center = Vector3.zero;
// Make the Sphere Collider twice as large.
mySC.radius = 2;
Capsule Collider
Due mezze sfere unite da un cilindro.
Proprietà
Trigger : se spuntato, Capsule Collider ignorerà la fisica e diventerà un Trigger Collider
Materiale : un riferimento, se specificato, al materiale fisico del Capsule Collider
Centro : la posizione centrale di Capsule Collider nello spazio locale
Raggio - Il raggio nello spazio locale
Altezza - Altezza totale del Collisore
Direzione : l'asse di orientamento nello spazio locale
Esempio
// Add a Capsule Collider to the current GameObject.
CapsuleCollider myCC = CapsuleCollider)myGameObject.gameObject.AddComponent(typeof(CapsuleCollider));
// Make the Capsule Collider into a Trigger Collider.
myCC.isTrigger= true;
// Set the center of the Capsule Collider to the center of the GameObject.
myCC.center = Vector3.zero;
// Make the Sphere Collider twice as tall.
myCC.height= 2;
// Make the Sphere Collider twice as wide.
myCC.radius= 2;
// Set the axis of lengthwise orientation to the X axis.
myCC.direction = 0;
// Set the axis of lengthwise orientation to the Y axis.
myCC.direction = 1;
// Set the axis of lengthwise orientation to the Y axis.
myCC.direction = 2;
Wheel Collider
Proprietà
Massa : la massa del Wheel Collider
Raggio - Il raggio nello spazio locale
Velocità di smorzamento delle ruote - Valore di smorzamento per il Wheel Collider
Distanza di sospensione - Estensione massima lungo l'asse Y nello spazio locale
Forza la distanza del punto dell'app - Il punto in cui verranno applicate le forze,
Centro : centro del Wheel Collider nello spazio locale
Sospensione Primavera
Spring : la velocità con cui la ruota tenta di tornare alla posizione target
Damper - Un valore maggiore smorza maggiormente la velocità e le sospensioni si muovono più lentamente
Posizione di destinazione : il valore predefinito è 0,5, a 0 la sospensione viene portata a fondo, a 1 è all'estensione completa
Attrito avanti / lateralmente - come si comporta il pneumatico quando si muove in avanti o lateralmente
Esempio
Mesh Collider
Un Collider basato su un Mesh Asset.
Proprietà
Trigger : se spuntato, Box Collider ignorerà la fisica e diventerà un Trigger Collider
Materiale : un riferimento, se specificato, al materiale fisico di Box Collider
Mesh : un riferimento alla mesh su cui è basato il Collider
Convex - I collettori di Convex Mesh sono limitati a 255 poligoni - se abilitato, questo Collider può scontrarsi con altri raccoglitori di mesh
Esempio
Se si applica più di un Collider a un GameObject, viene chiamato Compound Collider.
Wheel Collider
Il collisore all'interno dell'unità è basato sul collettore ruota PhysX di Nvidia e pertanto condivide molte proprietà simili. Tecnicamente l'unità è un programma "senza unità", ma per rendere tutto ha senso, sono necessarie alcune unità standard.
Proprietà di base
- Massa: il peso della ruota in chilogrammi, questo è usato per il momento della ruota e il momento dell'interia quando gira.
- Raggio: in metri, il raggio del collisore.
- Velocità di smorzamento delle ruote - Regola la modalità di risposta "reattiva" delle ruote alla coppia applicata.
- Distanza di sospensione - Distanza percorsa totale in metri che la ruota può percorrere
- Forza la distanza del punto dell'app - dove si trova la forza dalla sospensione applicata al corpo rigido genitore
- Centro: la posizione centrale della ruota
Impostazioni di sospensione
- Spring - Questa è la costante di primavera, K, in Newton / metro nell'equazione:
Forza = costante costante * Distanza
Un buon punto di partenza per questo valore dovrebbe essere la massa totale del tuo veicolo, diviso per il numero di ruote, moltiplicato per un numero compreso tra 50 e 100. Ad esempio, se hai una macchina da 2.000 kg con 4 ruote, allora ogni ruota dovrebbe supporto 500 kg. Moltiplicalo per 75, e la tua costante di primavera dovrebbe essere 37.500 Newton / metro.
- Ammortizzatore - l'equivalente di un ammortizzatore in una macchina. Tassi più alti rendono la suspense "più rigida" e tassi più bassi lo rendono "più morbido" e più probabile che oscilli.
Però non conosco le unità o l'equazione, penso che abbia a che fare con un'equazione di frequenza in fisica.
Impostazioni di attrito lateralmente
La curva di attrito in unità ha un valore di slittamento determinato da quanto la ruota sta scivolando (in m / s) dalla posizione desiderata rispetto alla posizione effettiva.
Extremum Slip - Questa è la quantità massima (in m / s) di una ruota che può scivolare prima di perdere aderenza
Valore estremo: è la quantità massima di attrito che deve essere applicata a una ruota.
I valori di Exrtremum Slip dovrebbero essere compresi tra 0,2 e 2 m / s per le auto più realistiche. 2 m / s è di circa 6 piedi al secondo o 5 miglia orarie, che è un sacco di scivolone. Se ritieni che il tuo veicolo debba avere un valore superiore a 2m / s per lo slittamento, dovresti considerare l'aumento dell'attrito massimo (valore Extremum).
Max Fraction (Extremum Value) è il coefficiente di attrito nell'equazione:
Force of Friction (in newton) = Coefficient of Friction * Downward Force (in newton)
Questo significa che con un coefficiente di 1, si applica l'intera forza dell'auto + sospensione opposta rispetto alla direzione di slittamento. Nelle applicazioni del mondo reale, valori superiori a 1 sono rari, ma non impossibili. Per un pneumatico su asfalto asciutto, i valori tra 0,7 e 0 sono realistici, quindi è preferibile il valore predefinito di 1,0.
Questo valore non dovrebbe realisticamente non superare il 2,5, poiché comincerà a verificarsi uno strano comportamento. Ad esempio, si inizia a girare a destra, ma poiché questo valore è così elevato, viene applicata una grande forza opposta alla propria direzione e si inizia a scivolare nel turno anziché lontano.
Se hai raggiunto il valore massimo di entrambi i valori, dovresti quindi iniziare ad aumentare lo slittamento e il valore dell'asymptote. Asymptote Slip dovrebbe essere compreso tra 0,5 e 2 m / se definisce il coefficiente di attrito per qualsiasi valore di slittamento oltre lo slittamento Asymptote. Se trovi che i tuoi veicoli si comportano bene fino a quando non rompono la trazione, a quel punto si comporta come se fosse su ghiaccio, dovresti aumentare il valore di Asymptote. Se trovi che il tuo veicolo non è in grado di andare alla deriva, dovresti abbassare il valore.
Attrito in avanti
L'attrito anteriore è identico all'attrito laterale, con l'eccezione che questo definisce quanta trazione la ruota ha nella direzione del movimento. Se i valori sono troppo bassi, i veicoli faranno burnouts e semplicemente ruotano le gomme prima di andare avanti, lentamente. Se è troppo alto, il tuo veicolo potrebbe avere la tendenza a provare a fare un wheely, o peggio, flip.
Note aggiuntive
Non aspettarti di essere in grado di creare un clone GTA o altri cloni da corsa semplicemente regolando questi valori. Nella maggior parte dei giochi di guida, questi valori vengono costantemente modificati nella sceneggiatura per diverse velocità, terreni e valori di virata. Inoltre, se si applica una coppia costante ai raccoglitori di ruote quando si preme un tasto, il gioco non si comporterà realisticamente. Nel mondo reale, le auto hanno curve di coppia e trasmissioni per cambiare la coppia applicata alle ruote.
Per ottenere i migliori risultati, è necessario sintonizzare questi valori fino a ottenere un'automobile che risponda abbastanza bene, quindi apportare modifiche alla coppia di ruote, all'angolo di sterzata massimo e ai valori di attrito nella sceneggiatura.
Maggiori informazioni sui carrelli a ruote possono essere trovate nella documentazione di Nvidia: http://docs.nvidia.com/gameworks/content/gameworkslibrary/physx/guide/Manual/Vehicles.html
Trigger Collider
metodi
-
OnTriggerEnter()
-
OnTriggerStay()
-
OnTriggerExit()
È possibile creare un Collider in Trigger per utilizzare i OnTriggerEnter()
, OnTriggerStay()
e OnTriggerExit()
. Un Trigger Collider non reagisce fisicamente alle collisioni, altri GameObject semplicemente lo attraversano. Sono utili per rilevare quando un altro GameObject si trova in una determinata area o no, ad esempio, quando si raccoglie un oggetto, potremmo essere in grado di scorrerlo ma rilevare quando ciò accade.
Trigger Collider Scripting
Esempio
Il metodo seguente è un esempio di un listener di trigger che rileva quando un altro collisore entra nel collisore di un oggetto GameObject (come un giocatore). I metodi di trigger possono essere aggiunti a qualsiasi script assegnato a un GameObject.
void OnTriggerEnter(Collider other)
{
//Check collider for specific properties (Such as tag=item or has component=item)
}