Tutorial lanternă pentru Unity

În multe jocuri video, un lanterna servește ca un instrument crucial (sau element de joc) care îmbunătățește experiența jucătorului. O lanternă este o sursă de lumină portabilă care poate fi pornită și oprită, imitând de obicei funcționalitatea lanternelor din lumea reală. Importanța sa în jocuri constă în capacitatea sa de a crea suspans, de a adăuga realism și de a oferi iluminare în medii întunecate sau slab luminate.

Captură de ecran de izolare extraterestră

Mai jos este un tutorial rapid despre cum să configurați o lanternă controlabilă în Unity, care poate fi pornită și oprită prin apăsarea unei taste.

Configurarea Scenei

  • Creați un nou proiect 3D în Unity (sau deschideți un proiect existent)
  • Importați toate elementele necesare, cum ar fi un personaj 3D sau un mediu, dacă nu ați făcut-o încă

Creați Spotlight

  • Faceți clic dreapta în panoul Ierarhie și selectați "Create Empty" pentru a crea un GameObject gol.
  • Redenumiți noul GameObject în "Flashlight."
  • Asigurați-vă că "Flashlight" GameObject este selectat în Ierarhie.
  • În panoul Inspector, faceți clic pe butonul "Add Component", căutați "Light" apoi faceți clic pe el pentru a adăugați componenta Light la "Flashlight" GameObject și repetați același pas pentru a adăuga "AudioSource" componentă.
  • Configurați componenta Lumină la setările dorite, cum ar fi setarea Tipului la "Spot" și ajustarea parametrilor Range, Angle și Intensity.
  • Configurați componenta AudioSource ajustând volumul, distanța etc.

Efectul unei lumini spot în scena Unity

Atașați lanterna la player

  • Trage și plasează "Flashlight" GameObject pe personajul jucătorului din panoul Ierarhie pentru a deveni un copil al jucătorului.
  • Reglați poziția și rotirea lanternei astfel încât să se alinieze cu mâna jucătorului sau cu poziția dorită.

Implementați comenzile lanternei

  • Creați un nou script C# făcând clic dreapta în panoul Active și selectând 'Create -> C# Script', apoi denumiți-l "FlashlightController."
  • Faceți dublu clic pe script pentru a-l deschide în orice editor de cod preferat.
  • Eliminați codul implicit și înlocuiți-l cu următorul 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ți scriptul și reveniți la Unity.
  • Atașați scriptul "FlashlightController" la "Flashlight" GameObject.
  • Asigurați-vă că ambele componente Light și AudioSource sunt atașate la același obiect de joc ca și scriptul "FlashlightController".
  • Atribuiți clipurile audio personalizate variabilelor de sunet turn 'On/Off'.

Testează lanterna

  • Apăsați butonul Play pentru a intra în modul Play.
  • Deplasați personajul în scenă.
  • Apăsați tasta "F" pentru a porni și opri lanterna.

Concluzie

Sperăm că acest tutorial a ajutat să învățați cum să creați un efect de lanternă reflector în Unity. Poate fi îmbunătățit și mai mult prin adăugarea de funcții suplimentare, cum ar fi pâlpâirea luminii sau ajustarea unghiului conului reflectorului pe baza intrării jucătorului.

Articole sugerate
Player 3D și 2D Wall Jump Tutorial pentru Unity
Tutorial 3D Worm Controller pentru Unity
Tutorial de sus în jos pentru controlerul jucătorului pentru Unity
Cum să adăugați suport pentru platforma în mișcare la controlerul de caractere în Unity
Controler de jucător RTS și MOBA pentru Unity
Controler de elicopter pentru Unity
Adăugarea suportului pentru salt dublu la un controler de caractere 2D platformer în Unity