RigidbodyConstraints2D

enumeration

Description

Use these flags to constrain motion of a Rigidbody2D.

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.

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); } } }

Properties

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

Did you find this page useful? Please give it a rating: