public void Selecao(IconePersonagem 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 }
public void HoverEnter(IconePersonagem icone) { if (!iconeSelecionado) { atualizar(icone); } }
private void atualizar(IconePersonagem icone) { // Ativar sprites do preview corpoPersonagemSelecionada.gameObject.SetActive(true); cabeloPersonagemSelecionada.gameObject.SetActive(true); roupaPersonagemSelecionada.gameObject.SetActive(true); // Alterar o preview da personagem selecionada corpoPersonagemSelecionada.sprite = icone.SpriteCorpo; cabeloPersonagemSelecionada.sprite = icone.SpriteCabelo; roupaPersonagemSelecionada.sprite = icone.SpriteRoupa; }
public bool Selecionar(IconePersonagem icone) { // Se botão não faz parte do grupo, ignorar if (!iconesPersonagem.Contains(icone)) { return(false); } var iconeQueEstavaSelecionado = IconeSelecionado; if (iconeQueEstavaSelecionado) { // Se o botão que foi selecionado já estava selecionado, ignorar if (iconeQueEstavaSelecionado == icone) { return(true); } iconeQueEstavaSelecionado.Selecionado = false; } icone.Selecionado = true; // Posicionar anel de seleção sobre o botão selecionado AnelDeSelecao.enabled = true; var posicaoDoBotao = icone.GetComponent <RectTransform>().anchoredPosition; AnelDeSelecao.rectTransform.anchoredPosition = posicaoDoBotao; // Avisar observadores qual é o novo botão selecionado QuandoUmElementoForSelecionadoEvent?.Invoke(icone); // Gravar no estado do jogo as características da personagem selecionada var estadoDoJogo = EstadoDoJogo.Instance; estadoDoJogo.SpriteCorpoPersonagem = icone.SpriteCorpo; estadoDoJogo.SpriteCabeloPersonagem = icone.SpriteCabelo; estadoDoJogo.SpriteRoupaPersonagem = icone.SpriteRoupa; estadoDoJogo.SpriteIconePersonagem = icone.ImageComponent.sprite; return(true); }
private void atualizarEstadoDeJogo(IconePersonagem icone) { // Altera o sprite do pequeno guia da página para o sprite do selecionado iconManager.SetIcon(0, icone.GetComponent <Image>().sprite); // Grava no estado do jogo as características da personagem selecionada var estadoDoJogo = EstadoDoJogo.Instance; estadoDoJogo.SpriteCorpoPersonagem = icone.SpriteCorpo; estadoDoJogo.SpriteCabeloPersonagem = icone.SpriteCabelo; estadoDoJogo.SpriteRoupaPersonagem = icone.SpriteRoupa; estadoDoJogo.SpriteCorpoPersonagemSentado = icone.SpriteCorpoSentado; estadoDoJogo.SpriteCabeloPersonagemSentado = icone.SpriteCabeloSentado; estadoDoJogo.SpriteRoupaPersonagemSentado = icone.SpriteRoupaSentado; estadoDoJogo.SpriteIconePersonagem = icone.GetComponent <Image>().sprite; // Ativar o botão de confirmar agora que há uma seleção botaoConfirmar.interactable = true; }