我如何检测我的玩家是否正在触摸游戏对象?

时间:2021-01-30 03:11:49

标签: unity3d

好的,所以基本上我正在做这个测试项目,该项目在很大程度上依赖于运动和动力来完成关卡,还有一点跑酷。我需要一个碰撞器有两个原因,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))

感谢您提供的任何帮助、链接、任何代码!

1 个答案:

答案 0 :(得分:0)

希望这就是您要找的:

public void OnCollisionEnter(Collision collision)
    {
        if (collision.collider.name == "endObject")
        {
            //put back into the menu
        }
    }

一旦您的玩家进入碰撞状态,它就会检查与它碰撞的任何物体的名称。然后你可以在 if 语句中执行你想要的代码。 您可以将 collision.collider 用于许多其他用途,例如 collision.collider.tag,但这应该是您的一个开始。