Lock position and rotation in Unity C#

Lock position and rotation in Unity C#

To lock the position and rotation of an object while pressing a key in Unity, you can use the following steps:

  1. Create a script and attach it to the object that you want to lock the position and rotation for.
  2. In the script, define the key that you want to use to lock the position and rotation. For example:

public KeyCode lockKey = KeyCode.L;


  1. In the Update function of the script, check if the key is being pressed:
void Update()
{
    if (Input.GetKey(lockKey))
    {
        // Lock the position and rotation here
    }
}


  1. To lock the position and rotation of the object, you can use the Rigidbody component and set the freezePosition and freezeRotation properties to true:
void Update()
{
    if (Input.GetKey(lockKey))
    {
        GetComponent<Rigidbody>().constraints = RigidbodyConstraints.FreezePosition | RigidbodyConstraints.FreezeRotation;
    }
}


Alternatively, you can use the Transform component to set the position and rotation directly:

void Update()
{
    if (Input.GetKey(lockKey))
    {
        transform.position = transform.position;
        transform.rotation = transform.rotation;
    }
}


This will lock the position and rotation of the object while the key is being pressed. You can modify this code to fit your specific needs.