build error

So my game works fine in the editor but in the build it doesn’t. I checked “output_log.txt” and it keeps giving me this error

(Filename: Line: -1)
IndexOutOfRangeException: Array index is out of range.
at bad_002+$color_rotate$4+$.MoveNext () [0x00000] in :0

I had this error earlier in the editor but fixed it but the error is still in the build even after rebuilding it

here are the scripts its talking about.

bad_002.js

var moveRangeY:float=0;
var moveRangeX:float=0;
var numberOfClicks001:int=0;
var numberOfClicks002:int=0;
var respawnWaitTime:float=0;
var shapeColor:Color[ ];
var hitPoints:int=0;
var boom1:Transform;//spawn particle effect
var type:int=0;
var num1=0;
color_change ();
transform.position = Vector3(Mathf.Floor(Random.Range(-1 * moveRangeX,moveRangeX)),Mathf.Floor(Random.Range(-1 * moveRangeY,moveRangeY)),0);
if(type==1)
{
renderer.enabled=false;
yield WaitForSeconds (11);
renderer.enabled=true;
}
function Update ()
{
if(numberOfClicks001 <= 0)
{
Instantiate (boom1, transform.position, transform.rotation);//spawn particle effect
var pos = Vector3(Mathf.Floor(Random.Range(-1 * moveRangeX,moveRangeX)),Mathf.Floor(Random.Range(-1 * moveRangeY,moveRangeY)),0);
respawn_delay ();
transform.position = pos;
numberOfClicks001=numberOfClicks002;
}
if (type==1)
{
color_rotate();
}
}
//bad respawn delay
function respawn_delay ()
{
if (type == 0)
{
renderer.enabled=false;
color_change ();
yield WaitForSeconds (Random.Range(1,4));
renderer.enabled=true;
}
else
{
renderer.enabled=false;
color_change ();
yield WaitForSeconds (respawnWaitTime);
renderer.enabled=true;
}
}
//change collour to random
function color_change ()
{
var newColor = Random.Range(0,shapeColor.Length);
renderer.material.color = shapeColor[newColor];
}
function color_rotate ()
{
num1–;
yield WaitForSeconds (0.05);
if(num1==0)
{
num1=11;
}
renderer.material.color = shapeColor[num1];
}
var moveRangeY:float=0;
var moveRangeX:float=0;
var numberOfClicks001:int=0;
var numberOfClicks002:int=0;
var respawnWaitTime:float=0;
var shapeColor:Color[ ];
var hitPoints:int=0;
var boom1:Transform;//spawn particle effect
var type:int=0;
var num1=0;
color_change ();
transform.position = Vector3(Mathf.Floor(Random.Range(-1 * moveRangeX,moveRangeX)),Mathf.Floor(Random.Range(-1 * moveRangeY,moveRangeY)),0);
if(type==1)
{
renderer.enabled=false;
yield WaitForSeconds (11);
renderer.enabled=true;
}
function Update ()
{
if(numberOfClicks001 <= 0)
{
Instantiate (boom1, transform.position, transform.rotation);//spawn particle effect
var pos = Vector3(Mathf.Floor(Random.Range(-1 * moveRangeX,moveRangeX)),Mathf.Floor(Random.Range(-1 * moveRangeY,moveRangeY)),0);
respawn_delay ();
transform.position = pos;
numberOfClicks001=numberOfClicks002;
}
if (type==1)
{
color_rotate();
}
}
//bad respawn delay
function respawn_delay ()
{
if (type == 0)
{
renderer.enabled=false;
color_change ();
yield WaitForSeconds (Random.Range(1,4));
renderer.enabled=true;
}
else
{
renderer.enabled=false;
color_change ();
yield WaitForSeconds (respawnWaitTime);
renderer.enabled=true;
}
}
//change collour to random
function color_change ()
{
var newColor = Random.Range(0,shapeColor.Length);
renderer.material.color = shapeColor[newColor];
}
function color_rotate ()
{
num1–;
yield WaitForSeconds (0.05);
if(num1==0)
{
num1=11;
}
renderer.material.color = shapeColor[num1];
}

please help.

First, please read Using Code Tags Properly.

The error is probably on this line:

renderer.material.color = shapeColor[num1];

when num1 is 11. Make sure that shapeColor.Length is at least 12 before setting num1=11.

That was originally my error but I fixed it my problem is the error still happens in the build when it works fine in the editor even after rebuilding.

Make sure num1 is a valid index for the array. It starts at 0:

var num1=0;

Then the first thing you do is decrement it, so it’s -1:

num1--;

which means this:

renderer.material.color = shapeColor[num1];

is the same as:

renderer.material.color = shapeColor[-1];

which is invalid.

Instead of this:

renderer.material.color = shapeColor[num1];

use this:

if (0 <= num1 && num1 < shareColor.Length) {
    renderer.material.color = shapeColor[num1];
} else {
    Debug.LogError("num1 is invalid!");
}

In the inspector it sets to to 11 when the game starts

Try that last bit of code I recommended. It will log in output_log.txt if the index is invalid.