- Home /
 
Expressions in statements must only be executed for their side effects
Trying a simple opacity animation in UnityScript where I fade out one image and replace it with another... Not sure why I'm getting an error message?
 function FadeInEyes () {
 
     t = 0.0f;
 
     for (t; t < 1.0f; t += Time.deltaTime / 0.2f) {
     
         eyesCanvas.alpha += t;
         earsCanvas.alpha -= t;
         
         yield;
 
     }
 
 }
 
               The earsCanvas and eyesCanvas objects are 2D CanvasGroups. I'm having no trouble changing these with 1 or 0 so not sure why this isn't working.
Thanks in advance!
Answer by Baste · Dec 10, 2014 at 10:59 AM
it's the for loop that's causing you issue. Each of the three parts of the for loop has to be a single valid statement, this one:
 t;
 
               is not a valid statement, and is what's causing the error. The error's saying, in more plain English, that you have a statement that does nothing. In your case, it's the name of a variable that you're not doing anything with.
To fix your issue, move the declaration of t inside the loop:
 for (t = 0.0f; t < 1.0f; t += Time.deltaTime / 0.2f) {
 
               Or, if you're insisting on keeping the declaration outside of the for loop, use an empty statement instead:
 t = 0.0f;
 for (; t < 1.0f; t += Time.deltaTime / 0.2f) {
 
              Your answer
 
             Follow this Question
Related Questions
Whats wrong with this script? 1 Answer
anonymous functions with JavaScript? 2 Answers
Stopping in the middle of an if statment 1 Answer
BCE0077: It is not possible to invoke an expression of type 'float'. 0 Answers
How do I get access to "expression.shout" and "teeth_shout" in Unity C# scripting? 1 Answer