كيفية تغيير دقة الشاشة في لعبة الوحدة

يعد تغيير دقة الشاشة داخل لعبة Unity بعد إنشائها ميزة مفيدة لتحسين تجربة المستخدم والتوافق عبر الأجهزة المختلفة. Unity يوفر طرقًا لضبط دقة الشاشة ديناميكيًا أثناء وقت التشغيل. في هذا البرنامج التعليمي، سنرشدك خلال عملية تغيير دقة الشاشة في لعبتك Unity والحصول على دقة الشاشة المتوفرة.

تغيير دقة الشاشة أثناء وقت التشغيل

Unity يوفر واجهة برمجة تطبيقات مباشرة لتغيير دقة الشاشة أثناء اللعب. يمكنك استخدام مقتطف الكود التالي لتغيير دقة الشاشة:

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 الذي يحتوي على عنصر القائمة المنسدلة لواجهة المستخدم (مكون "القائمة المنسدلة"). بعد ذلك، قم بتعيين القائمة المنسدلة ومراجع البرنامج النصي 'ResolutionManager' في محرر Unity.

خاتمة

باتباع هذه الخطوات ودمج أمثلة التعليمات البرمجية المتوفرة، يمكنك تنفيذ تغييرات دقة الشاشة الديناميكية في لعبتك Unity بسلاسة، مما يوفر للاعبين المرونة ويعزز تجربة اللعب الشاملة الخاصة بهم.