Unity Basic Course: Limitations on Up and Down Rotation Angles

In game development, the rotation of the camera or character is a very important element. In particular, limiting the angle during up and down rotation helps enhance the player’s experience in the game. In this tutorial, we will learn how to limit the up and down rotation angle of an object in Unity.

1. Understanding the Basics of Unity

Unity is a powerful engine for developing games and interactive content. Unity primarily uses the C# programming language and offers a user-friendly interface. With Unity, you can easily create both 2D and 3D games.

2. Basics of Rotation

Rotation is performed relative to the object’s local axes, typically using Euler angles or quaternions. Up and down rotation is mainly performed around the X-axis and is used to change the viewpoint of the camera or character.

3. Implementing Limits on Up and Down Rotation Angles

To limit the up and down rotation, you need to perform a few tasks. I will explain step by step.

3.1 Preparing the Rotation Script

First, create a new script in your Unity project. Write the following code in the script.

using UnityEngine;

public class CameraController : MonoBehaviour
{
    public float mouseSensitivity = 100f;
    public Transform playerBody;
    float xRotation = 0f;

    void Update()
    {
        float mouseX = Input.GetAxis("Mouse X") * mouseSensitivity * Time.deltaTime;
        float mouseY = Input.GetAxis("Mouse Y") * mouseSensitivity * Time.deltaTime;

        xRotation -= mouseY;
        xRotation = Mathf.Clamp(xRotation, -30f, 30f); // Limit up and down rotation angle

        transform.localRotation = Quaternion.Euler(xRotation, 0f, 0f);
        playerBody.Rotate(Vector3.up * mouseX);
    }
}

3.2 Explaining the Script

  • mouseSensitivity: Adjusts the sensitivity of mouse movement.
  • playerBody: References the character’s body.
  • xRotation: Stores the current up and down angle of the camera.

In this script, xRotation controls the up and down rotation. The Mathf.Clamp() function is used to limit the up and down rotation angle between -30 degrees and 30 degrees.

3.3 Applying the Script

Attach the script you wrote above to the camera object in Unity. Then assign the character’s body connected to the camera to the playerBody field.

4. Testing

Now, when you run the game, you can see the camera rotating up and down as you move the mouse. Check if the angle limit is working properly.

5. Improvements

To refine the up and down rotation limits, you can make a few additional enhancements:

  • Set public variables for the angle limit values so they can be easily adjusted in the inspector.
  • Add a speed adjustment feature to enhance the user experience.

Tip: To make the up and down rotation smooth, you can use the Mathf.Lerp function.

6. Conclusion

In this tutorial, we learned how to limit the up and down rotation angles in Unity. This feature helps make the movement of the camera and character more natural and enhances the immersion in the game. Now you can use these techniques to develop your own games!

7. Additional Resources

If you want more resources related to Unity, please refer to the following links: