为什么精灵不会被破坏 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 ();
}
}
所以基本上没有什么会破坏毁灭者脚本。它甚至比敌人的剧本简单得多......但他们被摧毁了。
提前感谢您的帮助,如果需要,我可以提供更多信息。(哦,这张照片中的所有艺术品都是占位符^^)
您可以尝试使用 OnTriggerExit2D 在玩家离开碰撞体时触发。并确保之前在精灵中添加了合适的碰撞体2dhttp://docs.unity3d.com/ScriptReference/Collider2D.OnTriggerExit2D.html我以前没有使用它,但我认为它可能会起作用