C# Unity 不显示 Debug.Log() 控制台

C# Unity not displaying Debug.Log() console

我正在编写一个脚本来显示一个物体与障碍物之间的碰撞。代码运行但不在控制台内输出。我做错了什么吗?

using UnityEngine;

public class collision : MonoBehaviour{

    void OnConllisionEnter (Collision collisionInfo)
    {
        if(collisionInfo.collider.tag == "Obstacle") 
        { 
            Debug.Log("We Hit an obstacle!");
        }
    }
    
}

我为对象添加了一个标签,因为我将添加更多障碍来简化流程。我检查了分号和任何其他对我来说很明显的错误。我不确定我应该更改什么,或者我是否遗漏了什么。

你实际上在方法名称中有错字

//       Here
//        |
//        v
void OnConllisionEnter (Collision collisionInfo)

代码应该是

using UnityEngine;

public class collision : MonoBehaviour{

    void OnCollisionEnter (Collision collisionInfo)
    {
        if(collisionInfo.collider.tag == "Obstacle") 
        { 
            Debug.Log("We Hit an obstacle!");
        }
    }
    
}

使用 OnConllisionEnter 时,请检查您的碰撞器组件以确保未选中 [Is Trigger] 标志 Collider Component, Is Trigger Flag

此外,请记住,两个对象都必须附加一个碰撞器组件,并且只有其中一个需要附加一个刚体组件(两者都必须匹配正确的世界 space,即 2D/3D 刚体和对撞机。

关于碰撞的更多信息: https://docs.unity3d.com/ScriptReference/Collider.OnCollisionEnter.html