C'est mon code pour essayer de simuler un mouvement de balayage, donc quand je construis sur un mobile, je sais que ça marchera. Rien n'est consigné et je suis confus sur pourquoi il semble ne pas fonctionner. Je veux qu'il imprime dans la console que j'ai glissé RTL
(de droite à gauche) ou LTR
(de gauche à droite). Je ne vois pas ce que je fais de mal.Détecter la direction du geste de balayage
void Update()
{
if (Input.GetMouseButtonDown(0))
{
startPosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
}
if (Input.GetMouseButtonUp(0))
{
endPosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
}
if (startPosition != endPosition && startPosition != Vector3.zero && endPosition != Vector3.zero)
{
float deltaX = endPosition.x - startPosition.x;
float deltaY = endPosition.y - startPosition.y;
if ((deltaX > 5.0f || deltaX < -5.0f) && (deltaY >= -1.0f || deltaY <= 1.0f))
{
if (startPosition.x < endPosition.x)
{
print("LTR");
}
else
{
print("RTL");
}
}
startPosition = endPosition = Vector3.zero;
}
}
Vous avez trop de contrôles, en particulier le dernier (endPosition! = Zéro) ne peut pas être vrai. Utilisez les drapeaux à la place drag = true et drag = false – Everts