刚体之间挤压造成的抖动问题

在做打砖块的时候,发现,如果在移动下面的板的时候当板子碰到左边或右边的墙体的时候就会出现剧烈的抖动问题。
刚体之间挤压造成的抖动问题_第1张图片
控制板子的代码是这样写的:

void Update () {
        float horizontal = Input.GetAxis("Horizontal");
        m_rigidbody.transform.Translate(transform.right * Time.deltaTime * speed * horizontal);
    }

如果控制边界的位置,写的判断特别多。因此在尝试过程中发现Mathf中的clamp函数比较合适,可以很好的控制板子的x轴向上帝的坐标,并且没有任何的抖动。

void Update () {
        float horizontal = Input.GetAxis("Horizontal");
        m_rigidbody.velocity = transform.right * horizontal*speed;
        m_rigidbody.position = new Vector3(Mathf.Clamp(m_rigidbody.position.x,-4.2f,4.2f),transform.position.y,transform.position.z);
    }

你可能感兴趣的:(Unity)