gpt4 book ai didi

c# - Unity 处理多个具有不同目的的碰撞器

转载 作者:太空宇宙 更新时间:2023-11-03 21:19:08 25 4
gpt4 key购买 nike

我有一个 Enemy 有两个不同的 Collider。第一个是 Box Collider,它用作敌人的碰撞箱。

第二个是 Sphere Collider,我想用它来检测玩家和他的盟友。此碰撞器将属性 IsTrigger 设置为 true(BoxCollider 没有)。

我的问题是,当我的玩家发射射弹时,它首先击中 Sphere Collider。球体碰撞器被视为碰撞箱,我的敌人会受到伤害。这是射弹脚本:

void OnTriggerEnter (Collider col)
{
if (col.gameObject.tag == "Player")
{
AUnit a = col.gameObject.GetComponent<AUnit>();
if (a != null)
{
a.takeDamage(damage);
if (goThrough == false)
Destroy(gameObject);
}
}
}

我的问题很简单,我该怎么做才能检测到只检测到 BoxCollider 而忽略 SphereCollider ?

最佳答案

这可以通过使用 Layer-Based Collision Detection 来实现.

您将播放器设置为一层,将播放器弹射物设置为另一层
然后,您可以在碰撞检测中使两层相互忽略

关于c# - Unity 处理多个具有不同目的的碰撞器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31966157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com