C# 团结得到引发冲突的扳机。。。事件

C# 团结得到引发冲突的扳机。。。事件,c#,unity3d,C#,Unity3d,我试图制作一个只有当某个碰撞器与任何东西发生碰撞时才会跳跃的播放器控制器。目前,我可以检测碰撞,但无法测试发生的碰撞是否是由所讨论的碰撞器引起的。我该怎么做 以下是我的播放器控制器层次结构: Capsule | +- Camera | +- Floor Collider 附言:对不起,问题的篇幅很短让我看看我是否收到了你的问题,你想检测球员何时触到地板,这样它只能在地板上跳跃。是这样吗 地板上也有一个对撞机,对吗?在地板对象上添加一个标记,这样我们就可以确定谁是碰撞器 然后在播放器控制器上执行

我试图制作一个只有当某个
碰撞器
与任何东西发生碰撞时才会跳跃的播放器控制器。目前,我可以检测碰撞,但无法测试发生的碰撞是否是由所讨论的
碰撞器引起的。我该怎么做

以下是我的播放器控制器层次结构:

Capsule
|
+- Camera
|
+- Floor Collider

附言:对不起,问题的篇幅很短

让我看看我是否收到了你的问题,你想检测球员何时触到地板,这样它只能在地板上跳跃。是这样吗

地板上也有一个
对撞机
,对吗?在地板对象上添加一个
标记
,这样我们就可以确定谁是
碰撞器

然后在播放器控制器上执行以下操作:

void OnCollisionEnter(Collision other)
{
    if(other.gameObject.tag == "floor") 
    {
        allowJump = true;
    }
}
相反,我们知道玩家不能跳

void OnCollisionExit(Collision other)
{
    if(other.gameObject.tag == "floor") 
    {
        allowJump = false;
    }
}

你能多发一点关于你想要达到的目标吗?对我来说,这听起来就像你想检查哪个物体与你的玩家相撞,然后让你的玩家跳跃。与检查碰撞不同,我建议您只对定义为地面的层使用强制转换。请显示您的代码。。基本上,所有与碰撞/触发检测相关的消息方法都有一个参数,可以准确地告诉您碰撞的内容。。。。因此,您可以使用精确的引用、标记、图层、特定组件类型、名称等进行过滤…我想检查是什么对象导致了碰撞,我不知道我的代码如何帮助解决这个问题。我希望只有当
地板碰撞器
造成碰撞时,才会发生这种情况。然后在具有地板碰撞器的组件上添加带有碰撞代码的脚本