示例#1
0
        public static bool LocalSeguro()
        {
            bool       retorno    = false;
            NomesCenas nomeDaCena = NomesCenas.cavernaIntro;

            try
            {
                nomeDaCena = (NomesCenas)System.Enum.Parse(typeof(NomesCenas), SceneManager.GetActiveScene().name);
            }
            catch
            {
                //Debug.Log("cena indisponivel");
            }

            switch (nomeDaCena)
            {
            case NomesCenas.katidsTerrain:
                retorno = LocaisSegurosDeKatidesTerrain.LocalSeguro();
                break;

            case NomesCenas.TempleZone:
                retorno = LocaisSegurosDeTempleZone.LocalSeguro();
                break;

            case NomesCenas.Marjan:
                retorno = LocaisSegurosDeMarjan.LocalSeguro();
                break;
            }
            return(retorno);
        }
示例#2
0
    public static void CarregarCenas(NomesCenas[] nomesCenas, NomesCenas cenaComum = NomesCenas.nula)
    {
        GameObject  G         = new GameObject();
        SceneLoader loadScene = G.AddComponent <SceneLoader>();

        loadScene.CenaDoCarregamento(nomesCenas, cenaComum);
    }
示例#3
0
    public static void OnFadeOutComplete(NomesCenas[] cenasAlvo, NomesCenas estaCenaAtiva, Vector3 pos)
    {
        posAlvo = pos;

        if (estaCenaAtiva != NomesCenas.nula)
        {
            cenaAtiva = estaCenaAtiva;
        }
        else
        {
            cenaAtiva = cenasAlvo[0];
        }

        Time.timeScale     = 0;
        contCenasCaregadas = 0;

        NomesCenas[] N = SceneLoader.DescarregarCenasDesnecessarias(cenasAlvo);

        for (int i = 0; i < N.Length; i++)
        {
            SceneManager.UnloadSceneAsync(N[i].ToString());
        }

        N = SceneLoader.PegueAsCenasPorCarregar(cenasAlvo);

        numCenasParaCarregar = N.Length;

        for (int i = 0; i < N.Length; i++)
        {
            SceneManager.LoadScene(N[i].ToString(), LoadSceneMode.Additive);
        }

        SceneManager.sceneLoaded += OnSceneLoaded;
    }
示例#4
0
 public UltimoArmagedomVisitado(Vector3 pos, NomesCenas cena)
 {
     V = new float[3] {
         pos[0], pos[1], pos[2]
     };
     nomeDaCena = cena;
 }
示例#5
0
        public void SetarCenasAtivas(NomesCenas[] cenasAtivas)
        {
            this.cenasAtivas = new List <NomesCenas>();

            this.cenasAtivas.AddRange(cenasAtivas);

            cenaAtiva = cenasAtivas[0];
        }
示例#6
0
 public void CenaDoCarregamento(NomesCenas[] nomesCenas, NomesCenas cenaComum = NomesCenas.nula)
 {
     this.cenaComum = cenaComum;
     DontDestroyOnLoad(gameObject);
     cenasParaCarregar = nomesCenas;
     SceneManager.LoadScene(NomesCenas.CenaDeCarregamento.ToString());
     SceneManager.sceneLoaded += IniciarCarregamento;
 }
示例#7
0
    public void SetarCenasAtivas(NomesCenas[] cenasAtivas)
    {
        this.cenasAtivas = new List <NomesCenas>();
        for (int i = 0; i < cenasAtivas.Length; i++)
        {
            this.cenasAtivas.AddRange(cenasAtivas);
        }

        cenaAtiva = cenasAtivas[0];
    }
示例#8
0
    public DadosDeCena GetSceneDates(string nome)
    {
        NomesCenas s = StringParaEnum.ObterEnum <NomesCenas>(nome, true);

        //Debug.Log(s+" : "+default(NomesCenas));

        if (s != default(NomesCenas))
        {
            return(GetSceneDates(s));
        }

        return(null);
    }
示例#9
0
    public DadosDeCena GetSceneDates(NomesCenas nome)
    {
        for (int i = 0; i < meusDados.Count; i++)
        {
            if (meusDados[i].nomeDaCena == nome)
            {
                return(meusDados[i]);
            }
        }

        Debug.Log("Parece que não foi encontrada a cena no dicionario");

        return(null);
    }
        public static void FacaModificacoes()
        {
            NomesCenas nomeDaCena = (NomesCenas)System.Enum.Parse(typeof(NomesCenas),
                                                                  SceneManager.GetActiveScene().name
                                                                  );

            switch (nomeDaCena)
            {
            case NomesCenas.petrolifera:
            case NomesCenas.esgoto:
                GameObject.Find("Directional Light").GetComponent <Light>().intensity = 0;
                break;
            }
        }
示例#11
0
        public void SetarCenasAtivas()
        {
            NomesCenas[] nomesDeCenas = (NomesCenas[])(System.Enum.GetValues(typeof(NomesCenas)));
            cenasAtivas = new List <NomesCenas>();

            for (int i = 0; i < nomesDeCenas.Length; i++)
            {
                if (SceneManager.GetSceneByName(nomesDeCenas[i].ToString()).isLoaded)
                {
                    cenasAtivas.Add(nomesDeCenas[i]);
                }
            }

            cenaAtiva = (NomesCenas)System.Enum.Parse(typeof(NomesCenas), SceneManager.GetActiveScene().name);
        }
    public void VerifiqueLimitantesParaMudeCena(NomesCenas cenaAlvo)
    {
        if (camLimits != null)
        {
            if (camLimits.Length > 0)
            {
                limitantes = (DadosDeCena.LimitantesDaCena)GlobalController.g.SceneDates.GetSceneDates(cenaAlvo).limitantes.Clone();

                for (int i = 0; i < camLimits.Length; i++)
                {
                    AltereLimitante(camLimits[i]);
                }

                SceneManager.activeSceneChanged += ModifiqueLimitantesAct;
                SceneManager.sceneLoaded        += ModifiqueLimitantes;
            }
        }
    }
    public void MudeLimitantesParaTrigger(NomesCenas cenaAlvo, float tempoDeLerpLimits)
    {
        limitantes = (DadosDeCena.LimitantesDaCena)GlobalController.g.SceneDates.GetSceneDates(cenaAlvo).limitantes.Clone();

        if (camLimits != null)
        {
            if (camLimits.Length > 0)
            {
                //Debug.Log("send event A" + limitantes.xMax + " : " + tempoDeLerpLimits);

                for (int i = 0; i < camLimits.Length; i++)
                {
                    AltereLimitante(camLimits[i]);
                }
            }
        }


        EventAgregator.Publish(new StandardSendGameEvent(EventKey.requestChangeCamLimits, limitantes, tempoDeLerpLimits));
    }
示例#14
0
    /*Essa função precisa de grandes melhorias*/
    void TentarSetarCena(NomesCenas s)
    {
        DadosDeCena dd = null;

        bool foi = false;

        foreach (DadosDeCena d in meusDados)
        {
            if (d.nomeDaCena == s)
            {
                foi = true;
                dd  = d;
            }
        }

        if (foi)
        {
            if (dd.limitantes.xMax == dd.limitantes.xMin)
            {
                GameObject G = GameObject.Find("startBlock");
                if (G != null)
                {
                    dd.limitantes.xMin = G.transform.position.x;
                    dd.limitantes.yMin = G.transform.position.y;
                }

                G = GameObject.Find("endBlock");
                if (G != null)
                {
                    dd.limitantes.xMax = G.transform.position.x;
                    dd.limitantes.yMax = G.transform.position.y;
                }
            }
        }
        else
        {
            GameObject G1 = GameObject.Find("startBlock");
            GameObject G2 = GameObject.Find("endBlock");

            if (G1 != null && G2 != null)
            {
                Vector3 V1 = G1.transform.position;
                Vector3 V2 = G2.transform.position;

                meusDados.Add(new DadosDeCena()
                {
                    bkColor    = new Color(.25f, .35f, .75f),
                    limitantes = new DadosDeCena.LimitantesDaCena()
                    {
                        xMin = V1.x,
                        xMax = V2.x,
                        yMax = V2.y,
                        yMin = V1.y
                    },
                    nomeDaCena = s
                });
            }
            else
            {
                Debug.LogWarning("startBlock e endBlock não inseridos");
            }
        }
    }
示例#15
0
 public static void CarregarCenas(NomesCenas nomeCena, NomesCenas cenaComum = NomesCenas.nula)
 {
     CarregarCenas(new NomesCenas[1] {
         nomeCena
     }, cenaComum);
 }
示例#16
0
 public static bool EstaCenaEstaCarregada(NomesCenas nome)
 {
     return(SceneManager.GetSceneByName(nome.ToString()).isLoaded);
 }
示例#17
0
 AsyncOperation AditiveLoadScene(NomesCenas n)
 {
     return(SceneManager.LoadSceneAsync(n.ToString(), LoadSceneMode.Additive));
 }