Tutoriel lampe de poche pour Unity

Dans de nombreux jeux vidéo, une lampe de poche constitue un outil crucial (ou un élément de gameplay) qui améliore l'expérience du joueur. Une lampe de poche est une source de lumière portable qui peut être allumée et éteinte, imitant généralement la fonctionnalité des lampes de poche du monde réel. Son importance dans les jeux réside dans sa capacité à créer du suspense, à ajouter du réalisme et à fournir un éclairage dans des environnements sombres ou faiblement éclairés.

Capture d'écran d'isolement extraterrestre

Vous trouverez ci-dessous un didacticiel rapide sur la façon de configurer une lampe de poche contrôlable dans Unity qui peut être allumée et éteinte en appuyant sur une touche.

Mise en place de la scène

  • Créez un nouveau projet 3D dans Unity (ou ouvrez un projet existant)
  • Importez tous les éléments nécessaires, tels qu'un personnage ou un environnement 3D, si ce n'est pas encore fait.

Créer le projecteur

  • Cliquez avec le bouton droit dans le panneau Hiérarchie et sélectionnez "Create Empty" pour créer un GameObject vide.
  • Renommez le nouveau GameObject en "Flashlight."
  • Assurez-vous que le GameObject "Flashlight" est sélectionné dans la hiérarchie.
  • Dans le panneau Inspecteur, cliquez sur le bouton "Add Component", recherchez "Light" puis cliquez dessus pour ajouter le composant Light au "Flashlight" GameObject, et répétez la même étape pour ajouter le *h20. * composant.
  • Configurez le composant Lumière avec les paramètres souhaités, par exemple en définissant le Type sur "Spot" et en ajustant les paramètres Plage, Angle et Intensité.
  • Configurez le composant AudioSource en ajustant le volume, la distance, etc.

Effet d'un spot dans la scène Unity

Attachez la lampe de poche au lecteur

  • Faites glisser et déposez le GameObject "Flashlight" sur le personnage du joueur dans le panneau Hiérarchie pour en faire un enfant du joueur.
  • Ajustez la position et la rotation de la lampe de poche afin qu'elle s'aligne avec la main du joueur ou avec la position souhaitée.

Implémenter des contrôles de lampe de poche

  • Créez un nouveau script C# en cliquant avec le bouton droit dans le panneau Actifs et en sélectionnant 'Create -> C# Script', puis nommez-le "FlashlightController."
  • Double-cliquez sur le script pour l'ouvrir dans n'importe quel éditeur de code préféré.
  • Supprimez le code par défaut et remplacez-le par le script suivant:

'FlashlightController.cs'

using UnityEngine;

public class FlashlightController : MonoBehaviour
{
    // Public variables
    public AudioClip turnOnSound;
    public AudioClip turnOffSound;

    // Private variables
    private Light flashlight;
    private AudioSource audioSource;

    private void Start()
    {
        // Get Light component in the same GameObject
        flashlight = GetComponent<Light>();

        if (flashlight == null)
        {
            Debug.LogWarning("Light component is not attached. Attach a Light component manually.");
        }
        else
        {
            flashlight.enabled = false;
        }

        // Get or add AudioSource component to the same GameObject
        audioSource = GetComponent<AudioSource>();
        if (audioSource == null)
        {
            audioSource = gameObject.AddComponent<AudioSource>();
            audioSource.playOnAwake = false;
        }
    }

    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.F))
        {
            if (flashlight != null)
            {
                flashlight.enabled = !flashlight.enabled;

                // Play audio effect based on flashlight state
                if (flashlight.enabled)
                {
                    PlayAudioEffect(turnOnSound);
                }
                else
                {
                    PlayAudioEffect(turnOffSound);
                }
            }
            else
            {
                Debug.LogWarning("Cannot control flashlight as Light component is not attached.");
            }
        }
    }

    private void PlayAudioEffect(AudioClip clip)
    {
        if (clip != null)
        {
            audioSource.clip = clip;
            audioSource.Play();
        }
    }
}
  • Enregistrez le script et revenez à Unity.
  • Attachez le script "FlashlightController" au GameObject "Flashlight".
  • Assurez-vous que les composants Light et AudioSource sont attachés au même objet de jeu que le script "FlashlightController".
  • Attribuez vos clips audio personnalisés aux variables sonores turn 'On/Off'.

Testez la lampe de poche

  • Appuyez sur le bouton Play pour passer en mode Lecture.
  • Déplacez le personnage dans la scène.
  • Appuyez sur la touche "F" pour allumer et éteindre la lampe de poche.

Conclusion

Espérons que ce didacticiel vous ait aidé à apprendre à créer un effet de lampe de poche dans Unity. Il peut être encore amélioré en ajoutant des fonctionnalités supplémentaires telles que le scintillement de la lumière ou en ajustant l'angle du cône du projecteur en fonction de l'entrée du joueur .

Articles suggérés
Tutoriel Player 3D et 2D Wall Jump pour Unity
Tutoriel sur le contrôleur de ver 3D pour Unity
Tutoriel de contrôleur de lecteur descendant pour Unity
Contrôleur de lecteur RTS et MOBA pour Unity
Contrôleur d'hélicoptère pour Unity
Ajout de la prise en charge du double saut à un contrôleur de personnage de plateforme 2D dans Unity
Contrôleur de voiture pour Unity