【问题标题】:OnCollisionEnter2D and OnCollisionExit2D being called simultaneously同时调用 OnCollisionEnter2D 和 OnCollisionExit2D
【发布时间】:2018-07-09 07:23:29
【问题描述】:

我正在制作一个移动平台,只有当玩家跳上它时才会激活。下面是一段代码:

private void OnCollisionEnter2D(Collision2D collision)
{        
    if (collision.gameObject.tag == "Player")
    {            
        moving = true;
        collision.gameObject.transform.SetParent(gameObject.transform);
    }        
}

private void OnCollisionExit2D(Collision2D collision)
{        
    if (collision.gameObject.tag == "Player")
    {
        Debug.Log("Exiting");
        //collision.gameObject.transform.SetParent(null);
    }
}

但是一旦玩家登陆平台,OnCollisionEnter2D 和 OnCollisionExit2D 都会被调用,因为代码没有按预期工作。为什么会这样?

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    OnCollisionEnter2D 替换为OnCollisionStay2D,效果非常棒。虽然我仍然不明白为什么会调用OnCollisionExit2D

    【讨论】:

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