コード例 #1
0
    /// <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;
            }
        }
    }
コード例 #2
0
    public int buscarIdSistema(GameObject nodo)
    {
        PlanetaPrebab           pp = nodo.GetComponent <PlanetaPrebab>();
        DepositoPrefab          dp = nodo.GetComponent <DepositoPrefab>();
        TeletransportadorPrefab tp = nodo.GetComponent <TeletransportadorPrefab>();


        return(pp.planeta.sistemaPlanetarioFK);
    }
コード例 #3
0
    /// <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);
    }
コード例 #4
0
    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);
        }
    }