# RigidbodyConstraints2D

> Use these flags to constrain motion of a Rigidbody2D.

## Definition

* **Type:** Enum
* **Namespace:** [UnityEngine](/engine/6000.5/script-reference/unityengine.md)
* **Assembly:** UnityEngine.CoreModule

```csharp
[Flags]
public enum RigidbodyConstraints2D
```

## Remarks

Common use cases include:

* Freezing rotation for characters that shouldn't rotate when moving, such as in platformers.
* Freezing the X axis for objects that should only move vertically, such as elevators.
* Freezing the Y axis for objects that should only move horizontally, such as platforms that characters jump on.

**Note:** You can combine multiple constraints using the bitwise OR operator (|) to create custom combinations of frozen axes.

Additional Resources: [Rigidbody2D.constraints](/engine/6000.5/script-reference/unityengine/rigidbody2d/constraints.md).

## Examples

```csharp
using UnityEngine;

// This script demonstrates how to freeze the rotation of a Rigidbody2D component
public class Example : MonoBehaviour
{
    private Rigidbody2D rb;

    private void Awake()
    {
        // Fetch the Rigidbody2D component
        rb = GetComponent<Rigidbody2D>();
        // Freeze the rotation of the Rigidbody2D component
        rb.constraints = RigidbodyConstraints2D.FreezeRotation;
    }

    private void Update()
    {
        // If the space key is pressed, add an impulse force to the Rigidbody2D component
        if (Input.GetKeyDown(KeyCode.Space))
        {
            rb.AddForce(Vector2.up * 10, ForceMode2D.Impulse);
        }
    }
}
```

## Fields

| Value                                                                                                    | Description                                |
| -------------------------------------------------------------------------------------------------------- | ------------------------------------------ |
| [FreezeAll](/engine/6000.5/script-reference/unityengine/rigidbodyconstraints2d/freezeall.md)             | Freeze rotation and motion along all axes. |
| [FreezePosition](/engine/6000.5/script-reference/unityengine/rigidbodyconstraints2d/freezeposition.md)   | Freeze motion along the X-axis and Y-axis. |
| [FreezePositionX](/engine/6000.5/script-reference/unityengine/rigidbodyconstraints2d/freezepositionx.md) | Freeze motion along the X-axis.            |
| [FreezePositionY](/engine/6000.5/script-reference/unityengine/rigidbodyconstraints2d/freezepositiony.md) | Freeze motion along the Y-axis.            |
| [FreezeRotation](/engine/6000.5/script-reference/unityengine/rigidbodyconstraints2d/freezerotation.md)   | Freeze rotation along the Z-axis.          |
| [None](/engine/6000.5/script-reference/unityengine/rigidbodyconstraints2d/none.md)                       | No constraints.                            |
