首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在具有多个碰撞器的GameObject上查找冲突中涉及的两个碰撞器

在具有多个碰撞器的GameObject上查找冲突中涉及的两个碰撞器
EN

Stack Overflow用户
提问于 2018-06-03 00:06:38
回答 1查看 2.7K关注 0票数 2

总结如下:我想从一个OnTriggerEnter2D事件中找到碰撞中涉及的两个碰撞器。我该怎么做呢?

我有两个游戏对象。它们都有一个对撞机和一个触发器。

在物体A上,它被触发器包围着。在对象B上,触发器只围绕着特定的部分。

当对象A的触发器接触到对象B的任何对撞器时,无论是否触发:我希望对象B失去生命值。反之亦然。

但是,当对象A的触发器接触到对象B的对撞器(而不是触发器)时,两个对象都会失去生命值。

我在控制台中得到了这个

代码语言:javascript
复制
Object A hit Object B
Object B hit Object A

我得出的结论是,对象A的触发器调用了对象B上的Ontrigger2d事件。

我认为处理这个问题的最好方法,就是找出哪个对撞机“发现”了碰撞,并据此决定:忽略碰撞。

我怎样才能找到哪个触发器“发现”了碰撞?

也发布在Unity论坛上

编辑:代码

代码语言:javascript
复制
private void OnTriggerEnter2D(Collider2D collision)
{
    Consumeable con = collision.GetComponentInParent<Consumable>();

    if (con != null && con.gameObject != gameObject)
    {
        Debug.Log(gameObject.name + " hit " + con.gameObject.name);

        con.Damage(1);
    }
}
EN

回答 1

Stack Overflow用户

发布于 2018-06-03 02:25:26

实现这一点的一种方法是创建子游戏对象来处理其中一个碰撞器。

例如,您有一个具有非触发对撞器的父对象,以及一个具有触发对撞器的子对象。

这样就很容易弄清楚哪些对撞机参与了碰撞。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50658748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档