示例#1
0
    void Update()
    {
        if (ctrlVaiAtePonto.estaNoPonto)
        {
            if (!mesaObtida)
            {
                GameObject gbjMesa = objsEspacos.ObterMaisProximo();
                espacoMesa = gbjMesa.GetComponent <EspacoItem>();

                Assert.IsNotNull(espacoMesa);

                espacoMesa.Abrigar(pedidoItem);

                mesaObtida = true;

                tr.LookAt(espacoMesa.transform);
                tr.eulerAngles = new Vector3(0, tr.eulerAngles.y, 0);
            }
        }
    }
示例#2
0
    void Update()
    {
        // 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();

            tr.LookAt(tr.position + direcao);
        }

        // 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);
            }
        }
    }