Como alterar a resolução da tela no jogo Unity

Alterar a resolução da tela em um jogo Unity após sua criação é um recurso útil para melhorar a experiência do usuário e a compatibilidade entre diferentes dispositivos. Unity fornece métodos para ajustar dinamicamente a resolução da tela durante o tempo de execução. Neste tutorial, orientaremos você no processo de alteração da resolução da tela em seu jogo Unity e na obtenção das resoluções de tela disponíveis.

Alterando a resolução da tela durante o tempo de execução

Unity fornece uma API simples para alterar a resolução da tela durante o jogo. Você pode usar o seguinte trecho de código para alterar a resolução da tela:

using UnityEngine;

public class ResolutionManager : MonoBehaviour
{
    // Method to change screen resolution
    public void ChangeResolution(int width, int height, bool fullscreen)
    {
        Screen.SetResolution(width, height, fullscreen);
    }
}

Para chamar este método e alterar a resolução, você pode anexar o script 'ResolutionManager' a um GameObject em sua cena e invocar o método 'ChangeResolution' com os parâmetros desejados de largura, altura e modo de tela cheia.

Obtendo resoluções de tela disponíveis

Antes de permitir que os jogadores alterem a resolução da tela, é benéfico fornecer-lhes uma lista de resoluções disponíveis. Você pode recuperar as resoluções de tela disponíveis usando o seguinte código:

using UnityEngine;

public class ResolutionManager : MonoBehaviour
{
    // Method to get available screen resolutions
    public Resolution[] GetAvailableResolutions()
    {
        return Screen.resolutions;
    }
}

Você pode então usar esse método para preencher um menu suspenso ou listar elementos da interface do usuário no menu de configurações do jogo, permitindo que os jogadores escolham sua resolução preferida.

'ResolutionUI.cs'

using UnityEngine;
using UnityEngine.UI;

public class ResolutionUI : MonoBehaviour
{
    public Dropdown resolutionDropdown;
    public ResolutionManager resolutionManager;

    void Start()
    {
        // Populate dropdown with available resolutions
        Resolution[] resolutions = resolutionManager.GetAvailableResolutions();
        resolutionDropdown.ClearOptions();
        
        List<string> options = new List<string>();
        foreach (Resolution res in resolutions)
        {
            options.Add(res.width + "x" + res.height);
        }
        resolutionDropdown.AddOptions(options);
    }

    // Method to handle resolution change from UI
    public void OnResolutionChanged(int index)
    {
        Resolution[] resolutions = resolutionManager.GetAvailableResolutions();
        Resolution selectedResolution = resolutions[index];
        resolutionManager.ChangeResolution(selectedResolution.width, selectedResolution.height, true);
    }
}
  • Anexe o script 'ResolutionUI' a um GameObject que contém um elemento suspenso da UI (componente 'Dropdown'). Em seguida, atribua o menu suspenso e as referências de script 'ResolutionManager' no Editor Unity.

Conclusão

Seguindo essas etapas e incorporando os exemplos de código fornecidos, você pode implementar perfeitamente alterações dinâmicas na resolução da tela em seu jogo Unity, proporcionando flexibilidade aos jogadores e aprimorando sua experiência geral de jogo.

Artigos sugeridos
Como pausar o jogo no Unity
Interagindo com objetos no jogo Unity
Criando um jogo de quebra-cabeça no Unity
Criando um jogo inspirado no Pac-Man no Unity
Como reproduzir arquivos de vídeo no Unity
Implementando Teletransporte no Unity
Como adicionar o efeito Sniper Scope no Unity