unity3d
Botsing
Zoeken…
colliders
Box Collider
Een primitieve Collider in de vorm van een kubus.
Eigendommen
Is trigger - Indien aangevinkt, zal de Box Collider fysica negeren en een Trigger Collider worden
Materiaal - Een verwijzing, indien gespecificeerd, naar het fysische materiaal van de Box Collider
Midden - de centrale positie van de Box Collider in de lokale ruimte
Grootte - De grootte van de Box Collider gemeten in de lokale ruimte
Voorbeeld
// 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
Een primitieve Collider in de vorm van een bol.
Eigendommen
Is trigger - Indien aangevinkt, zal de Sphere Collider fysica negeren en een Trigger Collider worden
Materiaal - Een verwijzing, indien gespecificeerd, naar het fysische materiaal van de Sphere Collider
Midden - de centrale positie van de Sphere Collider in de lokale ruimte
Radius - De straal van de Collider
Voorbeeld
// 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
Twee halve bollen verbonden door een cilinder.
Eigendommen
Is trigger - Indien aangevinkt, zal de Capsule Collider fysica negeren en een Trigger Collider worden
Materiaal - Een verwijzing, indien gespecificeerd, naar het fysische materiaal van de Capsule Collider
Midden - de centrale positie van de Capsule Collider in de lokale ruimte
Radius - De radius in de lokale ruimte
Hoogte - Totale hoogte van de Collider
Richting - de oriëntatie-as in de lokale ruimte
Voorbeeld
// 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
Eigendommen
Massa - De massa van de Wheel Collider
Radius - De radius in de lokale ruimte
Wheel demping rate - Demping waarde voor de Wheel Collider
Ophangafstand - Maximale extensie langs de Y-as in lokale ruimte
Afstand app-punt afdwingen - het punt waarop krachten worden uitgeoefend,
Midden - Midden van de Wheel Collider in de lokale ruimte
Verende veer
Veer - de snelheid waarmee het wiel probeert terug te keren naar de doelpositie
Demper - Een grotere waarde dempt de snelheid meer en de vering beweegt langzamer
Doelpositie - de standaardwaarde is 0,5, bij 0 is de ophanging dieptepunt, bij 1 is deze volledig uitgestrekt
Voorwaartse / zijwaartse wrijving - hoe de band zich gedraagt bij voorwaarts of zijwaarts rollen
Voorbeeld
Mesh Collider
Een Collider op basis van een Mesh Asset.
Eigendommen
Is trigger - Indien aangevinkt, zal de Box Collider fysica negeren en een Trigger Collider worden
Materiaal - Een verwijzing, indien gespecificeerd, naar het fysische materiaal van de Box Collider
Mesh - Een verwijzing naar de mesh waarop de Collider is gebaseerd
Convex - Convexe Mesh colliders zijn beperkt tot 255 polygonen - indien ingeschakeld, kan deze Collider botsen met andere mesh colliders
Voorbeeld
Als je meer dan één Collider op een GameObject toepast, noemen we dit een Compound Collider.
Wheel Collider
De wielbotser in eenheid is gebouwd op Nvidia's PhysX wielbotser en heeft daarom veel vergelijkbare eigenschappen. Technisch gezien is eenheid een "eenheidloos" programma, maar om alles logisch te maken, zijn enkele standaardeenheden vereist.
Basiseigenschappen
- Massa - het gewicht van het wiel in kilogram, dit wordt gebruikt voor wielmomentum en het moment van interia tijdens het draaien.
- Radius - in meters, de straal van de botser.
- Wieldemping - Past aan hoe "responsief" de wielen zijn op het toegepaste koppel.
- Ophangafstand - Totale reisafstand in meters die het wiel kan afleggen
- Force App Point Distance - waar is de kracht van de ophanging die wordt uitgeoefend op de stijve bovenwagen
- Midden - De middenpositie van het wiel
Instellingen opschorting
- Lente - Dit is de veerconstante, K, in Newton / meter in de vergelijking:
Kracht = veerconstante * afstand
Een goed startpunt voor deze waarde moet de totale massa van uw voertuig zijn, gedeeld door het aantal wielen, vermenigvuldigd met een getal tussen 50 en 100. Als u bijvoorbeeld een auto van 2000 kg met 4 wielen hebt, moet elk wiel ondersteuning 500kg. Vermenigvuldig dit met 75, en je veerconstante moet 37.500 Newton / meter zijn.
- Demper - het equivalent van een schokdemper in een auto. Hogere snelheden maken de spanning "stijver" en lagere snelheden maken het "zachter" en meer waarschijnlijk om te oscilleren.
Ik ken de eenheden of vergelijking hiervoor niet, ik denk dat het wel te maken heeft met een frequentievergelijking in de natuurkunde.
Sideways Friction-instellingen
De wrijvingscurve in eenheid heeft een slipwaarde die wordt bepaald door hoeveel het wiel slipt (in m / s) van de gewenste positie versus de werkelijke positie.
Extreme slip - Dit is de maximale hoeveelheid (in m / s) die een wiel kan slippen voordat het grip verliest
Extremumwaarde - Dit is de maximale hoeveelheid wrijving die op een wiel moet worden toegepast.
De waarden voor Exrtremum Slip moeten tussen de .2 en 2m / s liggen voor de meeste realistische auto's. 2 m / s is ongeveer 6 voet per seconde of 5 mph, wat veel slip is. Als u denkt dat uw voertuig een hogere waarde dan 2 m / s moet hebben voor slip, moet u overwegen de maximale wrijving te verhogen (extreme waarde).
Max. Fractie (extreme waarde) is de wrijvingscoëfficiënt in de vergelijking:
Wrijvingskracht (in newton) = Wrijvingscoëfficiënt * Neerwaartse kracht (in newton)
Dit betekent dat u met een coëfficiënt van 1 de volledige kracht van de auto + ophanging tegengesteld aan de sliprichting toepast. In echte toepassingen zijn waarden hoger dan 1 zeldzaam, maar niet onmogelijk. Voor een band op droog asfalt zijn waarden tussen .7 en .9 realistisch, dus de standaardwaarde van 1.0 heeft de voorkeur.
Deze waarde mag realistisch gezien niet hoger zijn dan 2,5, omdat er vreemd gedrag zal optreden. Je begint bijvoorbeeld rechtsaf te slaan, maar omdat deze waarde zo hoog is, wordt een grote kracht tegengesteld aan je richting uitgeoefend en begin je in de bocht te glijden in plaats van weg.
Als u beide waarden hebt gemaximaliseerd, moet u beginnen met het verhogen van de asymptootstrook en -waarde. Asymptote Slip moet tussen 0,5 en 2 m / s liggen en definieert de wrijvingscoëfficiënt voor elke slipwaarde voorbij de Asymptote slip. Als u merkt dat uw voertuigen zich goed gedragen totdat ze tractie verbreken, op welk punt het werkt alsof het op ijs is, moet u de Asymptote-waarde verhogen. Als u merkt dat uw voertuig niet kan driften, moet u de waarde verlagen.
Voorwaartse wrijving
Voorwaartse wrijving is identiek aan zijwaartse wrijving, behalve dat dit bepaalt hoeveel tractie het wiel heeft in de richting van de beweging. Als de waarden te laag zijn, zullen uw voertuigen doorbranden en de banden laten ronddraaien voordat u langzaam verder rijdt. Als het te hoog is, kan uw voertuig de neiging hebben om te proberen een wheely, of erger, om te keren.
extra notities
Verwacht niet dat je een GTA-kloon of andere racekloon kunt maken door deze waarden eenvoudig aan te passen. In de meeste racegames worden deze waarden constant in scripts gewijzigd voor verschillende snelheden, terreinen en draaidoorwaarden. Bovendien, als u alleen een constant koppel op de wielbotsers toepast wanneer een toets wordt ingedrukt, zal uw spel zich niet realistisch gedragen. In de echte wereld hebben auto's koppelcurves en transmissies om het op de wielen toegepaste koppel te veranderen.
Voor de beste resultaten moet u deze waarden afstemmen totdat u een auto krijgt die redelijk goed reageert, en vervolgens wijzigingen aanbrengen in het wielkoppel, de maximale draaihoek en wrijvingswaarden in het script.
Meer informatie over wielbotsers is te vinden in de documentatie van Nvidia: http://docs.nvidia.com/gameworks/content/gameworkslibrary/physx/guide/Manual/Vehicles.html
Trigger Colliders
methoden
-
OnTriggerEnter()
-
OnTriggerStay()
-
OnTriggerExit()
U kunt van een Collider een trigger maken om de OnTriggerEnter()
, OnTriggerStay()
en OnTriggerExit()
gebruiken. Een Trigger Collider reageert niet fysiek op botsingen, andere GameObjects gaan er gewoon doorheen. Ze zijn handig om te detecteren wanneer een ander GameObject zich in een bepaald gebied bevindt of niet. Als we bijvoorbeeld een item verzamelen, willen we het misschien gewoon doornemen, maar detecteren wanneer dit gebeurt.
Trigger Collider Scripting
Voorbeeld
De onderstaande methode is een voorbeeld van een triggerlistener die detecteert wanneer een andere botser de botser van een GameObject (zoals een speler) betreedt. Triggermethoden kunnen worden toegevoegd aan elk script dat is toegewezen aan een GameObject.
void OnTriggerEnter(Collider other)
{
//Check collider for specific properties (Such as tag=item or has component=item)
}