Triggers 当输入另一个碰撞器的触发器时,如何禁用碰撞器?

Triggers 当输入另一个碰撞器的触发器时,如何禁用碰撞器?,triggers,unity3d,unityscript,destroy,Triggers,Unity3d,Unityscript,Destroy,我正在构建一个玩家在一条路径上运行的游戏。当玩家触发一个对撞机时,将会产生2个敌人的物体 我想要的是当第一个碰撞器触发器被输入时,我想要第二个碰撞器,它与第一个碰撞器保持一定距离,在一定时间内被禁用。如何实现这一点?例如,如果要禁用碰撞器,使其不会撞击或反弹出墙,则可以将碰撞器的“isTrigger”变量更改为true,将其更改为触发体积,而不是实体碰撞器。这有禁用它的效果-因为它不会导致其他对象停止或反弹,如果他们击中它 例如: function Update() { if (Inpu

我正在构建一个玩家在一条路径上运行的游戏。当玩家触发一个对撞机时,将会产生2个敌人的物体


我想要的是当第一个碰撞器触发器被输入时,我想要第二个碰撞器,它与第一个碰撞器保持一定距离,在一定时间内被禁用。如何实现这一点?

例如,如果要禁用碰撞器,使其不会撞击或反弹出墙,则可以将碰撞器的“isTrigger”变量更改为true,将其更改为触发体积,而不是实体碰撞器。这有禁用它的效果-因为它不会导致其他对象停止或反弹,如果他们击中它

例如:

function Update() {
    if (Input.GetKeyDown(KeyCode.X)) {
        collider.isTrigger = true;
    }
}
请注意,
MouseOver
之类的功能仍然有效

如果要完全禁用该功能,可以尝试
collider.enabled=false
。我不确定这是否有效。如果没有,则始终可以缩小碰撞器的比例:

var myOldSize:Vector3;

function DisableBoxCollider(myCollider:BoxCollider)
{
    //actually just resizes it
    myOldSize=myCollider.size;
    myCollider.size=Vector3(0,0,0);
}

function EnableBoxCollider(myCollider:BoxCollider)
{
    if(myOldSize!=Vector3(0,0,0))
        myCollider.size=myOldSize;
}

您可以使用上述代码将其集成到您自己的项目中。我不会把所有的代码都告诉你,否则我们就会错过学习编程和发布Stackoverflow的要点。但这会帮助你走上正轨。试着玩一些代码,如果你有问题,回到这里问他们,为问题提供一些代码来展示你的尝试。

谢谢回答。在这里,我要寻找的是在一台对撞机的触发进入和另一台对撞机的触发退出之间运行函数。有可能吗??这是代码函数OnTiggerEnter(){if(other.gameObject.tag==“player”){实例化(敌人,变换.位置,变换.旋转)}}现在我希望这个实例化的敌人在玩家退出不同碰撞器的触发器时死亡。如何做到这一点?你是说和?