首页 > 解决方案 > 当玩家与触发器发生碰撞时,如何启用游戏对象的组件?

问题描述

我正在制作一个游戏,您必须在不碰到任何障碍的情况下从 A 点到达 B 点。有些障碍物在移动,有些则没有。我决定在我的一个关卡中添加一个触发器,以启用两个障碍物的脚本,使它们移动。这是附加到触发器的脚本:

 private void OnCollisionEnter(Collision collision)
{
    GameObject.Find("Obstacle (10)").GetComponent<MovingObjects>().enabled = true;
    GameObject.Find("Obstacle (9)").GetComponent<MovingObjects>().enabled = true;
}

出于某种原因,此代码以及该方法似乎不起作用。当玩家通过触发器时没有任何反应。为什么?

标签: c#unity3d

解决方案


查看碰撞矩阵

碰撞事件(如OnCollisionEnter不会在标记为 的 Collider 上引发isTrigger


请注意,afaikOnTriggerEnter也只会在不是触发器的对象上调用。


推荐阅读