使用脚本更改刚体约束

Change the rigidbody constraints with a script

我正在构建一个游戏,我正在努力让它在接触到玩家时改变约束。

这是我的代码

    {
        if (col.gameObject.tag == "player")
        {
            rb.constraints = RigidbodyConstraints.FreezePositionX;// | RigidbodyConstraints.FreezePositionY;
        }
    }

Assets\Scripts\Pick_up.cs(42,30): error CS0266: Cannot implicitly convert type 'UnityEngine.RigidbodyConstraints' to 'UnityEngine.RigidbodyConstraints2D'. An explicit conversion exists (are you missing a cast?)

你能帮我解决这个问题吗?

谢谢!


    void OnCollisionEnter2D(Collision2D col)
    {
        if (col.gameObject.tag == "player")
        {
            rb.constraints = RigidbodyConstraints.FreezePositionX;// | 
            RigidbodyConstraints.FreezePositionY;
        }
    }
}

RigidbodyConstraints2D 和 RigidbodyConstraints 是不同的枚举类型。

你应该使用

rb.constraints = RigidbodyConstraints2D.FreezePositionX;