【问题标题】:Unwanted collisions from colliders - disabled in matrix and layers are checked来自对撞机的不需要的碰撞 - 检查矩阵和图层中的禁用
【发布时间】:2018-12-22 07:19:13
【问题描述】:

我有一个放在“播放器”层上的播放器对象。我在碰撞矩阵中取消了 Player/Player(不是 Physics2D 的)。

这样我就可以穿过另一个玩家而不会发生碰撞。 但我注意到,如果我跳到另一个玩家身上,我就会卡在“头”上。 https://gyazo.com/112d91b4edc3bb5e1de827ff69b9297d

我尝试从 OnCollisionEnter 函数进行调试,但当我在其他玩家之上时它什么也没显示,当我在地面上时它打印出来。

    private void OnCollisionEnter(Collision collision)
{
    print(collision.gameObject);
    print(collision.gameObject.layer);
    print(collision.gameObject.GetComponent<Collider>());
}

在运行时禁用其中一个玩家的碰撞器显然让我跌倒了另一个玩家,但我不能那样做。

【问题讨论】:

  • 你是如何处理角色物理的,尤其是你如何检测到触地?我猜有一个光线投射没有正确忽略Player 层。
  • 非常感谢,这是光线投射图层蒙版!我知道我所做的改变会回来咬我。 :) 干杯!

标签: unity3d


【解决方案1】:

用于检测地面以处理角色物理的光线投射没有正确的layerMask

需要包含玩家layerMask,这样才不会导致与地面接触的误报。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-12
    • 2022-08-20
    • 2011-03-27
    • 1970-01-01
    • 2014-04-08
    • 2019-04-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多