Ejemplo n.º 1
0
        void Update()
        {
            if (SistemaPausa.pausado)
            {
                return;
            }

            if (ctrlVaiAtePonto.estaNoPonto)
            {
                if (!mesaObtida)
                {
                    mesaObtida = true;

                    GameObject gbjMesa = objsEspacos.ObterMaisProximo();
                    espacoMesa = gbjMesa.GetComponent <EspacoItem>();
                    Assert.IsNotNull(espacoMesa);

                    espacoMesa.Abrigar(pedidoItem);

                    Vector3 pontoOlhar = new Vector3(
                        espacoMesa.transform.position.x,
                        tr.position.y,
                        espacoMesa.transform.position.z
                        );

                    ctrlCliente.OlharPonto(pontoOlhar);
                    // var rotY = new Vector3(0, tr.eulerAngles.y, 0);
                    // tr.eulerAngles = rotY;
                }
                else if (!bolhaSolta && espacoMesa.Vazio())
                {
                    bolhaSolta = true;
                    bolha.Exibir();
                }
            }
        }
Ejemplo n.º 2
0
        IEnumerator InstanciarPrato(int i_trancacao, Vector3 pos, int cor_prato)
        {
            var pratoGbj = Instantiate <GameObject>(
                transacoes[i_trancacao].saida, pos, Quaternion.identity
                );

            pratoGbj.SetActive(false);

            var pratoPrato = pratoGbj.GetComponent <Prato>();

            pratoPrato.cor_i = cor_prato;
            temporizador.Iniciar(pratoPrato.tempoPreparo);
            yield return(new WaitForSeconds(pratoPrato.tempoPreparo));

            pratoGbj.SetActive(true);

            var novoItemItem = pratoGbj.GetComponent <Item>();

            Assert.IsNotNull(novoItemItem);

            espacoBalcao.Abrigar(novoItemItem);

            tinhaPrato = true;
        }
Ejemplo n.º 3
0
        void Update()
        {
            if (SistemaPausa.pausado)
            {
                compVelocidade.direcao.x  = 0;
                compVelocidade.direcao.y  = 0;
                compVelocidade.direcao.z  = 0;
                compVelocidade.velocidade = 0;

                return;
            }

            // rotação e direção
            float H = ctrl.ctrlValores.eixoHorizontal;
            float V = ctrl.ctrlValores.eixoVertical;

            direcao.x = 0;
            direcao.y = 0;
            direcao.z = 0;
            if ((H < -0.1f || H > 0.1f) || (V < -0.1f || V > 0.1f))
            {
                if (H < -0.1f)
                {
                    direcao.x = -1;
                }
                else if (H > 0.1f)
                {
                    direcao.x = 1;
                }

                if (V < -0.1f)
                {
                    direcao.z = -1;
                }
                else if (V > 0.1f)
                {
                    direcao.z = 1;
                }

                direcao.Normalize();

                Vector3    pontoOlhar = tr.position + direcao;
                Quaternion rotBkup    = olhador.rotSuave.tr.rotation;
                tr.LookAt(pontoOlhar);
                olhador.alvo = pontoOlhar;
                olhador.rotSuave.tr.rotation = rotBkup;
            }
            else
            {
                olhador.alvo = tr.position + tr.forward;
            }

            // velocidade
            compVelocidade.direcao.x  = 0;
            compVelocidade.direcao.y  = 0;
            compVelocidade.direcao.z  = Mathf.Ceil(direcao.magnitude);
            compVelocidade.velocidade = ctrl.velocidade;

            // pegar ou soltar item
            if (ctrl.ctrlValores.eixoAcao1)
            {
                if (!espacoItem.Vazio())
                {
                    Item item = espacoItem.Soltar();

                    // !espacoItem.Vazio() deve assegurar que item soltado não seja nula!
                    Assert.IsNotNull(item);

                    if (!listaDeEspacosItensProximas.Vazio())
                    {
                        GameObject espacoGbj = listaDeEspacosItensProximas.ObterMaisProximo();

                        // !listaDeEspacosItensProximas.Vazio() deve assegurar que espacoGbj não seja nula!
                        Assert.IsNotNull(espacoGbj);

                        var espacoItemProximo = espacoGbj.GetComponent <EspacoItem>();

                        // espacoGbj deve conter um componente Espacoitem
                        Assert.IsNotNull(espacoItemProximo);

                        espacoItemProximo.Abrigar(item);
                    }
                }
                else if (!listaDeItensProximos.Vazio())
                {
                    // a verificação de Vazio acima garante que ObterMaisProximo não retornará nula
                    GameObject itemGbj = listaDeItensProximos.ObterMaisProximo();

                    // !listaDeItensProximos.Vazio() deve assegurar que itemGbj não seja nula
                    Assert.IsNotNull(itemGbj);

                    var item = itemGbj.GetComponent <Item>();

                    // itemGbj deve conter um componente Item
                    Assert.IsNotNull(item);

                    espacoItem.Abrigar(item);
                }
            }
        }