Ajuda com botões direcionais
2 participantes
Página 1 de 1
Ajuda com botões direcionais
Eu ainda sou iniciante em unity, e criei botões (UI Button) direcionais que vão para a esquerda e para direita além de um botão "A" para pular. Quando compilado para android os botões funcionam normalmente porém algumas vezes eles falham com muita frequência quando uso 2 botões de uma vez (multi touch). Por exemplo eu estou segurando o direcional esquerdo e aperto "A" com ele pressionado, daí o botão "A" falha e não responde ao meu comando. Isso esta me deixando muito frustrado uma vez que a jogabilidade do meu game depende muito da precisão dos pulos. Gostaria de saber se existe algo que eu possa fazer para esta solucionando isso, desde já agradeço !
LucasRangel- Membro
- PONTOS : 2736
REPUTAÇÃO : 10
Respeito as regras :
Re: Ajuda com botões direcionais
Bom dia! como estão seus códigos? principalmente o do botão A, pois o direcional deve estar de alguma forma desativando o A, ou algo assim. Poste os scripts completos, assim facilita.LucasRangel escreveu:Eu ainda sou iniciante em unity, e criei botões (UI Button) direcionais que vão para a esquerda e para direita além de um botão "A" para pular. Quando compilado para android os botões funcionam normalmente porém algumas vezes eles falham com muita frequência quando uso 2 botões de uma vez (multi touch). Por exemplo eu estou segurando o direcional esquerdo e aperto "A" com ele pressionado, daí o botão "A" falha e não responde ao meu comando. Isso esta me deixando muito frustrado uma vez que a jogabilidade do meu game depende muito da precisão dos pulos. Gostaria de saber se existe algo que eu possa fazer para esta solucionando isso, desde já agradeço !
Abraço!
Re: Ajuda com botões direcionais
Aqui esta o Script. Eu usei um script para os 2 direcionais, e aciono cada um de acordo com o método correspondente. Eu aciono os botões com o script "event trigger", com o point up e point down, para reconhecer quando eu estou pressionando e quando eu paro de me mover.
Agora o botão "A" que serve para pular eu uso um método que fica no script do player, ele apenas acrescenta um addforce no corpo do player. Por algum motivo os comandos não estão precisos, suspeitei inicialmente do aparelho que eu estava usando, porém testei em outros e o problema persiste, suspeito também que possa esta falhando os comandos por algum excesso de de objetos e processos na cena (apesar de que não tem de fato tantas coisas na cena que possa fazer isso) de repente pode ser que seja alguma configuração de áudio ou textura que possa está sobrecarregando a memória e ocasionando as falhas, enfim espero conseguir corrigir isto e agradeço demais qualquer ajuda! se precisar de mais detalhes é só pedir.
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DirecionaisH : MonoBehaviour {
public GameObject bright;
public GameObject bleft;
public Rigidbody2D PlayerRigidbody;
public float esquerda;
public float direita = 1;
private int left;
private int right;
public float speeddireita;
public float speedesquerda;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
if (FreezeP.freeze == true && Player.rainbow == false) {
speeddireita = 100f;
speedesquerda = -100f;
}
if (Player.rainbow == false && FreezeP.freeze == false) {
speeddireita = 400f;
speedesquerda = -400f;
}
if (Player.rainbow == true && FreezeP.freeze == false ) {
speeddireita = 800f;
speedesquerda = -800f;
}
if (esquerda == 0 && Player.toasted == false && Player.dead == true && Player.radio == false && Player.direcionais == true) {
PlayerRigidbody.AddForce (new Vector2 (speedesquerda * Time.deltaTime, 0));
transform.localRotation = Quaternion.Euler (0, 180, 0);
bleft.GetComponent <SpriteRenderer> ().color = new Color (0, 0, 0, 3);
}
if (esquerda == 0 && Player.toasted == false && Player.dead == true && Player.radio == true && Player.direcionais == true) {
PlayerRigidbody.AddForce (new Vector2 (speeddireita * Time.deltaTime, 0));
transform.localRotation = Quaternion.Euler (0, 0, 0);
bleft.GetComponent <SpriteRenderer> ().color = new Color (0, 0, 0, 3);
}
if (direita == 0 && Player.toasted == false && Player.dead == true && Player.radio == false && Player.direcionais == true) {
PlayerRigidbody.AddForce (new Vector2 (speeddireita * Time.deltaTime, 0));
transform.localRotation = Quaternion.Euler (0, 0, 0);
bright.GetComponent <SpriteRenderer> ().color = new Color (0, 0, 0, 3);
}
if (direita == 0 && Player.toasted == false && Player.dead == true && Player.radio == true && Player.direcionais == true) {
PlayerRigidbody.AddForce (new Vector2 (speedesquerda * Time.deltaTime, 0));
transform.localRotation = Quaternion.Euler (0, 180, 0);
bright.GetComponent <SpriteRenderer> ().color = new Color (0, 0, 0, 3);
}
if (esquerda == 1) {
bleft.GetComponent <SpriteRenderer> ().color = new Color (1f, 1f, 1f, 1f);
}
if (direita == 1) {
bright.GetComponent <SpriteRenderer> ().color = new Color (1f, 1f, 1f, 1f);
}
}
public void TouchEsquerda(int a){
esquerda = a;
}
public void TouchDireita(int b){
direita = b;
}
}
Agora o botão "A" que serve para pular eu uso um método que fica no script do player, ele apenas acrescenta um addforce no corpo do player. Por algum motivo os comandos não estão precisos, suspeitei inicialmente do aparelho que eu estava usando, porém testei em outros e o problema persiste, suspeito também que possa esta falhando os comandos por algum excesso de de objetos e processos na cena (apesar de que não tem de fato tantas coisas na cena que possa fazer isso) de repente pode ser que seja alguma configuração de áudio ou textura que possa está sobrecarregando a memória e ocasionando as falhas, enfim espero conseguir corrigir isto e agradeço demais qualquer ajuda! se precisar de mais detalhes é só pedir.
LucasRangel- Membro
- PONTOS : 2736
REPUTAÇÃO : 10
Respeito as regras :
Tópicos semelhantes
» (DÚVIDA) Controlar menu com setas direcionais.
» [AJUDA]Preciso de ajuda em um script relacionado ao vídeo Sistema de escolha de personagen
» Ajuda Urgente como chamo a animação no script alguém poderia dar uma ajuda???
» [Ajuda] Preciso de ajuda para controlar e alterar o valor de Lerp de varios objetos
» [AJUDA]Quero Ajuda poque esse script so da erro!
» [AJUDA]Preciso de ajuda em um script relacionado ao vídeo Sistema de escolha de personagen
» Ajuda Urgente como chamo a animação no script alguém poderia dar uma ajuda???
» [Ajuda] Preciso de ajuda para controlar e alterar o valor de Lerp de varios objetos
» [AJUDA]Quero Ajuda poque esse script so da erro!
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos