القائمة الرئيسية

الصفحات

Unity Game Engine: ادارة المشاهد و تغييرها في Unity 3D

Unity Game Engine: ادارة المشاهد و تغييرها في Unity 3D
 

Unity Game Engine: ادارة المشاهد و تغييرها في Unity 3D

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

Unity Game Engine: ادارة المشاهد و تغييرها في Unity 3D

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




بشكل عام أيضًا عند تغيير مشهد من مشهد إلى آخر ، يتم إتلاف جميع حالات 
عناصر اللعبة والنصوص وما إلى ذلك التي تنتمي إلى
 هذا المشهد ويتم تحميل العناصر الموجودة في المشهد الجديد. 
هناك طريقة أخرى وهي استخدام وظيفة ()DontDestroyOnLoad
 التي ستحافظ على مرجع كائن عبر تغييرات المشهد ولكن هذا جيد يمكن التطرق إليه في مقال تعليمي آخر.

إنشاء كائن SceneChanger والمباني الجاهزة Prefab

حسنًا ، بالعودة إلى Unity ، في علامة التبويب Hierarchy في "Scene1" ،
 قم بإنشاء كائن لعبة فارغ وقم بتسميته "SceneChanger" .

Unity Game Engine: ادارة المشاهد و تغييرها في Unity 3D




تأكد من أن موضعها ودورانها عند <0،0،0>  و
أن المقياس عند <1،1،1> في التحويل . 
لا يؤثر ذلك على العمل ولكن من الممارسات الجيدة الاحتفاظ بكائنات GameObject 
التي تمتلك تحويلها فقط ليتم وضعها في الأصل.
الآن إضافة برنامج نصي إلى "SceneChanger" الكائن،
 وكذلك تسميته "SceneChanger". .
افتح الآن البرنامج النصي في MonoDevelop / Visual Studio وأدخل الكود التالي فيه:


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class SceneChanger : MonoBehaviour
{
public void ChangeScene(string sceneName)
{
SceneManager.LoadScene (name);
}
public void Exit()
{
Application.Quit ();
}
}


في هذا الكود ، قمنا بتضمين مكتبة UnityEngine
.SceneManagement التي تسمح لنا باستخدام فئة SceneManager .




في وظيفة ChangeScene (اسم السلسلة) ، نأخذ إدخال سلسلة من اسم اسم المشهد .
 ثم يتم تمرير هذا إلى وظيفة ()SceneManager.LoadScene  .
 تقوم هذه الوظيفة بتحميل المشهد الجديد المحدد باسمه (إن وجد).
في وظيفة ()Exit ، نستخدم وظيفة ()Application.Quit . 
هذه الوظيفة لها المهمة الأساسية المتمثلة في إنهاء أحد التطبيقات ،
 أي وظيفة مماثلة لزر X الأحمر أو زر الإغلاق في أعلى يمين الشاشة
هنا قمنا بإنشاء كائن. 
الآن لخلق لها الجاهزة ، ببساطة حدد الكائن في التسلسل الهرمي و
 السحب أسقطه داخل الأصول مجلد في علامة التبويب Project . 
بعد القيام بذلك سترى مكعب أزرق بنفس اسم الكائن. هذا هو الكائن الجاهزة.


Unity Game Engine: ادارة المشاهد و تغييرها في Unity 3D


الآن احفظ المشهد وانقر مرتين على "Scene2" . 
في هذا المشهد ، ما عليك سوى سحب وإسقاط مبنى SceneChanger ا
لجاهز في منفذ العرض أو علامة التبويب التسلسل الهرمي .
 سيتم إنشاء مثيل SceneChanger .




إنشاء واجهة المستخدم والمباني الجاهزة Prefab

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

 
Unity Game Engine: ادارة المشاهد و تغييرها في Unity 3D

الآن قم بتغيير النص إلى "هذا هو المشهد 1" . 
قم أيضًا بتغيير النص الموجود في الزر إلى "تغيير المشهد"
(ابحث عن كائن النص للزر باعتباره عنصرًا فرعيًا لكائن الزر). 
والنتيجة هي على النحو التالي:


Unity Game Engine: ادارة المشاهد و تغييرها في Unity 3D
 





الآن حدد كائن الزر في التسلسل الهرمي .
 في علامة التبويب المراقب ، انقر فوق رمز علامة الجمع في مكون الزر (البرنامج النصي) .

Unity Game Engine: ادارة المشاهد و تغييرها في Unity 3D

نحصل على هذا في نافذة الزر (البرنامج النصي).

Unity Game Engine: ادارة المشاهد و تغييرها في Unity 3D


الآن قم بسحب وإسقاط كائن SceneChanger من علامة التبويب Hierarchy
 في مساحة مرجع الكائن (المميزة باللون الأحمر) .

Unity Game Engine: ادارة المشاهد و تغييرها في Unity 3D


الآن حدد القائمة المنسدلة للوظيفة (مظللة باللون الأحمر).
 من القائمة المنسدلة ، حدد SceneChanger> ChangeScene (سلسلة) .




Unity Game Engine: ادارة المشاهد و تغييرها في Unity 3D


الآن سترى مساحة فارغة تحت قائمة الوظائف المنسدلة .
 اكتب فيه "Scene2" . هنا ما قمنا به هو تحديد كائن SceneChanger
 الخاص بنا والوصول إلى وظيفة ()ChangeScene . "Scene2" هو المدخل. 
الآن عندما يتم الضغط على الزر ، سيتم استدعاء وظيفة
 ()ChangeScene  وسيتغير المشهد إلى "Scene2" .
افعل الآن الشيء نفسه مع "Scene2" ولكن اكتب "Scene1" 
كمدخل وتغيير النص في Scene2 وفقًا لذلك .
أضف الآن المشاهد إلى Build Settings في قائمة File .
 إن القيام بذلك أمر حتمي لأنه بدون هذه Unity لن تتعرف على المشاهد ولن يحدث أي انتقال بينها.
الآن عندما تضغط تشغيل. سيؤدي النقر فوق الزر إلى تغيير المشهد.

ملاحظة:
 لم نجعل وظيفة الخروج كما هو الحال في محاكاة (تشغيل المشهد في Unity ) 
يتم تجاهل إجراء الخروج.
 ومع ذلك ، في بناء حقيقي للعبة يمكننا الخروج باستخدام ()Application ، Exit .


جدول المحتويات