Taschenlampen-Tutorial für Unity

In vielen Videospielen dient eine -Taschenlampe als entscheidendes Werkzeug (oder Gameplay-Element), das das Spielerlebnis des Spielers verbessert. Eine Taschenlampe ist eine tragbare Lichtquelle, die ein- und ausgeschaltet werden kann und typischerweise die Funktionalität realer Taschenlampen nachahmt. Seine Bedeutung in Spielen liegt in seiner Fähigkeit, Spannung zu erzeugen, Realismus zu verleihen und in dunklen oder schwach beleuchteten Umgebungen für Beleuchtung zu sorgen.

Screenshot der Alien-Isolation

Nachfolgend finden Sie eine kurze Anleitung zum Einrichten einer steuerbaren Taschenlampe in Unity, die per Tastendruck ein- und ausgeschaltet werden kann.

Einrichten der Szene

  • Erstellen ein neues 3D-Projekt in Unity (oder öffnen Sie ein vorhandenes Projekt)
  • Importieren Sie alle erforderlichen Assets, z. B. einen 3D-Charakter oder eine 3D-Umgebung, falls dies noch nicht geschehen ist

Erstellen Sie das Spotlight

  • Klicken Sie mit der rechten Maustaste in das Hierarchiefenster und wählen Sie "Create Empty" aus, um ein leeres GameObject zu erstellen.
  • Benennen Sie das neue GameObject in um "Flashlight."
  • Stellen Sie sicher, dass das GameObject "Flashlight" in der Hierarchie ausgewählt ist.
  • Klicken Sie im Inspektorfenster auf die Schaltfläche "Add Component", suchen Sie nach "Light" und klicken Sie dann darauf, um die Lichtkomponente zum GameObject "Flashlight" hinzuzufügen, und wiederholen Sie den gleichen Schritt, um *h20 hinzuzufügen * Komponente.
  • Konfigurieren Sie die Lichtkomponente auf die gewünschten Einstellungen, indem Sie beispielsweise den Typ auf "Spot" festlegen und die Parameter „Bereich“, „Winkel“ und „Intensität“ anpassen.
  • Konfigurieren Sie die AudioSource-Komponente, indem Sie Lautstärke, Abstand usw. anpassen.

Wirkung eines Spotlichts in der Unity-Szene

Befestigen Sie die Taschenlampe am Player

  • Ziehen Sie und legen Sie das GameObject "Flashlight" auf dem Spielercharakter im Hierarchiefenster ab, um es zu einem untergeordneten Element des Spielers zu machen.
  • Passen Sie die Position und Drehung der Taschenlampe so an, dass sie mit der Hand des Spielers oder der gewünschten Position übereinstimmt.

Implementieren Sie Taschenlampenkontrollen

  • Erstellen Sie ein neues C#-Skript, indem Sie mit der rechten Maustaste in das Bedienfeld „Assets“ klicken, 'Create -> C# Script' auswählen und es dann benennen "FlashlightController."
  • Doppelklicken Sie auf das Skript, um es in einem beliebigen Code-Editor zu öffnen.
  • Entfernen Sie den Standardcode und ersetzen Sie ihn durch das folgende Skript:

'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();
        }
    }
}
  • Speichern Sie das Skript und kehren Sie zu Unity zurück.
  • Hängen Sie das "FlashlightController"-Skript an das "Flashlight" GameObject an.
  • Stellen Sie sicher, dass sowohl die Light- als auch die AudioSource-Komponente an dasselbe Spielobjekt angehängt sind wie das "FlashlightController"-Skript.
  • Weisen Sie Ihre benutzerdefinierten Audioclips den Turn 'On/Off'-Soundvariablen zu.

Testen Sie die Taschenlampe

  • Drücken Sie die Taste Play, um in den Wiedergabemodus zu gelangen.
  • Bewegen Sie die Figur in der Szene.
  • Drücken Sie die Taste "F", um die Taschenlampe ein- und auszuschalten.

Abschluss

Hoffentlich hat dieses Tutorial dazu beigetragen, zu lernen, wie man in Unity einen Spotlight-Taschenlampeneffekt erstellt. Es kann durch das Hinzufügen zusätzlicher Funktionen wie Lichtflackern oder Anpassen des Scheinwerferkegelwinkels basierend auf den Eingaben des Spielers ​​noch weiter verbessert werden.

Empfohlene Artikel
Hubschrauber-Controller für Unity
Auto-Controller für Unity
Flugzeugcontroller für Unity
Spieler-3D- und 2D-Wandsprung-Tutorial für Unity
Dialogsystem für Einheit
3D-Wurm-Controller-Tutorial für Unity
So fügen Sie dem Character Controller in Unity Unterstützung für bewegliche Plattformen hinzu