Unity Oyununda Ekran Çözünürlüğü Nasıl Değiştirilir

Bir Unity oyunu oluşturulduktan sonra ekran çözünürlüğünü değiştirmek, kullanıcı deneyimini ve farklı cihazlar arasındaki uyumluluğu geliştirmek için yararlı bir özelliktir. Unity çalışma zamanı sırasında ekran çözünürlüğünü dinamik olarak ayarlamaya yönelik yöntemler sağlar. Bu eğitimde, Unity oyununuzdaki ekran çözünürlüğünü değiştirme ve mevcut ekran çözünürlüklerini edinme sürecinde size rehberlik edeceğiz.

Çalışma Zamanı Sırasında Ekran Çözünürlüğünü Değiştirme

Unity Oyun sırasında ekran çözünürlüğünü değiştirmek için basit bir API sağlar. Ekran çözünürlüğünü değiştirmek için aşağıdaki kod parçasını kullanabilirsiniz:

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);
    }
}

Bu yöntemi çağırmak ve çözünürlüğü değiştirmek için attach 'ResolutionManager' komut dosyasını sahnenizdeki bir GameObject'e uygulayabilir ve 'ChangeResolution' yöntemini istenen genişlik, yükseklik ve tam ekran modu parametreleriyle çağırabilirsiniz.

Kullanılabilir Ekran Çözünürlüklerini Alma

Oyuncuların ekran çözünürlüğünü değiştirmesine izin vermeden önce, onlara mevcut çözünürlüklerin bir listesini sunmak faydalı olacaktır. Aşağıdaki kodu kullanarak mevcut ekran çözünürlüklerini alabilirsiniz:

using UnityEngine;

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

Daha sonra bu yöntemi, oyununuzun ayarlar menüsündeki bir açılır menüyü doldurmak veya kullanıcı arayüzü öğesini listelemek için kullanabilirsiniz; böylece oyuncular, tercih ettikleri çözünürlüğü seçebilirler.

'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);
    }
}
  • 'ResolutionUI' betiğini, kullanıcı arayüzü açılır öğesi ('Açılır' bileşeni) içeren bir GameObject'e ekleyin. Ardından, Unity Düzenleyici'de açılır menüyü ve 'ResolutionManager' komut dosyası referanslarını atayın.

Çözüm

Bu adımları izleyerek ve sağlanan kod örneklerini dahil ederek Unity oyununuza dinamik ekran çözünürlüğü değişikliklerini sorunsuz bir şekilde uygulayabilir, oyunculara esneklik sağlayabilir ve genel oyun deneyimlerini geliştirebilirsiniz.