我使 OnTriggerEnter2D 无效但不起作用

i made a OnTriggerEnter2D void but not work

嗨,我使 OnTriggerEnter2D 无效但不起作用

我在播放器中添加了 rigidbody2d 将如何触发商店

并且有一个盒子碰撞器,在播放器和商店中触发

但不起作用

using System.Collections.Generic;
using UnityEngine;

public class OpenShop : MonoBehaviour
{
    public GameObject ShopGui;
    public bool test = false;


    void Update()
    {
        if (test == true)
        {
            Destroy(gameObject);
        }
    }

    public void OnCollisionEnter2D(Collision2D collision)
    {
        if (collision.transform.tag == "Shop")
        {
            test = true;
        }
    }
}

shop properties

player properties

您正在使用 OnCollisionEnter2D 回调。 将其更改为 OnTriggerEnter2D 以查看是否可以解决您的问题。

public void OnTriggerEnter2D(Collider2D other)
{
    if (other.tag == "Shop")
    {
        test = true;
    }
}

删除 Player 上的第一个 BoxCollider 并保留第二个已启用触发器。使用此代码在商店

public void OnTriggerEnter2D(Collider2D other)
{
    if (other.gameObject.CompareTag("Player"))
    {
        test = true;
    }
}