首页 > 解决方案 > 我正在尝试检测我是否与统一的特定对象发生碰撞

问题描述

在我的场景中,有多个对象具有相同的图层和标签。我有一个变量将被设置为这些对象之一的游戏对象。当我与设置为变量的对象发生碰撞时,我想做一些事情。我目前的代码是:

private void OnCollisionEnter2D(Collision2D collision)
{
    if (collision.otherCollider == targetFood)
    {
        Debug.Log("I am touching food");
    }
}

我尝试了几种不同的方法来检查它是否接触到食物,但都没有奏效。帮助将不胜感激!

标签: c#unity3d

解决方案


如果你从碰撞中得到游戏对象,你应该能够确定目标食物是否被触摸过。

using UnityEngine;

public class Example : MonoBehaviour
{
    void OnCollisionEnter2D(Collision2D collision)
    {
        if (collision.gameObject == targetFood)
        {
            Debug.Log("I am touching food");
        }
    }
}

这是假设targetFood是一个类型为 的变量GameObject


推荐阅读