private void disposicionGeneradoresObjetos() { int aux = 0; int auxCamera = 0; switch (dificultad) { case 1: aux = Random.Range(0, 2); auxCamera = Random.Range(0, 2); break; case 2: aux = 1; auxCamera = Random.Range(0, 2); break; case 3: aux = Random.Range(1, 3); auxCamera = Random.Range(0, 3); break; case 4: aux = 2; auxCamera = Random.Range(0, 3); break; case 5: aux = Random.Range(2, 4); auxCamera = Random.Range(1, 3); break; case 6: aux = 3; auxCamera = Random.Range(1, 3); break; } if (auxCamera == 1) { cameraPosition = Random.Range(auxCamera, 3); } else if (auxCamera == 2) { cameraPosition = 3; } if (tipoHabitacion == tipo.Entrada || tipoHabitacion == tipo.Banyo) { cameraPosition = 0; } edificio.setCameraPosition(cameraPosition, this.id); aux++; if (tipoHabitacion == tipo.Banyo) { aux = 0; if (reward == ObjetoRecompensa.tipoRecompensa.ninguno) { int auxPuntos = Random.Range(0, 3); if (auxPuntos == 0) { reward = ObjetoRecompensa.tipoRecompensa.conjuntoPuntos; edificio.setReward(reward, this.id); } } } if (reward == ObjetoRecompensa.tipoRecompensa.ninguno) { if (listaTrampas.Count != 0) { aux = listaTrampas.Count; } else { aux--; } if (aux > 0) { bool generoNuevas = true; if (listaTrampas.Count != 0) { generoNuevas = false; } Vector3 position; for (int i = 0; i < aux; i++) { position = limiteIzquierdo; position.x = position.x + (i + 1) * (tHab / (aux + 1)); //print (position.x + " + " + i +" * (" +tHab+" / "+aux+")"); GameObject objeto = Instantiate(generadorPrefab, position, Quaternion.identity); objeto.GetComponent <GeneradorObjetos>().nivel = dificultad; objeto.GetComponent <GeneradorObjetos>().estilo = estilo; GameObject auxObj; if (generoNuevas) { GeneradorObjetos.trapStruct auxItem = new GeneradorObjetos.trapStruct(); auxItem.tipo = GeneradorObjetos.getRandomObject(); auxItem.level = dificultad; auxItem.verticalSpeed = 0; auxObj = objeto.GetComponent <GeneradorObjetos>().generateObjects(auxItem.tipo); if (auxItem.tipo == GeneradorObjetos.tipo.RedLaser) { auxItem.verticalSpeed = getRandomVerticalSpeed(); auxObj.GetComponent <RedLaserController>().setVerticalSpeed(auxItem.verticalSpeed); } listaTrampas.Add(auxItem); } else { if (listaTrampas[i].tipo == GeneradorObjetos.tipo.RedLaser) { auxObj = objeto.GetComponent <GeneradorObjetos>().generateObjects(listaTrampas[i].tipo); auxObj.GetComponent <RedLaserController>().setVerticalSpeed(listaTrampas[i].verticalSpeed); } else { auxObj = objeto.GetComponent <GeneradorObjetos>().generateObjects(listaTrampas[i].tipo); } } objeto.transform.SetParent(this.transform); auxObj.transform.SetParent(this.transform); } edificio.setListaTrampas(listaTrampas, this.id); } } else { Vector3 position; position = limiteIzquierdo; position.x = position.x + (tHab / 2); //print (position.x + " + " + i +" * (" +tHab+" / "+aux+")"); GameObject objeto = Instantiate(generadorPrefab, position, Quaternion.identity); objeto.GetComponent <GeneradorObjetos>().nivel = dificultad; objeto.GetComponent <GeneradorObjetos>().estilo = estilo; GameObject auxObj = objeto.GetComponent <GeneradorObjetos>().generateObjects(GeneradorObjetos.tipo.Recompensa); auxObj.GetComponent <ObjetoRecompensa>().tipoObjeto = reward; objeto.transform.SetParent(this.transform); auxObj.transform.SetParent(this.transform); edificio.setListaTrampas(listaTrampas, this.id); } }