当被另一个人碰到时,我该如何停止一个物体

时间:2019-10-05 09:04:24

标签: unity3d

我有一个带有碰撞的2D对象,我用鼠标以速度移动它,当它与同一个对象接触时,它会移动另一个对象。您如何确定他没有移动它,但是当您单击它时,您也可以移动它? 我试图这样做:

private void OnCollisionEnter2D(Collision2D collision)
    {
        if(collision.gameObject.tag == "GameController")
        { 
            collision.gameObject.GetComponent<Rigidbody2D>().velocity = Vector2.zero;
            collision.gameObject.GetComponent<Rigidbody2D>().angularVelocity = 0f;
        }
    }

2 个答案:

答案 0 :(得分:0)

只需启用要控制其运动的各个游戏对象的isKinematic部分,但不会受到其他对象的影响。

This帖子很好地解释了为什么设置运动学属性可以解决您的问题。

答案 1 :(得分:0)

由于要使用鼠标控制运动,因此应将boolen变量添加到运动逻辑中。触发CollisionEnter时,不执行运动逻辑。