J'ai ce code simple. J'ai utilisé l'instruction if pour vérifier que si j'appuie sur le bouton pause, l'animation de saut ne sera pas déclenchée. Une fois le menu en pause activé, lorsque je clique sur Reprendre, le jeu démarre immédiatement et le personnage saute immédiatement. J'ai essayé d'utiliser Coroutines, avec temps réel et time.timeScale = 0.001, mais l'action sera toujours déclenchée. Des idées sur la façon de résoudre?
private void Jump() { if (Input.touchCount > 0 && rb.velocity.y == 0 && Input.GetTouch(0).phase == TouchPhase.Began) { startTouchPosition = Input.GetTouch(0).position; if (startTouchPosition.x < screenMinusButton.x || startTouchPosition.y < screenMinusButton.y) rb.velocity = new Vector2(rb.velocity.x, jumpForce); } }
3 Réponses :
Essayez de mettre un panneau plein écran invisible, à l'arrière du bouton / menu.
J'ai une toile, plusieurs panneaux, tout est bien fait.
Le personnage saute-t-il réellement ou c'est juste un problème d'animation?
Essayez de vérifier votre rb.velocity dans l'inspecteur. Si ce n'est pas visible, essayez d'activer le mode de débogage dans le coin supérieur.
Si le Y ne change pas, c'est peut-être juste une animation mal déclenchée
Le joueur saute car dans la méthode de mise à jour, toutes les touches sont considérées comme des sauts. Je voulais faire un If ou quelque chose pour que si j'appuie sur le bouton, le joueur ne saute pas. Merci!
Vérifiez si EventSystem a un GameObject actuellement considéré comme actif. Si oui, le toucher est effectué sur le bouton, sinon le toucher n'est pas sur le bouton.
Ajouter à l'aide de UnityEngine.EventSystems; en haut de votre script. Modifiez ensuite votre code comme indiqué ci-dessous.
if (Input.touchCount > 0 && EventSystem.current.currentSelectedGameObject == null && rb.velocity.y == 0 && Input.GetTouch(0).phase == TouchPhase.Began) { ... }
Merci, mais cela fonctionne partiellement. J'utilise la méthode de balayage vers le haut maintenant et si j'appuie sous le bouton puis j'appuie sur le bouton, le héros saute toujours.
Qu'est-ce que screenMinusButton? Est-ce un bouton GUI ou autre chose? Pourriez-vous poster votre code pour sauter?
Cette question peut vous aider: stackoverflow.com/questions/32095383/...
Je vais devoir en apprendre un peu plus, je ne sais encore rien sur ce sujet. Merci