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!
Answer by NoseKills · Oct 05, 2016 at 03:26 PM
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.
Your answer
 
             Follow this Question
Related Questions
Mathf.Lerp not working 0 Answers
Attaching sound to ImageTarget issues 0 Answers
How to add force in random directions? 0 Answers
Collision Detection Not Working (Unity 5.2.3) 5 Answers
Interchangeable animations in a script? 0 Answers