Kollisioner och triggers
↑Snabböversikt
Section titled “Snabböversikt”Kollisionsmetoder används för fysisk kontakt. Triggermetoder används för att känna av när något överlappas utan vanlig kollisionsrespons. Exemplen gäller 3D-fysik. Unitys 2D-system använder separata metoder med 2D i namnet.
| Metod | Användning |
|---|---|
OnCollisionEnter(Collision collision) |
När fysisk kontakt börjar |
OnCollisionStay(Collision collision) |
Under fortsatt kontakt |
OnCollisionExit(Collision collision) |
När kontakten avslutas |
OnTriggerEnter(Collider other) |
När något går in i en trigger |
OnTriggerStay(Collider other) |
Under överlappning |
OnTriggerExit(Collider other) |
När något lämnar en trigger |
En enkel trigger
Section titled “En enkel trigger”using UnityEngine;
public sealed class PickupZone : MonoBehaviour{ private void OnTriggerEnter(Collider other) { if (other.CompareTag("Player")) Debug.Log("Spelaren gick in i zonen."); }}Objektet behöver en collider där Is Trigger är aktiverat och rätt Rigidbody/collider-kombination för att generera en triggerhändelse.
Fysisk kontakt
Section titled “Fysisk kontakt”using UnityEngine;
public sealed class ImpactReport : MonoBehaviour{ private void OnCollisionEnter(Collision collision) { Debug.Log($"Träffade {collision.gameObject.name}"); }}Kontrollera när inget händer
Section titled “Kontrollera när inget händer”- Se till att collider-komponenterna är aktiva och har rätt triggerinställning.
- Kontrollera Rigidbody och att du inte blandar 2D- och 3D-fysik.
- Granska Layer Collision Matrix i Physics-inställningarna.
- Kontrollera metodens exakta stavning och parametertyp.
- Prova två enkla objekt i en ren scen innan du felsöker större system.
Läs också Rigidbody och rörelse.
