Configurer les événements de pression de bouton
Jusqu’à présent, vous avez créé tous les boutons nécessaires à ce projet. Toutefois, les boutons n’ont pas été configurés pour exécuter une action quand vous appuyez dessus. Dans cette unité, vous allez créer un événement d’activation de bouton qui déclenche une action quand vous appuyez sur un bouton.
Chaque bouton créé a quatre propriétés Events
qui peuvent être configurées pour déclencher une action :
Touch Begin()
: Déclenche une action quand un utilisateur touche un objet une première fois.Touch End ()
: Déclenche une action quand l’utilisateur a terminé de toucher l’objet.Button Pressed ()
: Déclenche une action quand l’utilisateur appuie sur un bouton.Button Released ()
: Déclenche une action lorsque l’utilisateur cesse d’appuyer sur un bouton.
Pour cette unité, nous allons nous concentrer sur l’événement Button Pressed()
.
Pour le moment, si vous entrez en mode lecture (Play), l’objet StatsCard
bloquera l’objet PlayerButton
. En outre, si vous appuyez sur l’objet CloseCardButton
, aucune action ne se produira.
Vous pouvez le tester en simulant une entrée dans l’éditeur. Pour passer en mode Play, appuyez sur le bouton Play situé en haut de l’éditeur. Une fois que vous êtes en mode Play, suivez les instructions ci-dessous pour interagir avec les objets.
Comment se déplacer dans la scène :
- Utilisez les touches W/A/S/D pour déplacer la caméra vers l’avant, à gauche, vers l’arrière ou à droite.
- Utilisez les touches Q/E pour déplacer la caméra verticalement.
- Maintenez enfoncé le bouton droit de la souris pour faire pivoter la caméra.
Comment simuler une entrée manuelle :
- Maintenez enfoncée la barre d’espace pour activer la main droite.
- Tout en maintenant enfoncée la barre d’espace, déplacez votre souris pour déplacer la main.
- Utilisez la roulette de défilement de la souris pour ajuster la profondeur de la main.
Configurer l’événement d’appui sur le bouton PlayerButton
Par défaut, les objets de la scène sont configurés sur active
. Le fait qu’un objet soit actif est déterminé par la valeur true
ou false
. Vous pouvez configurer si un objet doit être actif ou non dans l’éditeur ou à l’aide de code.
Dans la fenêtre Inspector, vous pouvez contrôler si un objet doit être actif au démarrage en cochant la case située en regard de son nom. Étant donné que l’objet StatsCard
et ses enfants ne doivent pas être actifs au démarrage de la scène, décochez la case pour que l’objet ne soit pas visible.
Dans certains cas, vous devez écrire un script pour gérer l’activation des objets. Même s’il est possible de désactiver des objets dans la fenêtre Inspector, vous aurez besoin d’un script pour indiquer à Unity comment rendre l’objet actif après la mise à jour de la scène.
Quand l’objet PlayerButton
est activé, l’objet StatsCard
doit avoir la valeur active
. Le composant PressableButton
dans l’objet PlayerButton
fournit des événements que vous pouvez configurer à l’aide des fonctions fournies par Mixed Reality Toolkit (MRTK). Une fonction SetActive
active un objet lorsqu’un utilisateur appuie sur le bouton.
Lorsque vous créez un événement Button Pressed ()
, l’objet qui reçoit l’événement est affecté en premier, suivi de la méthode. Dans ce cas, StatsCard
reçoit l’événement.
Dans la fenêtre Hierarchy, sélectionnez l’objet PlayerButton
Dans la fenêtre Inspector, dans le composant PressableButton, sélectionnez le bouton + dans la propriété Button Pressed ().
Dans la section qui s’affiche, faites glisser l’objet StatsCard dans le champ None (Object).
Sélectionnez ensuite la liste déroulante des fonctions qui s’affiche, puis sélectionnez GameObject>SetActive (bool).
Une fois la fonction affectée, cochez la case en regard de l’affectation de l’objet StatsCard.
Maintenant que l’événement Button Pressed ()
a été ajouté pour l’objet PlayerButton
, passez en mode Play. Dans la fenêtre Game, utilisez une simulation d’entrée manuelle pour appuyer sur l’objet PlayerButton dans le but d’afficher l’objet StatsCard.
Configurer l’événement de pression sur le bouton CloseCard
Même si MRTK fournit des scripts qui comprennent des fonctions pouvant être utilisées pour les événements, vous pouvez également écrire et utiliser vos propres scripts.
Lorsque l’objet CloseCardButton
est activé, l’objet StatsCard
et tous ses enfants doivent être inactifs. Étant donné qu’il n’existe pas de fonction MRTK pour une telle logique, vous pouvez créer votre propre script qui utilise la fonction Unity .SetActive()
. Cette fonction est la fonction sous-jacente qui est utilisée pour définir des objets actifs ou inactifs. La syntaxe est la suivante :
public void SetActive(bool value);
Vous avez maintenant la possibilité de l’utiliser dans votre propre script.
Dans la fenêtre Project, accédez au dossier Scripts.
Dans la fenêtre Project, sélectionnez l’icône +, puis sélectionnez C# Script. Nommez le script CloseCard.
Dans la fenêtre Project, double-cliquez sur le script CloseCard pour l’ouvrir dans Visual Studio.
Le script que vous créez est constitué d’une fonction
Disable()
. Quand celle-ci est appelée,gameObject
(par exemple,StatsCard
) est défini comme inactif. Pour rappel, le fait qu’un objet soit actif est déterminé par la valeurtrue
oufalse
.Dans Visual Studio, remplacez le code dans
CloseCard
par ce qui suit :using System.Collections; using System.Collections.Generic; using UnityEngine; public class CloseCard : MonoBehaviour { public void Disable() { gameObject.SetActive(false); } }
Enregistrez le fichier et revenez à Unity.
Maintenant que vous avez une fonction disponible pour définir un objet comme inactif, vous pouvez utiliser la fonction dans un événement Button Pressed ()
pour l’objet StatsCard
. Toutefois, avant de pouvoir utiliser la fonction, vous devez l’ajouter en tant que composant à l’objet qui recevra l’événement.
Dans la fenêtre Hierarchy, sélectionnez l’objet StatsCard. Dans la fenêtre Inspector, ajoutez le script CloseCard en tant que composant. Vous pouvez également faire glisser le script CloseCard vers StatsCard dans la fenêtre Hierarchy.
Dans la fenêtre Hierarchy, sélectionnez l’objet CloseCardButton.
Dans la fenêtre Inspector, dans la propriété Events, sélectionnez le bouton + pour créer un événement Button Pressed(). Dans la section qui s’affiche, faites glisser l’objet StatsCard dans le champ None (Object).
Sélectionnez ensuite la liste déroulante des fonctions qui s’affiche, puis sélectionnez CloseCard>Disabled ().
Maintenant que l’événement Button Pressed ()
est ajouté pour l’objet CloseCardButton
, passez en mode Play et appuyez sur le bouton pour voir la carte de statistiques se fermer.
© 2021 Warner Bros. Ent. Tous droits réservés.