3

プレイヤーがパスを走るゲームを構築しています。プレイヤーがコライダーをトリガーすると、2 つの敵オブジェクトがスポーンします。

私が欲しいのは、最初のコライダートリガーが入力されたときに、最初のコライダーから一定の距離にある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 に答える