Você vai fazer algo assim:
public int[] ZumbisNormais;
public int[] ZumbisRaros;
Depois você vai lá no Editor no Inspector colocar um tamanho no seu array (size) e preencher com os elementos que você, lembre-se de não deixar size sobrando.
Então vamos supor que os normais são 1,4,5,6,7,8,9,10
e os raros 2, 3
. Você nem sempre precisa preencher pelo inspector se quiser você pode deixar direto no código tipo int[] zumbisNormais = {1, 4, 6 }
.
Depois é só aleatorizar um desses números:
int porcentagem = Random.Range(0, 100);
if(porcentagem >= 90) {
tipo = ZumbisNormais[Random.Range(0, ZumbisNormais.Length)];
// aqui vai vir o número do tipo
}
else {
tipo = ZumbisRaros[Random.Range(0, ZumbisRaros.Length)];
}
Se quiser deixar esse código mais bonitinho você poderia fazer algo assim:
int porcentagem = Random.Range(0, 100);
var tiposParaEscolher = porcentagem >= 90 ? ZumbisNormais : ZumbisRaros;
tipo = tiposParaEscolher[Random.Range(0, tiposParaEscolher.Length)];
A variável tiposParaEscolher
vai receber qual das duas listas você vai aleatorizar e você pode mduar esse lógica, e depois pegamos um elemento da lista de 0
(primeiro elemento) até o último que é o tamanho do array.
ps.: na Unity não precisamos fazer tamanho - 1 que seria o último elemento de fato porque o Random.Range de ints excluí o último elemento.