【发布时间】:2015-02-06 00:21:54
【问题描述】:
现在我们正在研究 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。它甚至比敌人的脚本要简单得多……但他们会被摧毁。
提前感谢您的帮助,如果需要,我可以提供更多信息。 (哦,这张照片中的所有艺术都是占位符^^)
【问题讨论】:
-
我认为:如果您对 unity3d 有一些疑问,最好不要在 stackoverflow 上提问。试试这个:forum.unity-community.de
-
可能会尝试这个...如果问题是基于统一的...只是认为我可能根据我的代码犯了一个错误。
-
看看:docs.unity3d.com/Manual/CollidersOverview.html 并检查碰撞器。也许你设置了触发器,但你不应该。还要检查 Colliders 是否都是 2D 类型。这就是我能猜到的。也许它有帮助。否则请检查上面的链接,因为 C# != Unity3D 中的 C#。
标签: c# unity3d destroy unity3d-2dtools