Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 1 livre papier acheté 
= la version en ligne automatiquement offerte. Cliquez ici
  1. Livres et vidéos
  2. Unity3D
  3. Interactions avec l’utilisateur
Extrait - Unity3D Développer en C# des applications 2D/3D multiplateformes (iOS, Android, Windows...)
Extraits du livre
Unity3D Développer en C# des applications 2D/3D multiplateformes (iOS, Android, Windows...)
1 avis
Revenir à la page d'achat du livre

Interactions avec l’utilisateur

Présentation générale

Les périphériques de saisie classiques tels que le clavier, la souris, les manettes de jeu, sont pris en charge nativement par Unity. En plus de ces contrôleurs, les écrans tactiles ainsi que les différents détecteurs de mouvement des téléphones mobiles sont accessibles. Unity permet également d’accéder au microphone et à la caméra pour récupérer des données audio et vidéo.

Prise en charge par défaut

1. Le gestionnaire de commande

L’éditeur propose un menu permettant de configurer les commandes par défaut, accessible via le menu Edit - Project Settings - Input. L’interface permet de définir des axes virtuels (virtual axes) qui seront liés aux boutons de votre périphérique. Ces axes peuvent être de différentes natures comme l’axe vertical, créé par défaut, permettant de faire avancer ou reculer le joueur, et lié aux touches [Flèche haut] et [Flèche bas].

Il est tout à fait possible de créer ses propres axes virtuels en les ajoutant dans la liste, d’en supprimer ou de modifier les axes existants.

Dans chaque projet nouvellement créé, des axes sont créés par défaut :

  • Les axes Horizontal et Vertical sont liés aux touches Z, Q, S et D ainsi que les flèches haut, bas, gauche et droite.

  • Les axes Fire1, Fire2, Fire3 sont liés aux touches [Ctrl], [Alt] et [Shift]. Ces sont les touches les plus fréquemment utilisées dans des jeux de tir.

  • Les axes Mouse X et Mouse Y sont liés aux déplacements de la souris sur les axes X et Y.

  • Les axes Window Shake X et Window Shake Y sont liés aux déplacements de la fenêtre.

2. Propriétés d’un axe virtuel

L’axe virtuel peut s’interfacer avec de nombreux types de périphériques : clavier, souris, manette, joystick, etc. Voici les propriétés qui le définissent :

  • Name : définit le nom de l’axe afin de l’utiliser à partir d’un script personnalisé.

  • Descriptive Name : définit le nom à afficher dans la fenêtre de configuration ; utilisée dans un jeu de type PC pour la valeur positive de l’axe.

  • Descriptive Negative Name : définit le nom à afficher dans la fenêtre de configuration ; utilisée dans un jeu de type PC pour la valeur négative de l’axe.

  • Negative Button : définit le bouton à utiliser pour aller dans la direction opposée (négative) de l’axe.

  • Positive Button : définit le bouton à utiliser pour aller dans la direction (positive) de l’axe.

  • Alt Negative Button : définit le bouton alternatif à utiliser pour aller dans...

Utilisation du microphone et de la webcam

1. Utilisation du micro

a. Présentation

Sur PC comme sur mobile, il est possible d’utiliser un microphone pour enregistrer des sons et les intégrer dans le jeu. Pour ce faire, Unity met à disposition la classe Microphone permettant d’obtenir la liste des micros disponibles afin d’interagir avec eux.

b. La classe Microphone

Elle ne comprend qu’une seule et unique propriété, devices, permettant de lister l’ensemble des micros connectés et disponible.

Les méthodes disponibles permettent de lancer un enregistrement ou d’obtenir des informations sur un microphone :

  • GetDeviceCaps : permet d’obtenir la fréquence minimale et maximale de l’appareil. En ne renseignant pas de nom pour le micro, le microphone par défaut sera sélectionné. Si les valeurs de retours sont égales à zéro, l’appareil prend en charge toutes les fréquences.

  • GetPosition : permet de récupérer la position actuelle dans l’échantillon en cours d’enregistrement.

  • IsRecording : permet de savoir si le microphone est en cours d’enregistrement.

  • Start : permet de démarrer un enregistrement. Retourne un objet de type AudioClip pouvant être lu dans le jeu.

  • End : permet d’arrêter un enregistrement.

Dans une application utilisant le Web Player, il est nécessaire de demander l’autorisation afin d’utiliser le micro de l’utilisateur. Pour cela, il faut appeler la fonction Application.RequestUserAuthorization avant l’utilisation d’une méthode de la classe Microphone.

c. Exemple d’utilisation

Dans notre exemple, nous allons utiliser l’ensemble des méthodes et propriétés de la classe Microphone dans le but d’enregistrer notre voix afin de la rejouer avec 100 millisecondes de latence. Il faudra ajouter un composant de type AudioSource à l’objet contentant ce script afin de pouvoir lire notre enregistrement.


using System; 
using UnityEngine; 
 
public class MicrophoneRecorder : MonoBehaviour 
{ 
    private string _microphoneName; 
    private AudioClip _voiceAudioClip; 
    private int _frequency; 
    private AudioSource _audioSource; 
 
    void Start() 
  ...