כיצד לשנות את רזולוציית המסך במשחק Unity

שינוי רזולוציית המסך בתוך משחק Unity לאחר בנייתו הוא תכונה שימושית לשיפור חווית משתמש ותאימות בין מכשירים שונים. Unity מספק שיטות להתאמה דינמית של רזולוציית המסך במהלך זמן הריצה. במדריך זה, נדריך אותך בתהליך של שינוי רזולוציית המסך במשחק Unity שלך וקבלת רזולוציות מסך זמינות.

שינוי רזולוציית המסך במהלך זמן ריצה

Unity מספק API פשוט לשינוי רזולוציית המסך במהלך המשחק. אתה יכול להשתמש בקטע הקוד הבא כדי לשנות את רזולוציית המסך:

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

כדי לקרוא לשיטה זו ולשנות את הרזולוציה, אתה יכול לצרף את הסקריפט 'ResolutionManager' ל-GameObject בסצנה שלך ולהפעיל את שיטת 'ChangeResolution' עם הפרמטרים הרצויים של רוחב, גובה ומצב מסך מלא.

קבלת רזולוציות מסך זמינות

לפני שמאפשרים לשחקנים לשנות את רזולוציית המסך, כדאי לספק להם רשימה של רזולוציות זמינות. אתה יכול לאחזר את רזולוציות המסך הזמינות באמצעות הקוד הבא:

using UnityEngine;

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

לאחר מכן תוכל להשתמש בשיטה זו כדי לאכלס תפריט נפתח או רשימה של רכיב ממשק משתמש בתפריט ההגדרות של המשחק שלך, המאפשר לשחקנים לבחור את הרזולוציה המועדפת עליהם.

'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' ל-GameObject שמכיל רכיב של ממשק משתמש נפתח (רכיב 'Dropdown'). לאחר מכן, הקצה את התפריט הנפתח ואת הפניות לסקריפט 'ResolutionManager' בעורך Unity.

סיכום

על ידי ביצוע שלבים אלה ושילוב דוגמאות הקוד שסופקו, אתה יכול ליישם בצורה חלקה שינויים דינמיים ברזולוציית מסך במשחק Unity שלך, לספק לשחקנים גמישות ולשפר את חווית המשחק הכוללת שלהם.