/// <summary> /// /// </summary> /// <param name="grafo"></param> /// <param name="nodos"></param> public void cargarAristasNodos(List <AristaNodo> grafo, List <GameObject> nodos) { foreach (var item in grafo) { GameObject lineaP = Instantiate(lineaNodoPrefab); AristaPrefab arista = lineaP.GetComponent <AristaPrefab>(); foreach (var nodo in nodos) { PlanetaPrebab pp = nodo.GetComponent <PlanetaPrebab>(); DepositoPrefab dp = nodo.GetComponent <DepositoPrefab>(); TeletransportadorPrefab tp = nodo.GetComponent <TeletransportadorPrefab>(); if (pp.planeta.id == item.origenFK) { arista.origen = nodo; item.origen = pp.planeta; } if (pp.planeta.id == item.destinoFK) { arista.destino = nodo; item.destino = pp.planeta; } arista.terminado = true; } } }
public int buscarIdSistema(GameObject nodo) { PlanetaPrebab pp = nodo.GetComponent <PlanetaPrebab>(); DepositoPrefab dp = nodo.GetComponent <DepositoPrefab>(); TeletransportadorPrefab tp = nodo.GetComponent <TeletransportadorPrefab>(); return(pp.planeta.sistemaPlanetarioFK); }
/// <summary> /// Este metodo se encarga de cargar todo el contenido de la nebulosa en la escena: /// -Sistemas planetarios, planetas, teletransportadores,estaciones de combustible. /// </summary> public void cargar(bool isSimulacion) { List <GameObject> SistemaTemporal = new List <GameObject>(); foreach (var item in nebulosa.sistemasPlanetarios) { Vector3 posicion = new Vector3(item.x, item.y, item.z); GameObject sistemaAux = Instantiate(sistemaPlanetarioPrefab, posicion, Quaternion.identity); SistemaplanetarioPrefab spp = sistemaAux.GetComponent <SistemaplanetarioPrefab>(); spp.setSistema(item); spp.isSimulacion = isSimulacion; SistemaTemporal.Add(sistemaAux); GameObject sistema = spp.transform.Find("sistema").gameObject; List <GameObject> nodosTemp = new List <GameObject>(); foreach (var planeta in item.nodos) { Vector3 pos = new Vector3(planeta.x, planeta.y, planeta.z); GameObject aux = Instantiate(planetas[int.Parse(planeta.idModelo)], sistema.transform); aux.GetComponent <PlanetaPrebab>().setPlaneta(planeta); aux.transform.localPosition = pos; if (planeta.teletransportador.planetaFK != 0) { item.tieneTeletransportador = true; Vector3 posTele = aux.transform.position + new Vector3(4, 0, 0); GameObject tele = Instantiate(teletrasnportadorPrefab, aux.transform); tele.transform.position = posTele; tele.transform.localScale = new Vector3(2, 2, 2); TeletransportadorPrefab tp = tele.GetComponent <TeletransportadorPrefab>(); tp.teletransportador = planeta.teletransportador; tp.planeta = aux; } if (planeta.deposito.planetaFK != 0) { item.tieneDeposito = true; Vector3 posTele = aux.transform.position + new Vector3(-4, 0, 0); GameObject deposito = Instantiate(depositoPrefab, aux.transform); deposito.transform.position = posTele; deposito.transform.localScale = new Vector3(2, 2, 2); DepositoPrefab dp = deposito.GetComponent <DepositoPrefab>(); dp.deposito = planeta.deposito; dp.planeta = aux; } nodosTemp.Add(aux); } cargarAristasNodos(item.grafo, nodosTemp); } cargarAristasSistema(nebulosa.grafo, SistemaTemporal); }
IEnumerator crearDepositoCOR() { GameObject tr = sistemaSingleton.prebabSistema.transform.Find("sistema").gameObject; GameObject newSistema = Instantiate(depositoPrefab, tr.transform); while (!Input.GetMouseButtonDown(0)) { Vector3 posMouse; Vector3 pos = Input.mousePosition; Ray ray = Camera.main.ScreenPointToRay(pos); Plane xy = new Plane(Vector3.up, new Vector3(0, -40, 0)); float distance; xy.Raycast(ray, out distance); posMouse = ray.GetPoint(distance); newSistema.transform.position = posMouse; yield return(new WaitForSeconds(0.01f)); } RaycastHit hit; Ray ray2 = Camera.main.ScreenPointToRay(Input.mousePosition); // Does the ray intersect any objects excluding the player layer if (Physics.Raycast(ray2, out hit, Mathf.Infinity, layerDelete)) { Planeta sistema = hit.transform.gameObject.GetComponent <PlanetaPrebab>().planeta; newSistema.transform.position = newSistema.transform.position + new Vector3(-4, 0, 0); Deposito deposito = new Deposito(); deposito.planetaFK = sistema.id; DepositoService.PostDeposito(deposito); newSistema.transform.parent = hit.transform; DepositoPrefab dp = newSistema.GetComponent <DepositoPrefab>(); dp.deposito = deposito; dp.planeta = hit.transform.gameObject; sistema.deposito = deposito; } else { Destroy(newSistema); } }