OnCollisionEnter2D有时会调用,但并非总是如此

时间:2015-12-02 00:42:20

标签: unity3d

我试图重拍Pong。我已经完成了所有代码,但由于某种原因,OnCollisionEnter2D并不总是激活。

以下是代码:

void OnCollisionEnter2D(Collision2D col)
{

    if(col.gameObject.name == "paddle")
    {
        float y = hitFactor(gameObject.transform.position, col.transform.position, col.collider.bounds.size.y);


        Vector2 dir = new Vector2(1, y).normalized;


        GetComponent<Rigidbody2D>().velocity = dir * speed;


        Debug.Log(y);

    }
    if (col.gameObject.name == "paddle2")
    {
        float y = hitFactor(gameObject.transform.position, col.transform.position, col.collider.bounds.size.y);
        Vector2 dir = new Vector2(-1, y).normalized;
        GetComponent<Rigidbody2D>().velocity = dir * speed;
        Debug.Log(y);
    }

代码应该根据球击中球拍创建Y值,以便它可以创建球的行进方向,但是在监控控制台之后我注意到OnCollisionEnter2D有时只是激活,现在和然后,没有任何明显的模式。

知道为什么会这样吗?我不认为它的原因是物体快速移动,我把速度降低到几乎没有,它仍然不会一直触发

0 个答案:

没有答案