Вы пытаетесь получить доступ к массиву, прежде чем проверять, больше ли spriteNumber
, чем массив. Сначала вы должны проверить, находится ли spriteNumber
вне границ, а затем попытаться получить доступ к ObjectSprite
.
void SpriteUpdate()
{
// if we're within the bounds of the array
if (spriteNumber < ObjectSprite.Length)
{
this.GetComponent<SpriteRenderer>().sprite = ObjectSprite[spriteNumber];
}
// if we're outside the bounds of the array
else
{
Instantiate(coin, this.transform.position, Quaternion.identity);
Destroy(this.gameObject);
}
}
Обратите внимание, что условие внутри оператора if было перевернуто; Он будет выполнять код только внутри блока if, когда spriteNumber
на меньше , чем длина массива. Предусмотрено также условие else
, которое будет создавать экземпляр монеты и уничтожать объект, когда это предыдущее условие больше не выполняется (оно выходит за пределы массива).