0

我正在制作一个小游戏,其中基本的游戏机制是在关卡中拖动东西。My Player GO 是在关卡周围拖动其他对象的人。这个GO(玩家GO)有一个rigidBody2D组件,为了拖动其他物体,我把被拖动的物体变成了player的一个child,这样我只通过rigidBody组件移动player,被拖动的物体沿着玩家对象。

问题是,只要本应通过接触杀死玩家的东西与被拖动的对象接触,玩家的死亡仍然会触发,即使玩家一开始并没有与危险对象发生接触。这显然不是预期的结果,如果想要杀死玩家的东西接触到被拖动的物体而不是玩家,那么玩家不应该被杀死。我怎样才能解决这个问题?

编辑:杀死我的意思是摧毁玩家GO。

4

2 回答 2

0

如果你删除你的父游戏对象,它的所有子游戏对象也会随之删除。为了不删除您拖动的对象,您应该在删除父游戏对象之前将它们删除到其他地方。你可以这样做: YourChildGameObject.transform.SetParent(OtherParentGameObject, false);

此外,此链接可以帮助您

于 2016-01-12T18:34:10.257 回答
0

这是碰撞的问题。为玩家和敌人设置不同的层。转到编辑 -> 项目设置 -> 物理。在底部,您会看到碰撞列表。您可以检查哪些图层与那里的哪些图层发生碰撞。将“敌人”层设置为仅与“玩家”层发生碰撞。

另一种方法是检查与 OnCollisionEnter 或 OnTriggerEnter 碰撞的敌人是什么(取决于您的操作方式)。你可以这样做:

//You can change this to OnTriggerEnter and "Collision" with "Collider"
void OnCollisionEnter(Collision col) 
{
    if (col.gameObject.name == "player")
    {
      //Kill the player
    }
}

祝你好运!

于 2016-01-12T18:42:13.377 回答