首页 > 解决方案 > 另一个 onTriggerEnter()

问题描述

我知道很多人已经用这个命令发布了他们的问题。我已经尝试了所有不同的建议,但我仍然无法让 onTriggerEnter 方法为我工作。

我正在关注一组教程,目标是创建一种迷你游戏,您可以在其中使用 FirstPersonCharacter 控制器收集硬币。

FirstPersonCharacter 附加了一个 RigifBody,应用了重力并且它是运动学的,“玩家”标签应用于对象。

硬币有一个旋转脚本(默认资产之一)、一个带有 Is Trigger 复选框的网格碰撞器和收集脚本。“硬币”标签应用于此游戏对象,它是静态的。

public class collect : MonoBehaviour 
{
    private void onTriggerEnter(Collider c0ol)
    {
        Debug.Log("Registered Trigger");
    }
    private void onCollisionEnter(Collision col)
    {
        Debug.Log("Registered Collision");
    }
}

我还在每个方法中放置了一个 Debug.Log() 以确保在碰撞或触发器被激活的情况下我得到返回的东西。

我穿过硬币,没有任何东西被触发。我也尝试将刚体组件放入硬币中,但没有任何触发。我很清楚静态触发器对撞机(硬币)应该发送一个带有刚体(玩家)的触发器,该触发器与本文档底部的表格一致。

有什么我想念的吗?

预先感谢您的帮助。

标签: c#unity3d

解决方案


您需要OOnCollisionEnter和中使用大写字母OnTriggerEnter

C# 区分大小写,因此fooFooor不同fOo

这应该有效:

public class Collect : MonoBehaviour 
{
    private void OnTriggerEnter(Collider c0ol)
    {
        Debug.Log("Registered Trigger");
    }
    private void OnCollisionEnter(Collision col)
    {
        Debug.Log("Registered Collision");
    }
}

推荐阅读