[RESOLVIDO] Qual é a função para retirar uma textura da tela do jogo?
3 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Qual é a função para retirar uma textura da tela do jogo?
Boa noite galera. Então, estou criando um jogo no qual tem interação ao público infantil. No jogo quando o jogador errar eu preciso que apareça uma textura na tela, no qual eu fiz uma imagem de um "X", e depois de um certo tempo (2 segundos) desapareça. Utilizei um vídeo de um administrador aqui do fórum para o meu jogo. No jogo, até aparece a textura, só que não some. Porque eu não sei qual função faz isso.
OBS: Eu não posso fazer com que ele destrua o GameObject para a textura sumir. Pois a imagem no qual eu quero mostrar na tela durante alguns segundos se repetirá quantas vezes o jogador errar.
Aqui está o código:
Eu não botei o código inteiro porque ele está gigante. Então considere as variáveis (tempo, sinalCerto, sinalErrado, lixoCerto, lixoErrado) declaradas.
vídeo que utilizei como base: https://www.youtube.com/watch?v=w_HaXk_uyaw
Por favor, quem puder ajudar me fará uma grandeeeee favorzão.
OBS: Eu não posso fazer com que ele destrua o GameObject para a textura sumir. Pois a imagem no qual eu quero mostrar na tela durante alguns segundos se repetirá quantas vezes o jogador errar.
Aqui está o código:
- Código:
void OnGUI (){
if (lixoCerto || lixoErrado == true)
{
if (lixoCerto)
{
GUI.DrawTexture(new Rect(Screen.width/4,0,Screen.width/2,Screen.height), sinalCerto);
}else if (lixoErrado){
GUI.DrawTexture(new Rect(Screen.width/4,0,Screen.width/2,Screen.height), sinalErrado);
}
tempo += Time.deltaTime;
if (tempo > 2)
{
//SCRIPT PARA RETIRAR A TEXTURA DA TELA.
}
}
Eu não botei o código inteiro porque ele está gigante. Então considere as variáveis (tempo, sinalCerto, sinalErrado, lixoCerto, lixoErrado) declaradas.
vídeo que utilizei como base: https://www.youtube.com/watch?v=w_HaXk_uyaw
Por favor, quem puder ajudar me fará uma grandeeeee favorzão.
gersoneson- Membro
- PONTOS : 1853
REPUTAÇÃO : 6
Respeito as regras :
Re: [RESOLVIDO] Qual é a função para retirar uma textura da tela do jogo?
Esse sistema usando GUI deve ser bem antigo.
Montei um exemplo de como seria isso que você quer só que no sistema UI, que é o atual.
Baixe aí e tente adaptar ao seu projeto
https://drive.google.com/open?id=1mX_QzA8kGdaNOKEbbz1vblV2GZQtlYva
Script que usei, caso alguém venha com uma dúvida similar mas já tenha um projeto usando UI.
Montei um exemplo de como seria isso que você quer só que no sistema UI, que é o atual.
Baixe aí e tente adaptar ao seu projeto
https://drive.google.com/open?id=1mX_QzA8kGdaNOKEbbz1vblV2GZQtlYva
Script que usei, caso alguém venha com uma dúvida similar mas já tenha um projeto usando UI.
- Código:
using System.Collections;
using UnityEngine;
using UnityEngine.UI;
public class MostrarResultado : MonoBehaviour
{
public Sprite imagemAcerto;
public Sprite imagemErro;
public Image imagemResultado;
private void Start() //Aqui chamo a função na Start, mas você deve chamar pelo seu código, passando "true" caso a resposta esteja certa, e "false" caso esteja errada.
{
ExibirResultado(true); //Apenas um exemplo de utilização.
}
public void ExibirResultado(bool acertou)
{
imagemResultado.sprite = acertou == true ? imagemAcerto : imagemErro; //muda o sprite da Imagem conforme a bool acertou
imagemResultado.enabled = true; //Ativa o componente da imagem, deixando-a visível.
StartCoroutine(Cronometro()); //Inicia a contagem de tempo
}
public IEnumerator Cronometro()
{
yield return new WaitForSeconds(2); //Aguarda dois segundos, caso queira utilizar uma fração de tempo use o padrão (1.3f);
imagemResultado.enabled = false; //Após o tempo decorrido, desativa a imagem.
}
}
Fagner- Moderador
- PONTOS : 4376
REPUTAÇÃO : 667
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras :
Re: [RESOLVIDO] Qual é a função para retirar uma textura da tela do jogo?
Cara, muito obrigado! Obrigado pelo esforço e pela ajuda!
gersoneson- Membro
- PONTOS : 1853
REPUTAÇÃO : 6
Respeito as regras :
Re: [RESOLVIDO] Qual é a função para retirar uma textura da tela do jogo?
Funcionou direitinho! Muito obrigado!! Só pode me explicar uma coisa ? Por que você botou o bool dentro daquele void ? Isso é novo para mim. Rsrsrs
gersoneson- Membro
- PONTOS : 1853
REPUTAÇÃO : 6
Respeito as regras :
Re: [RESOLVIDO] Qual é a função para retirar uma textura da tela do jogo?
Olá, não sou o Fagner mas tomei a liberdade para explicar o bool ali.
O "void" se chama método, e nos métodos você pode passar o que chamamos de parâmetros. Esses parâmetros são informações que vão ser trabalhadas dentro do método, assim você pode utilizá-lo de formas diferentes no seu código.
Por exemplo, se você chamar o método "ExibirResultado" e passar como parâmetro "true", ele vai mostrar a imagem de acerto, se você passar "false" ele vai mostrar a imagem de erro.
A verificação no código do Fagner está com operador ternário, mas para visualizar melhor, veja a mesma validação só que com um If:
Então se você chamar o método assim:
O parâmetro "acertou" dentro do método vai receber esse valor, portanto, dentro do código, ele vai rodar o if que vai mostrar a textura "imagemAcerto".
Se você fizer:
O parâmetro "acertou" vai receber false e vai reproduzir o else do comando, mostrando a textura "imagemErro".
Veja que o parâmetro deixa o método flexível, você pode chamar ele quantas vezes quiser, sem precisar repetir códigos, fazendo os comandos apenas uma vez.
Se não usa-se o parâmetro bool no método, você teria que ter dois métodos diferentes, um para mostrar a imagem de erro e outro para mostrar a imagem de acerto. Então daí dependendo da situação você chamava um método diferente para cada, o que obviamente seria um trabalho desnecessário nesse caso.
Enfim, espero que tenha dado para entender essa parte, pois os parâmetros nos métodos são bem importantes e úteis, como você percebeu.
PS: desculpe a intromissão Fagner.
O "void" se chama método, e nos métodos você pode passar o que chamamos de parâmetros. Esses parâmetros são informações que vão ser trabalhadas dentro do método, assim você pode utilizá-lo de formas diferentes no seu código.
Por exemplo, se você chamar o método "ExibirResultado" e passar como parâmetro "true", ele vai mostrar a imagem de acerto, se você passar "false" ele vai mostrar a imagem de erro.
A verificação no código do Fagner está com operador ternário, mas para visualizar melhor, veja a mesma validação só que com um If:
- Código:
if(acertou == true)
imagemResultado.sprite = imagemAcerto;
else
imagemResultado.sprite = imagemErro;
Então se você chamar o método assim:
- Código:
ExibirResultado (true);
O parâmetro "acertou" dentro do método vai receber esse valor, portanto, dentro do código, ele vai rodar o if que vai mostrar a textura "imagemAcerto".
Se você fizer:
- Código:
ExibirResultado (false);
O parâmetro "acertou" vai receber false e vai reproduzir o else do comando, mostrando a textura "imagemErro".
Veja que o parâmetro deixa o método flexível, você pode chamar ele quantas vezes quiser, sem precisar repetir códigos, fazendo os comandos apenas uma vez.
Se não usa-se o parâmetro bool no método, você teria que ter dois métodos diferentes, um para mostrar a imagem de erro e outro para mostrar a imagem de acerto. Então daí dependendo da situação você chamava um método diferente para cada, o que obviamente seria um trabalho desnecessário nesse caso.
Enfim, espero que tenha dado para entender essa parte, pois os parâmetros nos métodos são bem importantes e úteis, como você percebeu.
PS: desculpe a intromissão Fagner.
Fagner- Moderador
- PONTOS : 4376
REPUTAÇÃO : 667
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] Detectar qual lado da tela estou arrastando o dedo no touch?
» [RESOLVIDO] jogo buga a textura (manchas azuis e vermelhas)
» [RESOLVIDO] Função boolean javascript para C#
» [RESOLVIDO] Adicionar uma tecla para chamar uma função
» [RESOLVIDO] Script para textura 3D
» [RESOLVIDO] jogo buga a textura (manchas azuis e vermelhas)
» [RESOLVIDO] Função boolean javascript para C#
» [RESOLVIDO] Adicionar uma tecla para chamar uma função
» [RESOLVIDO] Script para textura 3D
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos