【问题标题】:Unity - OnCollisionStay2D Not working as properlyUnity - OnCollisionStay2D 无法正常工作
【发布时间】:2018-01-25 11:21:04
【问题描述】:

我希望我的角色在我按下 S 时忽略正在与之发生碰撞的层(就像在 Gun Mayhem 中,当您在与层发生碰撞时按下向下键并且角色忽略与该层的碰撞一样)。问题是OnCollisionStay2D 功能仅在我移动时才有效。因此,如果我的角色正在移动,我只能忽略与我正在碰撞的图层的碰撞。否则,它不起作用。这是我为了让角色忽略碰撞而需要做的 我的代码:

void OnCollisionStay2D(Collision2D c)
{
    Debug.Log("COLLISION");
    if (Input.GetKeyDown (KeyCode.S) || Input.GetKeyDown (KeyCode.DownArrow))
    {
        Physics2D.IgnoreCollision (GetComponent<Collider2D> (), c.gameObject.GetComponent<Collider2D> ());
    }
}

【问题讨论】:

    标签: unity3d 2d


    【解决方案1】:

    在您的角色rigidbody2d 上,将“睡眠模式”设置为永不睡眠。这将允许您的角色在每一帧都检测到碰撞,而不管移动如何。

    https://docs.unity3d.com/ScriptReference/Rigidbody2D-sleepMode.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-01
      相关资源
      最近更新 更多