现在我们正在研究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。它甚至比敌人的剧本简单得多......但它们会被摧毁。
在此先感谢您的帮助,如果需要,我可以提供更多信息。 (哦,这张照片中的所有艺术品都是占位符^^)
答案 0 :(得分:0)
您可以尝试使用OnTriggerExit2D在玩家离开对撞机时触发。并且你之前为你的精灵添加了一个合适的collider2d http://docs.unity3d.com/ScriptReference/Collider2D.OnTriggerExit2D.html 我之前没有使用它,但我认为它可能有效