Buenos dias,
tengo varios cubo en total son 12, necesito que al cargar la escena, se desactiven 7 de ellos ramdomicamente,
lo hago de la siguiente manera: [code] private GameObject[] allitems;
void Start ()
{
allitems = new GameObject[transform.childCount];
int k=0;
foreach(GameObject child in transform)
{
allitems[k] = child;
k++;
}
int i = 0;
while (i<7)
{
allitems[Random.Range(0,transform.childCount)].active=false;
i++;
}
} [/code]
private GameObject[] allitems;
void Start ()
{
allitems = new GameObject[transform.childCount];
int k=0;
foreach(GameObject child in transform)
{
allitems[k] = child;
k++;
}
int i = 0;
while (i<7)
{
allitems[Random.Range(0,transform.childCount)].active=false;
i++;
}
}
y aunque en la sintaxis aparentemente no hay error en el unity si me saca un error "InvalidCastException: Cannot cast from source type to destination type."
Alguien me puede decir como lo corrijo o de que manera lo puedo hacer?
-
Respuesta aceptada
La primera idea que se me ocurre:
1.Inicializas un array dinámico vacio.
2.Rellenas el array de GameObjects con tus 12 cubos.
3.Empiezas a recorrer el array vacio 12 veces(while).
4.Dentro de ese While, pones otro While, en el que te aseguraras que ese indice no esta en la lista dinamica que estás rellenando.De manera que vuelves a buscar un objeto/indice que no este en la lista dinamica hasta que encuentres.
5.Al terminar, tendras un array de enteros, los cuales son los indices aleatorios de tu tabla de objetos, solo te falta recorrer ese array dinamico, deshabilitando de la tabla de objetos con el indice correspondiente.
A ver si me entiendes la idea :)
-
Corrijo:
3.Empiezas a recorrer el array vacio 7 veces(while).
-
0RespuestaPreguntado por hace sk_love_97@hotmail.com
-
3RespuestaPreguntado por hace Rm Studios
-
1ResponderPreguntado por hace link7522
-
0RespuestaPreguntado por hace Jos
-
0RespuestaPreguntado por hace Reshu
|