Étape 8: Interaction et sons
Le carton contrôles + package, mentionné il y a quelques étapes offre un moyen facile d’interfaçage avec le casque et est une bonne occasion de plonger dans le code et de créer une interactivité.
Nous allons créer une sphère noire qui, quand vous le regardez, change de taille, commence à émettre des particules et modifie la couleur de la lumière provenant de la paroi arrière. Pour cette étape, nous utiliserons également deux sons, l’un prélevé dans un grondement bas libre (les fondus ont été retirés) et une boucle d’échantillonnage de la version instrumentale de Hotline Bling.
Ajout de la sphère
- Créer un nouveau matériau et appliquez-le sur la paroi arrière ('Plane(4)' dans le préfabriqué salle) et déterminer quelle puissance d’émission, vous trouverez des fonctionne bien (prendre une couleur lumineuse). Cela ne sera pas grave beaucoup plus tard, car la valeur sera définie par programme. Réglez ensuite l’intensité des émissions à un gris avec intensité 0,70.
- Plane(4) et renommez-le "paroi" (ce nom exact sera utilisé dans le code).
- Placer une sphère (GameObject > objet 3D > sphère) au milieu de la paroi arrière à échelle 2,2,2.
- Donnez-lui un nouveau matériau avec douceur 0 et un albédo noir.
Ajout de sons
- Créez un dossier « Sons » dans la vue Bibliothèque
- Importer des sons téléchargés / sélectionnés dans ce dossier (hotline.ogg est joint ci-dessous)
- Sélectionnez la trémie de l’escalier
- Dans l’inspecteur, cliquez sur « Ajouter le composant » et tapez la Source Audio.
- Affectez à la propriété AudioClip au son importé
- Cocher « boucle » et « Jouer éveillé »
- La valeur « Spatial Blend » 1, rendre un son avec source 3-dimensionnelle, le trou du plafond.
- La valeur « Max Distance » quelque part autour de 13.
- Régler la courbe de volume tel qu’illustré.
- Maintenant sélectionnez la sphère noire et appliquez une source audio avec le bruit de grondement comme clip.
- Décochez la case « Boucle » et « Jouer sur éveillé » (nous ne voulons pas les grondements continus ou aléatoires, il se déclenchera dans le code)
- Laissez le mélange Spatial sur 0.
Ajout de système de particules
- Créer un nouveau matériau
- Dans l’inspecteur, modifiez la propriété de Shader (sur le dessus) de norme aux particules > additif (soft). Il s’agit d’un effet d’optique qui éclaire les éléments en dessous que si elle est plus brillante que ces éléments (semblables à des modes de fusion Photoshop).
- Sélectionnez la sphère noire et ajouter un composant « Particle System ».
- Faire tourner la sphère tels que l’émetteur est orienté vers la chambre.
- Dans le système de particules composant défini forme > Angle à 41 et dans l’ensemble de l’article de Renderer
- Mode de rendu : maille
- Maille : sphère
- Matériel: [Sélectionnez votre matériel de particules]
- Des ombres : Off
- Recevoir des ombres : off
Code
Il est maintenant temps d’ajouter un nouveau code. Sélectionnez l’objet de « Player » et double-cliquez sur le script de contrôle « lecteur ». Il sera ouvert dans MonoDevelop, un éditeur de code pour l’unité intégrée. Pour copier le code, je recommande de copier le fichier final sur Github, car Instructables a des ennuis avec la mise en forme.
Ajoutez le code suivant avant la fonction de démarrage ("Sub Start() {...} »), après « private CapsuleCollider playerCollider; »
Ajouter ce qui suit à l’intérieur de la fonction de démarrage :
La première ligne du bloc précédent appelle la fonction « CardboardFocusChanges », mais qui n’est pas encore définie. Nous allons tout d’abord obtenir là-dessus. Placer ce qui suit ci-dessous la fonction Start (donc après sa clôture '}', avant la fonction FixedUpdate)
Alors maintenant, quatre choses doivent se produire :
- Animation de la couleur et l’émission de la paroi arrière de la couleur désirée
- Augmentation de la taille de la sphère lorsqu’il est regardé
- Activer / désactiver les sons
- Activer / désactiver le système de particules
Que ces choses doivent se produire dynamiquement, les trois premiers animés même, ils sont mis dans une fonction par défaut qui s’appelle chaque image : la fonction de mise à jour. Dans ce cas, c’est comme suit :