为什么Sprite不会被破坏2D统一

时间:2014-12-08 10:54:53

标签: c# unity3d destroy unity3d-2dtools

现在我们正在研究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。它甚至比敌人的剧本简单得多......但它们会被摧毁。

在此先感谢您的帮助,如果需要,我可以提供更多信息。 (哦,这张照片中的所有艺术品都是占位符^^)

1 个答案:

答案 0 :(得分:0)

您可以尝试使用OnTriggerExit2D在玩家离开对撞机时触发。并且你之前为你的精灵添加了一个合适的collider2d http://docs.unity3d.com/ScriptReference/Collider2D.OnTriggerExit2D.html 我之前没有使用它,但我认为它可能有效