Como chamar uma ação após sequência de botões?(Cheat/Manha estilo GTA)
2 participantes
Página 1 de 1
Como chamar uma ação após sequência de botões?(Cheat/Manha estilo GTA)
Olá!
Gostaria de saber como eu faço para que determinada ação aconteça após uma sequência de teclas. Tipo um combo ou tipo as manhas do gta.
Por exemplo: se você apertar "T", depois "H" e depois "E" o personagem fica roxo (sei lá). Mas somente se for nessa sequência e não sendo apertando todas as teclas juntas, mas em sequência.
Valeu!!!
Gostaria de saber como eu faço para que determinada ação aconteça após uma sequência de teclas. Tipo um combo ou tipo as manhas do gta.
Por exemplo: se você apertar "T", depois "H" e depois "E" o personagem fica roxo (sei lá). Mas somente se for nessa sequência e não sendo apertando todas as teclas juntas, mas em sequência.
Valeu!!!
WesFarias- Iniciante
- PONTOS : 2658
REPUTAÇÃO : 4
Respeito as regras :
Re: Como chamar uma ação após sequência de botões?(Cheat/Manha estilo GTA)
Basta usar uma Stack pra ir jogando o que for digitado, e checar usando a string que seria a "manha". Nesse script que fiz, você tem um array de Cheat, se a string bater com o que foi digitado, uma bool será ativada. Digamos que você queira que ao digitar "HESOYAM" você ganhe saúde, 250 mil e colete... você precisa checar se o Cheat[n].ativado está verdadeiro, se sim, você altera o dinheiro, saúde e colete e logo após marca essa bool como falsa, pra funcionar apenas uma vez.
No caso do cheat ficar sempre ativado, como supervelocidade ou algo assim, você precisa apenas checar se está ativado, nesse caso você tem que digitar o cheat novamente pra desativar.
Baixe o sistema AQUI
Segue o script pra quem quiser saber como funciona mas não quer baixar a coisa toda:
No caso do cheat ficar sempre ativado, como supervelocidade ou algo assim, você precisa apenas checar se está ativado, nesse caso você tem que digitar o cheat novamente pra desativar.
Baixe o sistema AQUI
Segue o script pra quem quiser saber como funciona mas não quer baixar a coisa toda:
- Código:
using System.Collections.Generic;
using UnityEngine;
public class CheatManager : MonoBehaviour
{
public int NumeroMaximoLetras = 7;
private Stack<char> letrasPressionadas;
private char[] mascaraCaracteresValidos = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' };
public string palavraFormada;
public Cheat[] cheats;
public GameObject infoCheatAtivado;
public GameObject infoCheatDesativado;
private void Start()
{
letrasPressionadas = new Stack<char>(NumeroMaximoLetras);
Resetar();
}
private void Update()
{
if (Input.anyKeyDown && Input.inputString.Length>0)
{
bool valido = false;
for (int i = 0; i < mascaraCaracteresValidos.Length; i++)
{
if (Input.inputString[0] == mascaraCaracteresValidos[i])
valido = true;
}
if (valido)
{
letrasPressionadas.Push(Input.inputString[0]);
palavraFormada = "";
for (int i = NumeroMaximoLetras-1; i >= 0; i--)
{
palavraFormada += letrasPressionadas.ToArray()[i];
}
for (int i = 0; i < cheats.Length; i++)
{
if (palavraFormada.Contains(cheats[i].textoCheat))
{
cheats[i].ativado = !cheats[i].ativado;
Resetar();
if (cheats[i].ativado)
{
infoCheatDesativado.SetActive(false);
infoCheatAtivado.SetActive(true);
}
else
{
infoCheatAtivado.SetActive(false);
infoCheatDesativado.SetActive(true);
}
}
}
}
}
}
private void Resetar()
{
for (int i = 0; i < NumeroMaximoLetras; i++)
{
letrasPressionadas.Push('~');
}
}
}
[System.Serializable]
public struct Cheat
{
public string textoCheat;
public bool ativado;
}
Fagner- Moderador
- PONTOS : 4443
REPUTAÇÃO : 667
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras :
Re: Como chamar uma ação após sequência de botões?(Cheat/Manha estilo GTA)
Valeu mesmo!!! Ajudou muito!!!
WesFarias- Iniciante
- PONTOS : 2658
REPUTAÇÃO : 4
Respeito as regras :
Tópicos semelhantes
» Como faço para apos uma animação acabar, executar outra ação C#
» [RESOLVIDO] Como fazer uma ação acontecer apenas após a animação terminar?
» Ação acontecer apos algum tempo
» Como faço pra executar a ação apenas 1 vez ?
» COMO EXECUTAR UMA AÇÃO EM DETERMINADA DISTANCIA?
» [RESOLVIDO] Como fazer uma ação acontecer apenas após a animação terminar?
» Ação acontecer apos algum tempo
» Como faço pra executar a ação apenas 1 vez ?
» COMO EXECUTAR UMA AÇÃO EM DETERMINADA DISTANCIA?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos