好的,所以基本上我正在做这个测试项目,该项目在很大程度上依赖于运动和动力来完成关卡,还有一点跑酷。我需要一个碰撞器有两个原因,1. 玩家在最后触摸一个对象并被放回菜单中。 2. 如果玩家掉出地图,他们就会死亡。
我在 Colliders 和 Docs 上尝试了一些,虽然通常我能弄明白,但我在看 Unity 的文档和这里的一些问题时被难住了 20 分钟。
public GameObject objectCollider;
public GameObject anotherCollider;
void OnCollisionEnter(Collision collision)
{
if (CollisionDetection.IsTouching(objectCollider.gameObject, anotherCollider.gameObject))
{
Destroy(plr);
}
}
这是我目前得到的。我从这里得到一个错误,如果我将它切换到 if collider object == other 它会出错。
基本上我想要的(如果您只想发布答案代码但对其进行评论仍然会有所帮助,所以我学习了!)是为了检测一个游戏对象(玩家(但在代码中为它的 objectCollider)),如果它接触另一个(一个立方体(在代码中为 anotherCollider))并执行代码(例如 Destroy(playerObject))
感谢您提供的任何帮助、链接、任何代码!
答案 0 :(得分:0)
希望这就是您要找的:
public void OnCollisionEnter(Collision collision)
{
if (collision.collider.name == "endObject")
{
//put back into the menu
}
}
一旦您的玩家进入碰撞状态,它就会检查与它碰撞的任何物体的名称。然后你可以在 if 语句中执行你想要的代码。
您可以将 collision.collider
用于许多其他用途,例如 collision.collider.tag
,但这应该是您的一个开始。