编程实现Unity 2D中的旋转冻结

4
在Unity检视器(v5+)中,您有一个“冻结Z”旋转选项,您知道在代码中相应的等效选项是什么吗?该想法是通过C#代码根据某些条件启用/禁用2D对象的Z轴旋转。
2个回答

6
你想将 Rigidbody.constraints 设置为一个 RigidbodyConstraint
transform.rigidbody.constraints = RigidbodyConstraints.FreezePositionZ;
RigidbodyConstraint 常量可以使用 | 运算符进行组合:
rigidbody.constraints = RigidbodyConstraints.FreezeRotationX | RigidbodyConstraints.FreezeRotationY;

2
不错!我最终使用了rig2d.constraints = RigidbodyConstraints2D.FreezeRotation;,因为它是一个2D刚体,谢谢! - JavierCaruso

0

如果要将此作为2D答案,请使用以下内容:

Rigidbody2D body2d;

void Awake() {

    body2d = GetComponent<Rigidbody2D> ();

}

void Update () {

    // on this line, calculate condition for freezing rotation

    if (condition) {

        body2d.constraints = RigidbodyConstraints2D.FreezeRotation;

    } else {

        body2d.constraints = RigidbodyConstraints2D.None;

    }

}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接