Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


RigidbodyConstraints2D

Use these flags to constrain motion of a Rigidbody2D.
Read time 1 minuteLast updated 4 days ago

Definition

  • Type: Enum
  • Namespace: UnityEngine
  • Assembly: UnityEngine.CoreModule
[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.

Examples

using UnityEngine;// This script demonstrates how to freeze the rotation of a Rigidbody2D componentpublic 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

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