OnTriggerEnter2D - is there any other way to specify triggered object?

So far I was using tags to specify with which object there will be interaction, but I wonder if I can use for example SerializeField for that?

The way I’m doing it so far:

    void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.CompareTag("Trigger"))
        {
            trigger = collision.gameObject.GetComponent<TriggerScript>();
            trigger.switcher = 1;
            Destroy(gameObject);
        }
    }

Is there any way to use something like SerializeField:

[SerializeField]
    private GameObject Trigger;

?

You could, but then you’d only care about interactions with a single gameobject:

    void OnTriggerEnter2D(Collider2D collider)
    {
        if (collider.gameObject == Trigger)
        {

Which might be what you want?

You could also just check if the component you care about is there:

    void OnTriggerEnter2D(Collider2D collider)
    {
        if (collider.TryGetComponent<TriggerScript>(out var trigger)) {
            trigger.swticher = 1;
            Destroy(gameObject);
        }
    }
1 Like

This is exactly what I needed. Thank you!

I wanted to avoid adding sooo much tags to my game.