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