‫مرحبًا بعودتك.
‫في هذا الفيديو ، سنعمل على عرض نص على الشاشة لإعلامنا بأن اللعبة قد بدأت.
‫وهذه هي الخطوة الأولى لإظهار عداد العد التنازلي لإعلام اللاعب بأن اللعبة
‫لم تبدأ بعد ، لكنها ستبدأ قريبًا.
‫الآن ، سيشمل هذا مخطط أحداث قابلة للتنفيذ.
‫حدث Blueprint القابل للتنفيذ هو وظيفة C ++ يمكننا الاتصال بها من C ++ ، لكننا نقوم بالفعل
‫بتنفيذ الوظيفة على جانب المخطط.
‫لذلك قد يكون لدينا فئة C ++ الخاصة بنا مثل وضع اللعبة ، ويمكن أن يكون لدينا وظيفة مميزة على أنها
‫مخطط ، حدث قابل للتنفيذ ، ومن ثم يمكننا تنفيذ هذا السلوك في المخططات.
‫لذلك عندما نسمي وظيفة C ++ التي تم تمييزها كحدث مخطط قابل للتنفيذ ، فسيتم تشغيل الحدث
‫في المخطط.
‫وسيتم استدعاء أي منطق مخطط نربطه بهذا الحدث في المخطط.
‫لذلك سأقوم بإنشاء مخطط حدث قابل للتنفيذ هنا في دبابات الضبط ، وأنماط اللعبة والأحداث القابلة
‫للتنفيذ للمخطط لا يمكن أن تكون خاصة.
‫لذلك سأضيف هذا إلى القسم المحمي.
‫الآن سأجعل هذه وظيفة باطلة وسأطلق عليها ببساطة لعبة البداية.
‫الآن ، لجعل هذا المخطط حدثًا قابلاً للتنفيذ ، لا بد لي من إعطائه ماكرو دالة U مع
‫وظيفة U.
‫حدد مخطط الحدث القابل للتنفيذ.
‫الآن ، بمجرد وضع علامة على هذا الحدث القابل للتنفيذ للمخطط ، لا نحتاج حتى إلى إعطائه جسمًا
‫وظيفيًا هنا في C ++.
‫يتوقع Unreal Engine منا تنفيذ الوظيفة الخاصة بذلك في المخططات ، ولكن يمكننا
‫تسميتها من C ++ وهذا بالضبط ما سنفعله هنا في Handle Game Start.
‫لذا بعد أن قمنا بتعيين الخزان ومتغيرات وحدة التحكم في اللاعب ، سأطلق على اللعبة بدء اللعبة
‫والآن يمكننا تجميع هذا.
‫وبالعودة إلى هنا في المحرر ، سأقوم بفتح وضع لعبة BP tune Tanks وهنا يمكننا
‫تنفيذ الوظيفة.
‫لذلك إذا نقرنا بزر الماوس الأيمن واكتبنا بدء اللعبة ، فهذه هي لعبة بدء الحدث التي تم إنشاؤها
‫بمجرد أن أعلنا عن الوظيفة وأعطيناها وظيفة الماكرو مع حدث مخطط قابل للتنفيذ.
‫لذا من ناحية C ++ ، نحن نسمي هذا وفي المخططات ، هذا الحدث يستجيب له.
‫يمكننا اختبار ذلك باستخدام عقدة سلسلة طباعة بسيطة وللسلسلة يمكننا القول بدء اللعبة.
‫الآن إذا ضغطنا اللعب ، سأرى بدء اللعبة في أعلى اليسار.
‫لذلك نحن نعلم أن حدث مخططنا القابل للتنفيذ يعمل بنجاح.
‫الآن ، ما نود أن يفعله هذا الحدث هو إظهار عنصر واجهة مستخدم يحتوي على نص يخبر اللاعب أن اللعبة على وشك البدء ،
‫مما يعني أننا بحاجة إلى إنشاء عنصر واجهة مستخدم لعرضه.
‫لذلك سأقوم بإنشاء مجلد جديد في مجلد المخططات وسأسمي هذه الأدوات وسوف أقوم بالنقر نقرًا مزدوجًا فوق عناصر
‫واجهة المستخدم.
‫وهنا سأقوم بإنشاء مخطط عنصر واجهة مستخدم جديد.
‫الآن إذا نقرت بزر الماوس الأيمن وانتقلت إلى واجهة المستخدم ، فإليك Widget Blueprint.
‫الآن إذا قمت بالنقر فوق هذا ، فسوف أقوم بإنشاء مخطط عنصر واجهة مستخدم جديد وسأسمي W BP هذا لمخطط Widget
‫Blueprint ، وشرطة سفلية لبدء عنصر واجهة المستخدم.
‫وإذا نقرت مرتين على هذا ، فسأفتح محرر Widget Blueprint وسترى أنه يبدو مختلفًا
‫تمامًا عن محرر Blueprint الذي اعتدنا على رؤيته.
‫وهذا لأن هذا من أجل القطعة.
‫تعتبر الأدوات الذكية جيدة لعرض الأشياء على الشاشة مثل النص.
‫يوجد الآن الكثير هنا وسنقوم فقط بإنشاء عنصر واجهة مستخدم أساسي للغاية يعرض النص.
‫هناك عدد من أنواع العناصر المختلفة التي يمكننا إضافتها إلى مخطط عنصر واجهة المستخدم مثل الحدود والأزرار
‫ومربعات الاختيار والصور وما إلى ذلك.
‫لكن ما يهمنا هو هذا هنا والذي يقول النص.
‫انظر الآن لأسفل هنا في لوحة التسلسل الهرمي ، سترى أن لدينا أداة WB الشاملة لبدء اللعبة في
‫الأعلى.
‫وإذا نقرنا على ذلك ، فيمكننا تغيير خصائص هذه الأداة.
‫يمكننا الآن سحب عناصر عنصر واجهة المستخدم إلى هذا التسلسل الهرمي.
‫لذلك سأقوم بالبحث في اللوحة عن لوحة قماشية واسحبها لأسفل في التسلسل الهرمي الخاص بي.
‫تتيح لنا الآن لوحة قماشية وضع عناصر عنصر واجهة المستخدم وتعيينها في الموقع المطلوب على الشاشة
‫حتى نتمكن من سحب عنصر نصي مباشرة إلى الرسم البياني.
‫وسترى في التسلسل الهرمي هذا العنصر الجديد ضمن لوحة قماش الرسم.
‫وهي تقول ، نص.
‫كتلة النص.
‫الآن ، كتلة النص بين علامات الاقتباس هي النص الذي يتم تعيينه تلقائيًا لعنصر واجهة النص هذا.
‫وهنا في لوحة التفاصيل ، مع تحديد عنصر واجهة النص هذا ضمن المحتوى ، نرى خاصية نصية وقد
‫تم ضبطها على كتلة نصية.
‫ولكن يمكننا ضبط هذا على أي نص نريده ، مثل الاستعداد.
‫الآن ، بعد ضبط هذا على الاستعداد ، سترى أن النص الموجود هنا على الشاشة يقول ، استعد.
‫لذا يتيح لنا محرر مخطط Widget Blueprint تخصيص إشعار عناصر واجهة المستخدم الخاص بنا في أعلى يسار الشاشة ،
‫وهذا الشيء الذي يمثل الميدالية هنا ، ويسمى هذا المرساة.
‫يتم وضع عنصر واجهة النص الخاص بنا على الشاشة بالنسبة إلى المرساة.
‫لذلك إذا تغير حجم الشاشة ، فإن المسافة من هذا المرساة ستبقى ثابتة.
‫ويمكننا تغيير المرساة إذا أردنا ذلك.
‫على سبيل المثال ، يمكننا تعيين عنصر واجهة النص الخاص بنا بالنسبة إلى نقطة ارتساء في منتصف الشاشة
‫بالانتقال إلى لوحة التفاصيل وتحت الفتحة نرى المراسي.
‫وإذا قمت بالنقر فوق القائمة المنسدلة ، يمكنني تحديد هذا الرمز الذي يحتوي على مربع في المنتصف.
‫إذا قمت بتحديد ذلك الآن ، يكون المرساة في وسط الشاشة ، وإذا كنت أريد أن يتم توسيط عنصر
‫واجهة المستخدم الخاص بي بالكامل ، فيمكنني تغيير موضعه X و Y هنا ضمن فئة الفتحة حتى أتمكن من ضبط هذا على صفر للموضع
‫X والصفر بالنسبة إلى الموضع Y والتمرير باستخدام عجلة الماوس للتكبير ، سترى أنه في الزاوية اليسرى العليا
‫كما هو الحال في منتصف الشاشة.
‫الآن يمكن أن يتيح لنا حقل المحاذاة هذا توسيط هذا بشكل مثالي عن طريق اختيار قيم 0. 54 X و 0. 54 Y ، والآن يتم توسيطها
‫بالكامل في منتصف الشاشة.
‫الآن بالنسبة لعنصر واجهة مستخدم لعبة البدء ، من المحتمل أن يكون من المناسب وضع هذا النص أعلى قليلاً.
‫لذلك بالنسبة إلى الموضع Y ، يمكنني النقر فوق هذا وسحبه إلى اليسار ، مما يجعل هذا الموضع Y قيمة سلبية في
‫محرر مخطط عنصر واجهة المستخدم ، يشير المحور y إلى أسفل.
‫لذلك إذا أردنا رفع عنصر واجهة النص الخاص بنا ، فسنجعل هذا الموضع y قيمة أقل.
‫سأقوم بوضعه هنا عند حوالي -300.
‫الآن في فئة المظهر ، يمكنني تغيير عدد من الخصائص لهذا النص.
‫إذا قمت بالنقر فوق القائمة المنسدلة للخط ، يمكنني تغيير حجم الخط ليقول شيئًا مثل 42.
‫الآن لمحرف بدلا من الغامق.
‫أنا أحب الخط العادي.
‫أعتقد أنه يبدو أفضل قليلاً الآن.
‫لاحظ أن نص أداة النص لدينا أكبر من المستطيل الأخضر هنا ، ولكن يمكننا تغيير حجم هذا المستطيل
‫الأخضر.
‫وبينما أقوم بتغيير المستطيل ، سترى هنا في لوحة التفاصيل أن الحجم X والحجم y يتغيران.
‫الآن ، لاحظ أن الموضع X قد تحرك قليلاً منذ أن قمت بتغييره.
‫يمكنني إعادته إلى الصفر وبما أن المحاذاة لـ x تساوي 0. 5 ، تتمحور تمامًا.
‫الآن لديّ عنصر واجهة مستخدم يقول استعد.
‫الشيء الوحيد المتبقي هو إضافة هذا إلى منفذ العرض حتى نتمكن من رؤيته على الشاشة.
‫ستلاحظ أنه إذا قمت بالضغط على "تشغيل" وبدأت في ممارسة اللعبة ، فلن أرى هذه الأداة على الشاشة.
‫هذا لأنه يتعين علينا إضافة هذا بشكل نشط إلى الشاشة ، ولهذا السبب أنشأنا حدث المخطط
‫القابل للتنفيذ هذا في وضع اللعبة حتى نتمكن من إضافة هذه الأداة إلى الشاشة هنا.
‫لذلك دعونا نتحدث عن كيفية القيام بذلك.
‫حاليا.
‫تتمثل طريقة إنشاء عنصر واجهة مستخدم من المخططات في استخدام عقدة إنشاء عنصر واجهة المستخدم.
‫يمكنك النقر بزر الماوس الأيمن فوق الرسم البياني للحدث للحصول على أي مخطط والبدء في كتابة اسم العقدة
‫ثم تحديد تلك العقدة المعينة.
‫العقدة التي نحتاجها هي إنشاء عنصر واجهة مستخدم.
‫الآن سترى أنه يقول Create Coolness Widget.
‫وذلك لأنه بمجرد إضافة عقدة Create Widget ، قمت بتحديد فئة Widget Blueprint هنا في
‫القائمة المنسدلة للفصل.
‫يعد هذا ضروريًا حتى يعرف Unreal Engine فئة عنصر واجهة المستخدم المراد إنشاؤها.
‫الآن ، بعد استخدام عقدة إنشاء عنصر واجهة مستخدم ، نستخدم إضافة إلى عقدة منفذ العرض لإضافة عنصر واجهة المستخدم
‫هذا بالفعل إلى منفذ العرض ومن ثم يمكننا رؤيته على الشاشة في اللعبة.
‫لاحظ أن أسلاك التنفيذ متصلة وأيضًا أن عقدة إنشاء عنصر واجهة المستخدم تُرجع هذا الإخراج الأزرق ويجب أن يكون
‫متصلاً بإدخال الهدف في إضافة إلى منفذ العرض نظرًا لأن الإضافة إلى منفذ العرض تحتاج إلى معرفة عنصر
‫واجهة المستخدم المراد إضافته إلى منفذ العرض وعقدة إنشاء عنصر واجهة المستخدم ترجع قيمة تلك القطعة.
‫الآن بعد أن عرفت كيفية إنشاء عنصر واجهة مستخدم في المخططات ، ستنتقل إلى فئة وضع لعبة
‫BP tune Tanks وتستخدم عقدة إنشاء عنصر واجهة مستخدم.
‫أنت بصدد ربط هذا من مخطط تنفيذ الأحداث القابل للتنفيذ الخاص بنا.
‫سمينا بدء اللعبة.
‫الآن في عقدة إنشاء عنصر واجهة المستخدم ، نحتاج إلى تحديد فئة عنصر واجهة المستخدم لإنشاء عنصر واجهة مستخدم ، لذا حدد WB start game
‫widget ، مخطط عنصر واجهة المستخدم الجديد الذي أنشأناه للتو ، ثم استخدم إضافة إلى عقدة منفذ العرض لإضافة عنصر
‫واجهة مستخدم جديد إلى منفذ العرض والخطاف يصل أسلاك التنفيذ.
‫ولا تنسَ ربط قيمة الإرجاع من إنشاء عنصر واجهة مستخدم إلى إدخال الهدف إضافة إلى منفذ العرض.
‫لذا قم بإيقاف الفيديو مؤقتًا وأضف هذه العقد إلى مخطط وضع لعبة خزان الضبط الآن.
‫لذلك أنا هنا في لحن Tanks Game Mode Blueprint وسأقوم بالنقر بزر الماوس الأيمن واكتب إنشاء عنصر واجهة مستخدم
‫واختيار إنشاء عقدة عنصر واجهة المستخدم.
‫لاحظ الآن أنه يقول Construct None.
‫وذلك لأنه سيقول ذلك حتى نختار فئة الأدوات المناسبة في القائمة المنسدلة
‫للفصل.
‫ولكن قبل أن أفعل ذلك ، سأقوم بتوصيل سلك التنفيذ من لعبة بدء الأحداث.
‫لذلك نقوم بالفعل بتنفيذ هذه الوظيفة بمجرد استدعاء لعبة بدء الحدث القابلة للتنفيذ
‫الخاصة بنا من C ++.
‫الآن بالنسبة إلى القائمة المنسدلة للفصل ، سأقوم بتحديد WP Start Game Widget والآن يتغير عنوان
‫Node ليقول إنشاء WP Start Game Widget.
‫الآن يمكننا أن نرى أن هذه عقدة إنشاء عنصر واجهة المستخدم.
‫سأقوم الآن بالنقر فوق سلك التنفيذ وسحب ثم اكتب إضافة إلى منفذ العرض.
‫ثم إذا حددت إضافة إلى منفذ العرض ، فسيتم توصيل أسلاك التنفيذ تلقائيًا بالنسبة لي ، ولكنها
‫لا تربط قيمة الإرجاع من إنشاء عنصر واجهة مستخدم إلى الإدخال الهدف للإضافة إلى منفذ العرض.
‫لذلك أنا بحاجة إلى النقر عليها وسحبها بنفسي.
‫الآن عندما يتم استدعاء Start Game من C ++ وفئة وضع اللعبة ، سنقوم بتنفيذ منطق المخطط هذا
‫والذي سينتج عنه إنشاء عنصر واجهة مستخدم جديد استنادًا إلى عنصر واجهة WP Start Game ثم نضيفه إلى
‫منفذ العرض.
‫لذلك سأضغط على "تشغيل" وهناك أداة "الاستعداد".
‫لقد ذكرنا الآن أن هذا سيُظهر مؤقتًا للعد التنازلي ، لكننا لم ننفذ هذه الوظيفة
‫بعد ، لذا سيأتي ذلك قريبًا.
‫باختصار ، أنشأنا مخطط Start Game Widget Blueprint والآن يحتوي فقط على نص يقول
‫استعد.
‫استخدمنا أيضًا عقدة إنشاء عنصر واجهة مستخدم وإضافة إلى عقدة منفذ العرض لإضافة هذه الأداة إلى منفذ العرض حتى
‫نتمكن من رؤيتها بمجرد بدء اللعبة.
‫وقد بدأنا هذه الوظيفة باستخدام حدث مخططنا القابل للتنفيذ الذي أنشأناه في وضع اللعبة
‫فئة C ++ تسمى Start Game في مقاطع الفيديو القادمة ، سنقوم بتغيير النص في هذه الأداة في وقت
‫التشغيل بحيث يُظهر مقدار الوقت المتبقي في مؤقت بدء اللعبة هذا حتى يعرف اللاعب مقدار الوقت
‫الذي ينتظره قبل أن يتمكن من بدء اللعب فعليًا.
‫سأراك قريبا.