Tutorial de lanterna para Unity

Em muitos videogames, uma lanterna serve como uma ferramenta crucial (ou elemento de jogo) que aprimora a experiência do jogador. Uma lanterna é uma fonte de luz portátil que pode ser ligada e desligada, normalmente imitando a funcionalidade de lanternas do mundo real. Sua importância nos jogos reside na capacidade de criar suspense, adicionar realismo e fornecer iluminação em ambientes escuros ou pouco iluminados.

Captura de tela de isolamento alienígena

Abaixo está um tutorial rápido sobre como configurar uma lanterna controlável em Unity que pode ser ligada e desligada pressionando uma tecla.

Configurando a cena

  • Crie um novo projeto 3D em Unity (ou abra um projeto existente)
  • Importe todos os ativos necessários, como um personagem ou ambiente 3D, caso ainda não o tenha feito

Crie o destaque

  • Clique com o botão direito no painel Hierarquia e selecione "Create Empty" para criar um GameObject vazio.
  • Renomeie o novo GameObject para "Flashlight."
  • Certifique-se de que "Flashlight" GameObject esteja selecionado na hierarquia.
  • No painel Inspetor, clique no botão "Add Component", procure por "Light" e clique nele para adicionar o componente Light ao GameObject "Flashlight", e repita o mesmo passo para adicionar o "AudioSource" componente.
  • Configure o componente Light com as configurações desejadas, como definir o Type como "Spot" e ajustar os parâmetros Range, Angle e Intensity.
  • Configure o componente AudioSource ajustando o volume, distância, etc.

Efeito de um Spot Light na cena Unity

Anexe a lanterna ao player

  • Arraste e solte o "Flashlight" GameObject no personagem do jogador no painel Hierarquia para torná-lo filho do jogador.
  • Ajuste a posição e a rotação da lanterna para que ela se alinhe com a mão do jogador ou com a posição desejada.

Implementar controles de lanterna

  • Crie um novo script C# clicando com o botão direito no painel Ativos e selecionando 'Create -> C# Script' e nomeie-o "FlashlightController."
  • Clique duas vezes no script para abri-lo em qualquer editor de código de sua preferência.
  • Remova o código padrão e substitua-o pelo seguinte 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();
        }
    }
}
  • Salve o script e volte para Unity.
  • Anexe o script "FlashlightController" ao GameObject "Flashlight".
  • Certifique-se de que os componentes Light e AudioSource estejam anexados ao mesmo objeto de jogo que o script "FlashlightController".
  • Atribua seus clipes de áudio personalizados às variáveis ​​de som do turn 'On/Off'.

Teste a lanterna

  • Pressione o botão Play para entrar no modo Play.
  • Mova o personagem pela cena.
  • Pressione a tecla "F" para ligar e desligar a lanterna.

Conclusão

Esperamos que este tutorial tenha ajudado a aprender como criar um efeito de lanterna em Unity. Ele pode ser aprimorado ainda mais adicionando recursos adicionais, como luz tremeluzente ou ajustando o ângulo do cone do holofote com base na entrada do jogador.