unity OnCollisionEnter 函数未注册

Unity OnCollisionEnter function not registering

我无法注册我的 OnCollisionEnter();我已经从以前的 Unity 程序中复制了该功能并复制了所有内容。 FPSController 之间的冲突应该会降低 TreeHealth。

    void OnCollisionEnter(Collision collision)
    {
        print("Colision");
        if (collision.gameObject.tag == "TreeTag")
        {
            treeScript = collision.gameObject.GetComponent<TreeFall>();
            treeScript.treeHealth--;
        }
    }

我建议您将 print() 函数替换为 Debug.Log() 并检测树脚本中的碰撞并检查播放器的碰撞。

您是否尝试使用 OnControllerColliderHit? I think you have to use this method instead of OnCollisionEnter if you move the character with the CharacterController 组件。