Tutorial sulla torcia elettrica per Unity

In molti videogiochi, una torcia elettrica funge da strumento cruciale (o elemento di gioco) che migliora l'esperienza del giocatore. Una torcia è una fonte di luce portatile che può essere accesa e spenta, imitando in genere la funzionalità delle torce del mondo reale. La sua importanza nei giochi risiede nella sua capacità di creare suspense, aggiungere realismo e fornire illuminazione in ambienti bui o scarsamente illuminati.

Schermata di isolamento alieno

Di seguito è riportato un breve tutorial su come impostare una torcia controllabile in Unity che può essere accesa e spenta premendo un tasto.

Allestimento della scena

  • Crea un nuovo progetto 3D in Unity (o apri un progetto esistente)
  • Importa tutte le risorse necessarie, come un personaggio 3D o un ambiente, se non l'hai ancora fatto

Crea i riflettori

  • Fai clic con il pulsante destro del mouse nel pannello Gerarchia e seleziona "Create Empty" per creare un GameObject vuoto.
  • Rinominare il nuovo GameObject in "Flashlight."
  • Assicurati che "Flashlight" GameObject sia selezionato nella gerarchia.
  • Nel pannello Ispettore, fai clic sul pulsante "Add Component", cerca "Light" quindi fai clic su di esso per aggiungere il componente Luce al "Flashlight" GameObject, e ripeti lo stesso passaggio per aggiungere il componente "AudioSource".
  • Configura il componente Luce sulle impostazioni desiderate, ad esempio impostando il Tipo su "Spot" e regolando i parametri Intervallo, Angolo e Intensità.
  • Configura il componente AudioSource regolando il volume, la distanza, ecc.

Effetto di un faretto nella scena Unity

Collega la torcia al lettore

  • Trascina e rilascia il GameObject "Flashlight" sul personaggio del giocatore nel pannello Gerarchia per renderlo figlio del giocatore.
  • Regola la posizione e la rotazione della torcia in modo che si allinei con la mano del giocatore o con la posizione desiderata.

Implementa i controlli della torcia

  • Crea un nuovo script C# facendo clic con il pulsante destro del mouse nel pannello Risorse e selezionando 'Create -> C# Script', quindi assegnagli un nome "FlashlightController."
  • Fare doppio clic sullo script per aprirlo in qualsiasi editor di codice preferito.
  • Rimuovi il codice predefinito e sostituiscilo con il seguente script:

'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();
        }
    }
}
  • Salva lo script e torna a Unity.
  • Allega lo script "FlashlightController" al GameObject "Flashlight".
  • Assicurati che entrambi i componenti Light e AudioSource siano collegati allo stesso oggetto di gioco dello script "FlashlightController".
  • Assegna i tuoi clip audio personalizzati alle variabili audio turn 'On/Off'.

Prova la torcia

  • Premi il pulsante Riproduci per accedere alla modalità Riproduzione.
  • Muovi il personaggio nella scena.
  • Premi il tasto "F" per accendere e spegnere la torcia.

Conclusione

Speriamo che questo tutorial ti abbia aiutato a imparare come creare un effetto torcia con riflettore in Unity. Può essere ulteriormente migliorato aggiungendo funzionalità aggiuntive come lo sfarfallio della luce o la regolazione dell'angolo del cono del riflettore in base all'input del giocatore.