我的Awake
方法有以下内容:
void Awake() {
Physics2D.IgnoreLayerCollision(LayerMask.NameToLayer("Player"), LayerMask.NameToLayer("Weapon"));
}
在物体上我有两个碰撞器,其中一个是触发器,另一个是默认碰撞器。我想做的是让我的玩家层忽略我的武器default collider
,但不要忽略武器trigger collider
。
这样做有好办法吗?因为我上面的代码使它忽略了两个碰撞器。
答案 0 :(得分:0)
我认为您可以在OnCollisionEnter函数中手动忽略它,这是一种更简单的方法。
void OnCollisionEnter2D (Collider2D other)
{
//ignore collider of Player
if(!other.transform.name.Equals("Player")
{
//do something here
}
}
void OnTriggerEnter2D (Collider2D other)
{
// Don't ignore trigger of Player
//do something here
}
答案 1 :(得分:0)
我认为如果您禁用这两个图层之间的冲突,则会禁用所有内容。我现在无法对此进行测试,但您是否尝试创建一个多维数据集,使其触发并命名该层" TriggerLayer",当然将多维数据集拖动到wepon以使其像其子一样运行。它们将在同一个父级,但具有不同的层。我不确定这是否有效,或者它是否是一个好的解决方案,但试一试。