Unity - Clique do Mouse
Página 1 de 1
Unity - Clique do Mouse
Boa tarde!
Tenho o Script "Personagem" e cada Personagem do Jogo tem esse Script.
Nesse Script, coloco a bool "personClicadoParaMorrer" dentro do Método OnMouse() e coloco uma ação no Clique do Mouse no Método mataInimigo(). "personClicadoParaMorrer" fica true só em passar o Mouse no Personagem, em qualquer um na vdd.
A ação é de Matar o Personagem quando ele é Clicado, porém, como "personClicadoParaMorrer" fica true só em passar o Mouse em um Personagem, se eu passar o Mouse acidentalmente em outro Personagem que eu não quero matar, esse outro Personagem Morre no Clique do Mouse junto com o Personagem que eu cliquei. Se passar o Mouse em Todos os Personagens, ao dar um clique, mata todos!!!
O Método está funcionando quando vou pro Android, mas meu receio é que se alguém emular o Jogo no PC, vai poder fazer isso, e não é pra fazer de jeito nenhummmmm!!!
O que falta é fazer uma checagem mais específica e resolver isso. Não sei se posso usar algum comando nativo que resolva isso.. Enfim. Como faço pra controlar isso no Mouse? Toda solução é bem vinda!
Segue os Métodos:
Não estou trabalhando com o Physics.Raycast pq achei bem mais fácil trabalhar com o Clique do Mouse e também pq o Script já está no Personagem. Ele funciona quando o Jogador clica no Personagem no Android tranquilo.
Tenho o Script "Personagem" e cada Personagem do Jogo tem esse Script.
Nesse Script, coloco a bool "personClicadoParaMorrer" dentro do Método OnMouse() e coloco uma ação no Clique do Mouse no Método mataInimigo(). "personClicadoParaMorrer" fica true só em passar o Mouse no Personagem, em qualquer um na vdd.
A ação é de Matar o Personagem quando ele é Clicado, porém, como "personClicadoParaMorrer" fica true só em passar o Mouse em um Personagem, se eu passar o Mouse acidentalmente em outro Personagem que eu não quero matar, esse outro Personagem Morre no Clique do Mouse junto com o Personagem que eu cliquei. Se passar o Mouse em Todos os Personagens, ao dar um clique, mata todos!!!
O Método está funcionando quando vou pro Android, mas meu receio é que se alguém emular o Jogo no PC, vai poder fazer isso, e não é pra fazer de jeito nenhummmmm!!!
O que falta é fazer uma checagem mais específica e resolver isso. Não sei se posso usar algum comando nativo que resolva isso.. Enfim. Como faço pra controlar isso no Mouse? Toda solução é bem vinda!
Segue os Métodos:
- Código:
void OnMouseEnter() {
// "personClicadoParaMorrer" fica true para ser usada no Método mataInimigo() para Matar o Presonagem Inimigo
personClicadoParaMorrer = true;
}
- Código:
public void mataInimigo() {
// Clique do Mouse
if(Input.GetMouseButtonDown(0)) {
// bool que ficou true quando o Mouse passou por cima de um Personagem
if(personClicadoParaMorrer) {
// O Personagem não é da Equipe Atual
if(ludo3D.numEquipeAtual != equipeDessePersonagem.numDessaEquipe) {
//print("Personagem ::: mataInimigo() ::: Personagem Inimigo Clicado");
// O Personagem está no Tabuleiro e na Casa
if(estadoDoPersonagem == EstadoDoPersonagem.Tabuleiro && estadoCasaOuTorre == EstadoCasaOuTorre.EstaNaCasa) {
//print("Personagem ::: mataInimigo() ::: Personagem no Tabuleiro");
// Há Produtos "MataInimigo" na Equipe Atual
if(ludo3D.equipes[ludo3D.numEquipeAtual].qntMataInimigo > 0) {
//print("Personagem ::: mataInimigo() ::: Há Produtos MataInimigo ::: Matou o Inimigo");
// Método que Mata o Personagem Clicado
voltarDaCasaPraPlataforma(this.casaAtual);
// Decrementa 1 Produto "MataInimigo" da Equipe Atual
ludo3D.equipes[ludo3D.numEquipeAtual].decrementaContadorMataInimigo();
}
// Não Há Produtos "MataInimigo"
else {
// Não faz nada
}
}
// O Personagem Não está no Tabuleiro
else {
// Não faz nada
}
}
// Personagem da Equipe Atual
else {
// Não faz nada
}
}
personClicadoParaMorrer = false;
}
}
Não estou trabalhando com o Physics.Raycast pq achei bem mais fácil trabalhar com o Clique do Mouse e também pq o Script já está no Personagem. Ele funciona quando o Jogador clica no Personagem no Android tranquilo.
WLCS22- MembroAvançado
- PONTOS : 1917
REPUTAÇÃO : 60
Respeito as regras :
Tópicos semelhantes
» controle 2D com touch ou clique do mouse
» [Unity 5] Instanciar objetos onde mouse mira
» A Unity detecta o click mouse como um touch?
» Como posso fazer pra atirar onde o cursor do mouse está (UNITY 2D)
» ERRO MOUSE LOOK UNITY 5
» [Unity 5] Instanciar objetos onde mouse mira
» A Unity detecta o click mouse como um touch?
» Como posso fazer pra atirar onde o cursor do mouse está (UNITY 2D)
» ERRO MOUSE LOOK UNITY 5
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos