0

私は、基本的なゲーム メカニックがレベル内で物をドラッグする小さなゲームを作成しています。My Player GO は、レベル内の他のオブジェクトをドラッグします。この GO (プレーヤーの GO) には、rigidBody2D コンポーネントがあり、他のオブジェクトをドラッグするために、ドラッグされたオブジェクトをプレーヤーの子に変更します。プレイヤーオブジェクト。

問題は、接触によってプレイヤーを殺すはずの何かがドラッグされているオブジェクトに接触すると、プレイヤーが最初に危険なオブジェクトに接触していなくても、プレイヤーの死がトリガーされることです。これは明らかに意図した結果ではありません。プレイヤーを殺すことを意図した何かが、ドラッグされたオブジェクトに接触してもプレイヤーには接触しない場合、プレイヤーは殺されるべきではありません。どうすればこれを修正できますか?

EDIT : 殺すということは、GO プレイヤーを破壊することを意味します。

4

2 に答える 2

0

親ゲームオブジェクトを削除すると、そのすべての子ゲームオブジェクトも一緒に削除されます。ドラッグしたオブジェクトが削除されないようにするには、親ゲームオブジェクトを削除する前に別の場所で削除する必要があります。次の方法でそれを行うことができます: YourChildGameObject.transform.SetParent(OtherParentGameObject, false);

また、このリンクはあなたを助けることができます.

于 2016-01-12T18:34:10.257 に答える
0

これは衝突の問題です。プレイヤーと敵に異なるレイヤーを設定します。Edit -> Project Settings -> Physics に移動します。下部に、衝突のリストが表示されます。どのレイヤーがどのレイヤーと衝突するかを確認できます。「enemy」レイヤーは「player」レイヤーのみと衝突するように設定します。

これを行う別の方法は、OnCollisionEnter または OnTriggerEnter と衝突している敵を確認することです (方法によって異なります)。次のように実行できます。

//You can change this to OnTriggerEnter and "Collision" with "Collider"
void OnCollisionEnter(Collision col) 
{
    if (col.gameObject.name == "player")
    {
      //Kill the player
    }
}

幸運を!

于 2016-01-12T18:42:13.377 に答える