- Home /
 
I am working with first person controller, I cant control the clamp of main camera to specific rotation
Hi, I have a problem with my First Person Controller. I have attached player movement to FirstPerson and Mouselook script to camera. The project is a 3D Model house. Now my aim is whenever I'm near a wall and facing it, my camera rotation from left to right should be clamped between -90 and 90. other than that I should be able to rotate 360 degree. I really have no idea about how to clamp a camera rotation for left and right. i have attached an object and made it to trigger whenever it hits the object with tag Wall. i attached a separate script for trigger. but its not working. I really feel I have no control over my camera rotation.
pls find my scripts using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI;
 public class PlayerMovenent : MonoBehaviour
 {
     public CharacterController controller;
 
     public float speed = 10f;
 
     void Start()
     {
         
     }
 
     // Update is called once per frame
     void Update()
     {
         float x = Input.GetAxis("Horizontal") * speed;
         float z = Input.GetAxis("Vertical") * speed;
 
         Vector3 forwardMove =  transform.forward * z;
         Vector3 rightMove = transform.right * x;
 
         controller.SimpleMove(forwardMove + rightMove);
 
     }
 
               My Mouselook script
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 
 public class MouseLook : MonoBehaviour
 {
     public float mouseSensitivity = 100f;
 
     [SerializeField] private Transform playerBody;
 
     float xRotation = 0.0f;
 
 
     // Start is called before the first frame update
     void Start()
     {
         
     }
 
     // Update is called once per frame
     void Update()
     {
         Cursor.lockState = CursorLockMode.Confined;
 
         if(Input.GetKeyDown("escape"))
         {
             Cursor.lockState = CursorLockMode.None;
         }
 
 
         float mouseX = Input.GetAxis("Mouse X") * mouseSensitivity * Time.deltaTime; 
         float mouseY = Input.GetAxis("Mouse Y") * mouseSensitivity * Time.deltaTime;
 
         xRotation += mouseY;
 
         if(xRotation > 90.0f)
         {
             xRotation = 90.0f;
                 mouseY = 0.0f;
             ClampXAxisRotationToValue(270.0f);
         }
             
         else if(xRotation < -90.0f)
         {
             xRotation = -90.0f;
             mouseY = 0.0f;
             ClampXAxisRotationToValue(90.0f);
         }
 
         transform.Rotate(Vector3.left * mouseY);
         playerBody.Rotate(Vector3.up * mouseX);
 
     }
 
     private void ClampXAxisRotationToValue(float value)
     {
         Vector3 eulerRotation = transform.eulerAngles;
         eulerRotation.x = value;
         transform.eulerAngles = eulerRotation;
     }
         
 }
 
 
               My new trigger script, I have even tried attaching this to main camera but still not working
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 
 public class wallcontroler : MonoBehaviour
 {
     private float yaw = 0f;
     private float pitch = 0f;
     private float minAngle = -90f;
     private float maxAngle = 90f;
 
     //Rotation Value
     void Update()
     {
         //OnTriggerEnter(Collider collision);
     }
 
     void OnTriggerEnter(Collider collision)
     {
         if(collision.gameObject.tag == "Wall")
         {
             pitch = Mathf.Clamp(pitch, minAngle, maxAngle);
             yaw = Mathf.Clamp(yaw, minAngle, maxAngle);
             transform.eulerAngles = new Vector3(pitch, yaw, 0f);
 
         }
     }
 }
 
 
              Your answer
 
             Follow this Question
Related Questions
I want the camera, which is following my spaceship, to rotate to wherever the cursor is looking 0 Answers
colliding with child trigger? 0 Answers
How do you find the tag of the object that is a trigger? 1 Answer
Camera won't rotate while holding WASD keys 0 Answers
triggers and going through objects 2 Answers