LanguageEnglish
  • C#
  • JS

Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

This version of Unity is unsupported.

RigidbodyConstraints

enumeration

Description

Use these flags to constrain motion of Rigidbodies.

See Also: Rigidbody.constraints. This enables you to freeze positions and rotations on all axes.

//This example shows how RigidbodyConstraints is used to freeze the position and rotation of a Rigidbody in the z axis at start-up.
//It also shows what happens when these constraints are removed, when you press the space key
//Attach this to a GameObject with a Rigidbody to see it in action

using UnityEngine;

public class RigidBodyConstraitsExample : MonoBehaviour { Rigidbody m_Rigidbody; Vector3 m_ZAxis;

void Start() { m_Rigidbody = GetComponent<Rigidbody>(); //This locks the RigidBody so that it does not move or rotate in the z axis (can be seen in Inspector). m_Rigidbody.constraints = RigidbodyConstraints.FreezePositionZ | RigidbodyConstraints.FreezeRotationZ; //Set up vector for moving the Rigidbody in the z axis m_ZAxis = new Vector3(0, 0, 5); }

void Update() { //Press space to remove the constraints on the RigidBody if (Input.GetKeyDown(KeyCode.Space)) { //Remove all constraints m_Rigidbody.constraints = RigidbodyConstraints.None; }

//Press the right arrow key to move positively in the z axis if the constraints are removed if (Input.GetKeyDown(KeyCode.RightArrow)) { //If the constraints are removed, the Rigidbody moves along the z axis //If the constraints are there, no movement occurs m_Rigidbody.velocity = m_ZAxis; }

//Press the left arrow key to move negatively in the z axis if the constraints are removed if (Input.GetKeyDown(KeyCode.LeftArrow)) { m_Rigidbody.velocity = -m_ZAxis; } } }

Properties

NoneNo constraints.
FreezePositionXFreeze motion along the X-axis.
FreezePositionYFreeze motion along the Y-axis.
FreezePositionZFreeze motion along the Z-axis.
FreezeRotationXFreeze rotation along the X-axis.
FreezeRotationYFreeze rotation along the Y-axis.
FreezeRotationZFreeze rotation along the Z-axis.
FreezePositionFreeze motion along all axes.
FreezeRotationFreeze rotation along all axes.
FreezeAllFreeze rotation and motion along all axes.