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!

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) {