0

現在、私たちは Infinity-Runner に取り組んでいますが、この奇妙なバグが発生しました。何かが画面を離れた後、すべてを破壊するコライダーによってキャッチされます。そして、それは機能します...ほとんど。地面、背景、飛び越えた敵を破壊しますが、新しく実装された「障害物」は破壊しません。

これがどのように見えるかの写真です。緑色のプレースホルダーは障害物です http://s4.postimg.org/8uaorv7ot/Bug.pngこれが私 が言っていることを視覚化するのに役立つことを願っています^^.

Destroyed (緑色のボックス コライダー) に使用するスクリプトは次のとおりです。

            void OnTriggerEnter2D(Collider2D other)
{
    if (other.tag == "Player")
    {
        Debug.Log ("Break is gonna happen");
        Debug.Break();
    }
    else if (other.gameObject.transform.parent)
    {
        Destroy(other.gameObject.transform.parent.gameObject);
    }
    else
    {
        Destroy(other.gameObject);
    }
}

これはロードブロッキングのスクリプトです。

        void OnCollisionEnter2D(Collision2D other)
{
    if(other.gameObject.tag == "Player")
    {
        Debug.Break ();
    }
}

基本的に、DestroyerScript を混乱させるものは何もありません。敵のスクリプトよりもはるかに単純ですが、敵は破壊されます。

事前にご協力いただきありがとうございます。必要に応じて、より多くの情報を提供できます。(ああ、この写真のすべてのアートはプレースホルダーのものです^^)

4

1 に答える 1

0

OnTriggerExit2D を使用して、プレイヤーがコライダーを離れたときにトリガーすることができます。http://docs.unity3d.com/ScriptReference/Collider2D.OnTriggerExit2D.html前に適切なcollider2dをスプライトに追加したことを確認してください。以前 は使用していませんが、機能する可能性があると思います

于 2014-12-20T08:21:56.823 に答える