3

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

我想要的是当输入第一个对撞机触发器时,我希望与第一个对撞机有一定距离的第二个对撞机在一段时间内被禁用。如何做到这一点?

4

1 回答 1

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 上的意义。但这应该可以帮助您继续前进。试着用代码玩一些,如果你有问题,回到这里问他们,为问题提供一些代码来展示你尝试过的东西。

于 2013-02-27T09:17:30.840 回答