- Home /
Question by
OwlmanMC · Nov 07, 2021 at 04:48 PM ·
3dconstraints
RigidbodyConstraints.FreezePositionX unfreezes rotation
Im having a problem with RigidbodyConstraints.FreezePositionX
When I execute it it unfreezes the rotation of my player Here is my script
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class End : MonoBehaviour
{
public GameObject player;
private void OnTriggerEnter(Collider other)
{
Rigidbody rb = player.GetComponent<Rigidbody>();
rb.constraints = RigidbodyConstraints.FreezePositionX;
}
}
"player" is my player and the Rigidbody is attached to the player
Comment
Best Answer
Answer by Bunny83 · Nov 07, 2021 at 05:13 PM
Well rb.constraints
is a bitmask. You either have to combine all the flags you want to freeze, or just "add" the positionX flag to the mask by using the bitwise or
rb.constraints |= RigidbodyConstraints.FreezePositionX;
To remove a bit from a bitflag you would do
rb.constraints &= ~RigidbodyConstraints.FreezePositionX;
As I said, in order to set the mask to a certain combination you just would do this
rb.constraints = RigidbodyConstraints.FreezePositionX | RigidbodyConstraints.FreezeRotationX;
This would freeze the position on x and the rotation on x.