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

本文关键字:2D 统一 精灵 为什么 | 更新日期: 2023-09-27 18:33:35

现在我们开发一个Infinity-Runner,我遇到了这个奇怪的错误。在有东西离开屏幕后,它会被一个破坏一切的对撞机捕获。它有效...几乎。它会摧毁地面、背景内容、你跳过的敌人,但不会摧毁新实施的"路障"。

这是一张图片,绿色占位符是路障的东西http://s4.postimg.org/8uaorv7ot/Bug.png希望这可能有助于可视化IM所说的话^^。

我用于销毁(绿盒碰撞体)的脚本是:

            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 ();
    }
}

所以基本上没有什么会破坏毁灭者脚本。它甚至比敌人的剧本简单得多......但他们被摧毁了。

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

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

您可以尝试使用 OnTriggerExit2D 在玩家离开碰撞体时触发。并确保之前在精灵中添加了合适的碰撞体2dhttp://docs.unity3d.com/ScriptReference/Collider2D.OnTriggerExit2D.html我以前没有使用它,但我认为它可能会起作用