Jak zmienić rozdzielczość ekranu w grze Unity
Zmiana rozdzielczości ekranu w grze Unity po jej utworzeniu jest użyteczną funkcją poprawiającą wygodę użytkownika i kompatybilność na różnych urządzeniach. Unity zapewnia metody dynamicznego dostosowywania rozdzielczości ekranu w czasie działania. W tym samouczku przeprowadzimy Cię przez proces zmiany rozdzielczości ekranu w grze Unity i uzyskiwania dostępnych rozdzielczości ekranu.
Zmiana rozdzielczości ekranu w czasie działania
Unity zapewnia proste API do zmiany rozdzielczości ekranu podczas rozgrywki. Aby zmienić rozdzielczość ekranu, możesz użyć następującego fragmentu kodu:
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);
}
}
Aby wywołać tę metodę i zmienić rozdzielczość, możesz dołączyć skrypt 'ResolutionManager' do obiektu GameObject w swojej scenie i wywołać metodę 'ChangeResolution' z żądanymi parametrami szerokości, wysokości i trybu pełnoekranowego.
Uzyskiwanie dostępnych rozdzielczości ekranu
Zanim pozwolisz graczom na zmianę rozdzielczości ekranu, warto udostępnić im listę dostępnych rozdzielczości. Dostępne rozdzielczości ekranu możesz pobrać za pomocą następującego kodu:
using UnityEngine;
public class ResolutionManager : MonoBehaviour
{
// Method to get available screen resolutions
public Resolution[] GetAvailableResolutions()
{
return Screen.resolutions;
}
}
Następnie możesz użyć tej metody, aby wypełnić menu rozwijane lub wyświetlić listę elementów interfejsu użytkownika w menu ustawień gry, umożliwiając graczom wybór preferowanej rozdzielczości.
'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);
}
}
- Dołącz skrypt 'ResolutionUI' do obiektu GameObject zawierającego element rozwijany interfejsu użytkownika (komponent „Dropdown”). Następnie przypisz listę rozwijaną i odniesienia do skryptu 'ResolutionManager' w edytorze Unity.
Wniosek
Wykonując te kroki i wykorzystując podane przykłady kodu, możesz bezproblemowo wdrożyć dynamiczne zmiany rozdzielczości ekranu w swojej grze Unity, zapewniając graczom elastyczność i poprawiając ich ogólne wrażenia z gry.