Hoppa till innehåll

Kollisioner och triggers

↑

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
Unity C# | PickupZone.cs
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.

Unity C# | ImpactReport.cs
using UnityEngine;
public sealed class ImpactReport : MonoBehaviour
{
private void OnCollisionEnter(Collision collision)
{
Debug.Log($"Träffade {collision.gameObject.name}");
}
}
  1. Se till att collider-komponenterna är aktiva och har rätt triggerinställning.
  2. Kontrollera Rigidbody och att du inte blandar 2D- och 3D-fysik.
  3. Granska Layer Collision Matrix i Physics-inställningarna.
  4. Kontrollera metodens exakta stavning och parametertyp.
  5. Prova två enkla objekt i en ren scen innan du felsöker större system.

Läs också Rigidbody och rörelse.