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.