public void HoverEnter(IconeAreaDeConhecimento icone)
 {
     if (!iconeSelecionado)
     {
         atualizar(icone);
     }
 }
    public void Selecao(IconeAreaDeConhecimento icone)
    {
        AudioManager.instance.TocarSFX("clique");

        if (!icone.selecionado)  // O ícone foi selecionado
        {
            // Marca o último ícone selecionado como falso
            if (iconeSelecionado)
            {
                iconeSelecionado.selecionado = false;
            }

            iconeSelecionado = icone;  // Agora esse ícone será o último selecionado

            // Posiciona o anel de seleção sobre o botão selecionado
            anelDeSelecao.enabled = true;
            var posicaoDoIcone = icone.GetComponent <RectTransform>().anchoredPosition;
            anelDeSelecao.rectTransform.anchoredPosition = posicaoDoIcone;

            atualizar(icone);
            atualizarEstadoDeJogo(icone);
        }
        else  // Cancela a seleção do ícone caso o jogador clique nele de novo
        {
            // Redefine a seleção
            iconeSelecionado      = null;
            anelDeSelecao.enabled = false;

            resetar();
            resetarEstadoDeJogo();
        }

        icone.selecionado = !icone.selecionado;  // Inverte o estado de seleção
    }
    private void atualizarEstadoDeJogo(IconeAreaDeConhecimento icone)
    {
        // Altera o sprite do pequeno guia da página para o sprite do selecionado
        iconManager.SetIcon(2, icone.GetComponent <Image>().sprite);

        // Grava a área de conhecimento escolhida
        EstadoDoJogo.Instance.AreaDeConhecimento        = icone.areaDeConhecimento;
        EstadoDoJogo.Instance.AreaDeConhecimento.sprite = icone.GetComponent <Image>().sprite;

        // Ativar o botão de confirmar agora que há uma seleção
        botaoConfirmar.interactable = true;
    }
    public bool Selecionar(IconeAreaDeConhecimento botao)
    {
        // Se botão não faz parte do grupo, ignorar
        if (!iconesAreaDeConhecimento.Contains(botao))
        {
            return(false);
        }

        var botaoQueEstavaSelecionado = iconeSelecionado;

        if (botaoQueEstavaSelecionado)
        {
            // Se o botão que foi selecionado já estava selecionado, ignorar
            if (botaoQueEstavaSelecionado == botao)
            {
                return(true);
            }

            botaoQueEstavaSelecionado.Selecionado = false;
        }

        botao.Selecionado = true;

        // Posicionar anel de seleção sobre o botão selecionado
        AnelDeSelecao.enabled = true;
        var posicaoDoBotao = botao.GetComponent <RectTransform>().anchoredPosition;

        AnelDeSelecao.rectTransform.anchoredPosition = posicaoDoBotao;

        // Avisar observadores qual é o novo botão selecionado
        QuandoUmElementoForSelecionadoEvent?.Invoke(botao);

        // Gravar no estado do jogo que este é o nível de ensino selecionado
        EstadoDoJogo.Instance.AreaDeConhecimentoSelecionada        = botao.Valor;
        EstadoDoJogo.Instance.AreaDeConhecimentoSelecionada.Sprite = botao.ImageComponent.sprite;

        return(true);
    }
    protected override void OnEnable()
    {
        fundo.sprite = spriteFundo;

        iconManager.ShowIcon(0);
        iconManager.ShowIcon(1);
        iconManager.ShowIcon(2);
        iconManager.ShowIcon(3);

        // Mudar headline com a educação infantil

        if (iconeSelecionado)
        {
            iconManager.SetIcon(2, iconeSelecionado.GetComponent <Image>().sprite);
        }

        // Atualiza qual grupo deve ser exibido no momento

        if (ultimoGrupoAtivo)
        {
            ultimoGrupoAtivo.SetActive(false);
        }

        switch (EstadoDoJogo.Instance.NivelDeEnsino.valor)
        {
        case 0:
            iconesInfantil.SetActive(true);
            titulo.text = "Campos de Experiência";

            if (ultimoGrupoAtivo != iconesInfantil)
            {
                iconeSelecionado      = null;
                anelDeSelecao.enabled = false;

                resetar();
                resetarEstadoDeJogo();
            }

            ultimoGrupoAtivo = iconesInfantil;
            break;

        case 1:
            iconesFundamental.SetActive(true);
            titulo.text = "Áreas de Conhecimento";

            if (ultimoGrupoAtivo != iconesFundamental)
            {
                iconeSelecionado      = null;
                anelDeSelecao.enabled = false;

                resetar();
                resetarEstadoDeJogo();
            }

            ultimoGrupoAtivo = iconesFundamental;
            break;

        case 2:
            iconesMedio.SetActive(true);
            titulo.text = "Áreas de Conhecimento";

            if (ultimoGrupoAtivo != iconesMedio)
            {
                iconeSelecionado      = null;
                anelDeSelecao.enabled = false;

                resetar();
                resetarEstadoDeJogo();
            }

            ultimoGrupoAtivo = iconesMedio;
            break;

        case 3:
            iconesSuperior.SetActive(true);
            titulo.text = "Áreas de Conhecimento";

            if (ultimoGrupoAtivo != iconesSuperior)
            {
                iconeSelecionado      = null;
                anelDeSelecao.enabled = false;

                resetar();
                resetarEstadoDeJogo();
            }

            ultimoGrupoAtivo = iconesSuperior;
            break;

        default:
            break;
        }
    }
 private void atualizar(IconeAreaDeConhecimento icone)
 {
     description.text = icone.areaDeConhecimento.descricao;
 }