2016-08-19 50 views
0

所以我正在做一个简单的“拼图”使用灯。简单地说,它们上面有3个按钮(红色,蓝色,绿色)。每个按钮都有它自己的触发器音量,但是当我去玩时,没有任何打印出来,甚至可以输入,保持或离开触发器。我从来没有使用过对撞变量,所以我觉得我做错了什么(显然或者它会工作!)。但后来我只是在OnTriggerStay/Enter/Exit Method中做了“对撞机实体”,它仍然没有打印到我的玩家进入的控制台。为什么我的触发器不工作?c#OnTriggerStay与碰撞变量

Click here for the code I'm trying Click here to see how I have it in the Unity Scene

回答

0

触发器只有那些对他们刚体其他撞机回应。

尝试添加一个Ridgidbody组件到您的播放器并将其设置为运动。

+0

我不允许混淆角色,因为它是班级之间的共享模式(在学校中)。不过,我认为这不是问题,因为我所有级别的其他触发器都可以工作。问题是,我有3个触发器,每个人都需要独立识别播放器,以便按下按钮可关闭/打开正确的灯光。一旦动画中只剩下蓝色,将允许进展。 –

0

当对象具有碰撞组件并且BluePuzzle2没有碰撞组件时,OnTriggerEnter/Stay/Exit工作。

另外OnTrigger函数获取Collider作为参数。检查为了使这项工作参考page

所以把剧本上的每个光以及该脚本复制此功能

void OnTriggerEnter(Collider col) { 
    if (col.CompareTag("Player")) { 
     print("Entered the trigger"); 
    } 
} 

希望它能帮助。

+0

种,我试图避免这样做,因为这将需要多个脚本。有没有办法使用Collider变量? –

+0

您可以对所有3个灯使用相同的脚本。我不确定你是否可以使用对撞机变量来做到这一点,因为我从来没有这样做,或看到别人这样做。 – josehzz

+0

是啊,猜猜这不是一件事,不能让它以这种方式工作或找到任何东西。我只是做了几个单独的脚本,一切正常,除了按钮灌木音频。出于某种原因,当我把它放在我的其他if语句下时,它会在玩家停留在触发器中时播放,但这是另一天的另一个问题,只是很高兴我的解谜奏效!感谢您的输入! –