How to access y rotation of an object as a variable or value

So, after many unsuccessful attempts, I’ve failed to put limitations on how far my camera can rotate. My query; I want to access the y variable of the transform and use the number given to turn a bool on and off.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class RotateCam : MonoBehaviour {

	public static bool GreaterThen;
	public static bool LessThen;
	public Vector3 yValhue;

	void Start(){

		GreaterThen = false;
		LessThen = false;

	void Update () {

		yValhue = Vector3 (0, transform.rotation, 0);

		if (GreaterThen == false) {
			if (Input.GetKeyDown (KeyCode.LeftArrow)) {
				transform.RotateAround (, Vector3.up, 300 * Time.deltaTime * 2);
				if (yValhue = 30) {
					Debug.Log("Oh jeez I guess greater then is off");

		if(LessThen == false){
			if (Input.GetKeyDown (KeyCode.RightArrow)) {
				transform.RotateAround (, Vector3.down, 300 * Time.deltaTime * 2);
				//if (yValhue = 30.0) {
					Debug.Log ("Wow! You're not a big fool after all! Less then ain't runnin' no more.");


I know, I know. I’m definitely new. I ONLY want to set limits on the rotation of the Y axis. Why is it so hard?? I am but a simple boy please have mercy C# gods-

But anyways, thank you in advance.

Hi, we’ve all been there once.

Vector3 is a struct, hence a value type. You cannot assign a struct component directly.
If you did something like :

transform.position.x += 10;

Unity would through an error and give you a hint such as “consider storing the value…”.
You need to do something like :

Vector3 p = transform.position;
p.x += 10;
transform.position = p;

So, you can create a property to access eulerAngles (rotations are Quaternions), and limit it Y value.

Vector3 eulerAngles
    get { return transform.eulerAngles; }
        transform.eulerAngles = new Vector3 (value.x, Mathf.Clamp(value.y, min, max), value.z);

Hope this helps.