我知道许多人已经发布了该命令的问题。我已经尝试了所有不同的建议,但仍然无法使用onTriggerEnter方法为我工作。
我正在遵循一组教程,目的是创建一种微型游戏,您可以使用FirstPersonCharacter控制器在其中收集硬币。
FirstPersonCharacter附加有RigifBody,应用了Gravity并且是Kinematic,将“ Player”标记应用到对象。
硬币具有旋转脚本(默认资产之一),带有“触发器”复选框和收集脚本的网格碰撞器。 “硬币”标签已应用于此游戏对象,并且是静态的。
public class collect : MonoBehaviour
{
private void onTriggerEnter(Collider c0ol)
{
Debug.Log("Registered Trigger");
}
private void onCollisionEnter(Collision col)
{
Debug.Log("Registered Collision");
}
}
我还在每个方法中都放置了一个Debug.Log(),以确保在碰撞或触发器被激活的情况下我得到了返回。
我跑过硬币,没有任何反应。我也尝试将刚体部件也放入硬币中,但是没有触发任何动作。我很清楚,静态触发器对撞机(硬币)应该向this document底部的表发送一个带有刚体(玩家)的触发器。
有什么我想念的吗?
预先感谢您的帮助。
答案 0 :(得分:1)
您需要像O
和OnCollisionEnter
中那样使用大写字母OnTriggerEnter
。
C#区分大小写,因此foo
与Foo
或fOo
不同。
这应该有效:
public class Collect : MonoBehaviour
{
private void OnTriggerEnter(Collider c0ol)
{
Debug.Log("Registered Trigger");
}
private void OnCollisionEnter(Collision col)
{
Debug.Log("Registered Collision");
}
}