以编程方式冻结Z旋转 - Unity 2D

时间:2015-08-13 02:57:58

标签: unity3d

在Unity检查器(v5 +)中,你有一个“冻结Z”旋转,任何与代码相同的想法?我们的想法是通过C#代码启用/禁用由于某种条件而导致的2D对象的Z旋转。

2 个答案:

答案 0 :(得分:5)

您想将Rigidbody.constraints设置为RigidbodyConstraint

transform.rigidbody.constraints = RigidbodyConstraints.FreezePositionZ;

RigidbodyConstraint常量可以与|运算符结合使用:

rigidbody.constraints = RigidbodyConstraints.FreezeRotationX | RigidbodyConstraints.FreezeRotationY;

答案 1 :(得分: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;

    }

}