Вы почти закончили, ошибка пытается сказать, что вы используете float вместо int.
Индекс массива может быть только целым числом в вашей строке:
zomz[unonumero] = Instantiate(regzom, spawns[Mathf.Round(Random.Range(0f, 10f))]);
Вы используете Mathf.Round(Random.Range(0f, 10f))
, чтобы получить случайное число, а затем округлить его, и это мудрый выбор, поэтому у вас есть случайное число с плавающей точкой, например, 2.4f, округленное до 2.0f, проблема в том, что это все еще число с плавающей точкой, а не целое число.
У Matfh есть классный метод Round, который дает вам целое число, вы можете использовать это Mathf.RoundToInt()
, например:
zomz[unonumero] = Instantiate(regzom, spawns[Mathf.RoundToInt(Random.Range(0f, 10f))]);
Надеюсь, это ясно:)