Mathf.Lerp Time problems.

void Update () {

		EmSourse.GetComponent<Renderer> ().material.color = LightColour;
		EmSourse.GetComponent<Renderer> ().material.SetColor("_EmissionColor", LightColour * EmStregh);
//		mylight.GetComponent<Light> ().light.color = new Color (LightColour);

		Ray ray = camera.ScreenPointToRay (Input.mousePosition);
		RaycastHit hit;



		if (Physics.Raycast (ray, out hit)) {


			if (Input.GetMouseButtonDown (0) && hit.collider.tag == "swich") {

				klick = !klick;
			

			}
		}


		if (klick == true) {
																			
				t += SwichSpeed * Time.deltaTime;
				mylight.intensity = Mathf.Lerp (0.0f, 2.0f, t);

				EmStregh = Mathf.Lerp (0.0f, 30.0f, t);

				Quaternion targetRotation = Quaternion.Euler (25, 0, 0);
				mySwich.transform.localRotation = Quaternion.Slerp (transform.localRotation, targetRotation, t);

			} 


			else {
				
				t += SwichSpeed * Time.deltaTime;
				mylight.intensity = Mathf.Lerp (2.0f, 0.0f, t);

				EmStregh = Mathf.Lerp (30.0f, 0.0f, t);

				Quaternion targetRotation = Quaternion.Euler (-25, 0, 0);
				mySwich.transform.localRotation = Quaternion.Slerp (transform.localRotation, targetRotation, t);


			}

		
		
				
			
				
				
					


			



			
		}

Hi I have here a swich with a lamp ist all working fine but with no smoose transition. I get that i need to do something with “t” varible but I dont know specifically what to do here.Can you help me? Thank You!

You are not resetting t anywhere and you add to it in both the if and else blocks. After the update has run a little while and t grows over 1, every transition will be instant.

mylight.intensity = Mathf.Lerp (0.0f, 2.0f, t);
...
mylight.intensity = Mathf.Lerp (2.0f, 0.0f, t);

You need to reset t to 0 at the same time as you change the value of klick so that every transition starts from 0.