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 |
|---|---|
| FreezeAll | Freeze rotation and motion along all axes. |
| FreezePosition | Freeze motion along the X-axis and Y-axis. |
| FreezePositionX | Freeze motion along the X-axis. |
| FreezePositionY | Freeze motion along the Y-axis. |
| FreezeRotation | Freeze rotation along the Z-axis. |
| None | No constraints. |