Unity Game Engine: التعامل مع عناصر المشهد scene Count
لفهم هذا علينا أولا أن ندرك ما هي المشاهد.
تشير المشاهد إلى العناصر التي تحتوي على سيناريو معين للعبة.
ضع في اعتبارك أن لديك لعبة بها عالم يتكون من جزأين: مدينة وغابة.
هنا يمكننا أن نقول أنه يمكن تعريف هذا العالم في مشهدين
(على الرغم من أنه قد لا يكون هذا هو الحال بالنسبة للألعاب الأكبر حجمًا) ،
أحدهما للمدينة والآخر للغابة.
نقلا عن مستندات الـ Unity :
تحتوي المشاهد على كائنات لعبتك.
يمكن استخدامها لإنشاء قائمة رئيسية ومستويات فردية وأي شيء آخر.
فكر في كل ملف مشهد فريد على أنه مستوى فريد.
في كل مشهد ، ستضع بيائاتك وعقباتك وزخارفك ، و
ستقوم بشكل أساسي بتصميم وبناء لعبتك في أجزاء .
منذ آخر التحديثات القليلة ، بدأت Unity في استخدام مكتبة جديدة
للوصول إلى المشاهد والتنقل بينها. هذه المكتبة تسمى SceneManagement.
لاستخدام هذه المكتبة ، يتعين علينا أولاً تضمينها.
نقوم بذلك عن طريق الكتابة
using UnityEngine.SceneManagement
في بداية النص.
في هذه المكتبة ، سيكون الفصل الذي ستواجهه وتستخدمه
أكثر من غيره هو SceneManager.
بما في ذلك المشاهد في البناء
لكي نتمكن من الوصول إلى مشهد عبر فئة SceneManager ،
نحتاج أولاً إلى إضافة المشهد إلى إعدادات البناء
للقيام بذلك احفظ مكان الحادث من قبل CTRL + S .
سيتم حفظه في مجلد الأصول .
انتقل الآن إلى ملف في شريط القوائم وحدد إنشاء الإعدادات .
في النافذة التي تفتح ، اسحب وأفلت أيقونة المشهد من علامة تبويب المشروع
في المساحة الموجودة أسفل Scenes In Build .
يمكننا إضافة مشاهد متعددة بطريقة مماثلة وإعادة ترتيبها.
ترتيب المشاهد يحدد رقم المشهد والمشهد الذي سيتم تحميله أولاً عند بدء اللعبة.
مدير المشهد او Scene Manager
تشتمل فئة Scene Manager (إدارة المشهد في وقت التشغيل )
على ما يلي :
الخصائص الثابتة :
- المشهد sceneCount
العدد الإجمالي للمشاهد المحملة حاليًا
- sceneCountInBuildSettings
عدد المشاهد في إعدادات البناء.
الطرق الثابتة :
إنشاء مشهد قم بإنشاء مشهد جديد فارغ في وقت التشغيل بالاسم المحدد.
GetActiveScene :
تحصل على المشهد النشط حاليا.
GetSceneAt :
تحصل على فهرس المشهد في قائمة SceneManager للمشاهد المحملة.
GetSceneByBuildIndex :
تحصل على هيكل المشهد من فهرس البناء.
GetSceneByName :
يبحث في المشاهد المحملة عن مشهد بالاسم المحدد.
GetSceneByPath :
يبحث في جميع المشاهد التي تم تحميلها عن مشهد له مسار الأصل المحدد.
التحميل LoadScene :
يقوم بتحميل المشهد حسب اسمه أو الفهرس في إعدادات البناء .
LoadSceneAsync :
يقوم بتحميل المشهد بشكل غير متزامن في الخلفية.
MergeScenes :
سيؤدي هذا إلى دمج المشهد المصدر في مشهد الوجهة.
MoveGameObjectToScene :
انقل كائن GameObject من مشهده الحالي إلى مشهد جديد.
SetActiveScene :
اضبط المشهد ليكون نشطًا.
UnloadSceneAsync :
يدمر جميع كائنات GameObject المرتبطة بالمشهد المحدد و
يزيل المشهد من SceneManager.
الأحداث :
- activeSceneChanged :
اشترك في هذا الحدث ليتم إعلامك عند تغيير المشهد النشط.
- المشهد sceneLoaded :
أضف مفوضًا إلى هذا للحصول على إشعارات عند تحميل المشهد.
- مشهد غير محمل sceneUnloaded :
أضف مفوضًا إلى هذا للحصول على إشعارات عند إلغاء تحميل المشهد.