‫أهلا ومرحبا.
‫في هذه المحاضرة ، سنأخذ فوضى المخططات الخاصة بنا وننظمها بدقة في وظائف
‫حتى نتمكن بسهولة من قراءة وفهم ما يجري في مخطط حدث مخطط الأحداث.
‫دعنا نتعمق ونرى كيفية القيام بذلك.
‫الآن ، إذا قمنا بالتصغير على الرسم البياني للأحداث ، يمكننا أن نرى أنه بدأ في الحصول على ضوضاء كبيرة.
‫يمكنني أيضًا رؤية عقدتين غير متصلتين بأي شيء.
‫هناك عقدة Get سأقوم بحذفها ، أحد الأصول ، عقدة M0 ، لكن يمكنك أن ترى أنها أصبحت مزعجة للغاية.
‫أصبح من الصعب فهم ما يحدث هنا.
‫الآن ، الحل النموذجي الذي يفعله الناس هو أن يقولوا ، حسنًا ، هذه الكتلة من العقد هنا تدور حول إنتاج القذيفة.
‫لذلك يمكنني اختيار هؤلاء.
‫يمكنني الضغط على المفتاح C وسيقوم بوضع كتلة حول هذا يسمى كتلة التعليق.
‫وبعد ذلك يمكنني كتابة مقذوفات تفرخ وهذا يتيح لي معرفة ما تفعله كتلة التعليمات البرمجية هذه.
‫هذه بالتأكيد طريقة واحدة لتنظيم التعليمات البرمجية الخاصة بك.
‫ومع ذلك ، في رأيي ، إنها ليست أفضل طريقة ولدينا أدوات أفضل للقيام بهذا المسماة الوظائف.
‫إذن ما هي الوظائف؟
‫تنفذ الوظائف مجموعات من المخطط وتجعل ألعابنا تقوم بالأشياء.
‫العديد من العقد التي يوفرها Unreal Real هي بالفعل وظائف بالفعل.
‫لذلك واجهنا هذه.
‫عندما تذهب وتكبير العقدة المقذوفة الخاصة بنا ، فهذه وظيفة.
‫عندما ننظر إلى إضافة الدافع ، فهذه وظيفة في الواقع لمعظم هذه العقد ، حتى أشياء مثل المضي قدمًا في
‫المتجه النشط الذي لا يحتوي على دبوس تنفيذ وليس باللون الأزرق هي أيضًا وظيفة
‫يمكنك تحديدها لأنها تحتوي على رمز f صغير في أعلى اليسار يشير إلى الوظيفة ، لكننا لسنا مقيدين بالوظائف
‫التي يوفرها Unreal.
‫يمكننا أيضًا إنشاء وظائف خاصة بنا ، ومن السهل فعلها حقًا.
‫في مخطط.
‫إنها تسمح لنا بالبقاء منظمين وتسمح لنا بإعادة استخدام كتل التعليمات البرمجية.
‫هذا أفضل من التعليق لأنه يجب نسخ التعليق ولصقه.
‫في حين أن الوظيفة تسمح لنا بمشاركة كتلة واحدة من التعليمات البرمجية بين أماكن استخدام متعددة.
‫لذلك دعونا نلقي نظرة على كيفية تحويل شيء مثل هذا إلى كتلة من التعليمات البرمجية.
‫حسنًا ، يمكننا حذف مجموعة التعليقات ، أولاً وقبل كل شيء ، لأنني لا أعتقد أن هذا ضروري.
‫بدلاً من ذلك ، سأقوم بتحديد جميع العقد من الحصول على لاعب - على طول الطريق لإضافة الدافع ، انقر
‫بزر الماوس الأيمن عليها وحدد الانهيار للعمل.
‫وهذا يؤدي إلى إنشاء كتلة جديدة واستبدال كل تلك العقد السابقة التي كانت موجودة من قبل.
‫الآن سأقوم بإعطاء هذه الوظيفة اسمًا يمكنك رؤيته في الجزء الأيمن.
‫لقد أنشأت وظيفة جديدة ضمن قسم الوظيفة في جزء المخطط الخاص بي وتم تحديدها لي لإعادة التسمية
‫تلقائيًا لأنه يجب علينا بالتأكيد إعادة تسمية هذه الوظائف وسأطلق
‫عليها اسم قذيفة تفرخ.
‫والتسمية الجيدة أمر حيوي للغاية في البرنامج لأن الكود هو أساسًا يتعلق بالاتصال.
‫نحاول التواصل مع أنفسنا حتى نتمكن من فهم ما كتبناه.
‫نحن نحاول التواصل مع أنفسنا في المستقبل.
‫عندما نعود إلى هذا المشروع ، ننسى لماذا كتبناه بطريقة معينة.
‫وعندما تعمل في فرق ، فأنت تحاول التواصل مع بقية أعضاء فريقك أيضًا.
‫يقول البعض أن المقياس الجيد لجودة الكود هو ما هو هيك في الدقيقة.
‫لذا ، إذا كنت تقرأ جزءًا من التعليمات البرمجية وأنت ذاهب ، ما هذا ، 50 مرة في الدقيقة ، فهذا
‫رمز سيء جدًا إذا كنت تقرأه وتذهب فقط ، ما هيك ، مرة أو مرتين في الدقيقة ، إذن ربما
‫يكون هذا رمزًا جيدًا وستحصل دائمًا على سداسي عشري إلى حد ما.
‫لذلك نحن نحاول فقط تقليل هذا العدد من وظائفهم.
‫بشكل حاسم ، نميل إلى تسمية الوظائف بالأفعال.
‫هناك بعض الاستثناءات لهذه القاعدة سنتحدث عنها لاحقًا ، لكن الوظائف في الغالب هي الأشياء التي
‫تقوم بشيء ما.
‫لذلك نستخدم كلمات الفعل وإذا لم تكن متأكدًا من كيفية تسمية هذه الوظيفة ، فعندئذٍ إذا كنت تعمل
‫في فريق ، يمكنك فقط التحدث إلى شخص آخر واسأله عما يعتقد أنه يجب عليك تسميته
‫ونوع الأشياء له معنى لهم.
‫غالبًا ما تجد أنك متأصل في مشكلة بحيث لا يمكنك التفكير في كيفية التحدث عنها.
‫لذلك قد تسأل نفسك ، حسنًا ، أين ذهبت كل شفراتي عندما أنشأت وظيفة إطلاق
‫قذيفة؟
‫حسنًا ، يمكنك العودة إلى تلك التفاصيل الخاصة بكيفية تنفيذ هذه الوظيفة فعليًا إما بالنقر المزدوج عليها في الرسم البياني
‫للحدث أو النقر عليها في علامة التبويب My Blueprints أو النقر المزدوج عليها في علامة التبويب My Blueprints.
‫ويمكنك أن ترى أن جميع العقد الخاصة بنا لا تزال مقيمة هنا الآن ، فهي في علامة تبويب منفصلة حتى تتمكن
‫من العودة إلى علامة تبويب الرسم البياني للحدث أو يمكنك الغوص في علامة تبويب Spawn projectile التي
‫تعرض ذلك فقط وظيفة.
‫ويمكنك أن ترى أن هناك عقدة جديدة هنا ، هذه العقدة الأرجوانية الصغيرة ، وهي نقطة الدخول إلى وظيفتنا.
‫هذا يوضح أن هذا ما يجب أن نفعله عندما تبدأ الدالة.
‫إنها مجرد نقطة دخول.
‫وكلما تم استدعاؤها ، ستعمل هذه العقدة على تشغيل وتشغيل جميع العقد المتبقية داخل
‫وظيفتنا.
‫العودة إلى الرسم البياني للحدث و.
‫التصغير ، ربما يتم تجميع عقدنا معًا قليلاً.
‫الآن وقد جعلنا الرسم البياني للعقدة أصغر كثيرًا وأسهل في القراءة.
‫أعتقد أن هناك مرشحين آخرين هنا لنا لسحب الوظائف واستبدال الأشياء.
‫سيكون أحدها حيث نطبع الذخيرة.
‫لذا في هذه الحالة ، فإن طباعة الذخيرة هو شيء نقوم به في مكانين.
‫نفعل ذلك في بدء اللعب ونقوم به في قذيفة تفرخ.
‫ثم في المكان الآخر ، الشيء الآخر ، الجزء الوظيفي الذي يمكننا استخلاصه في دالة
‫سيكون حيث نقوم بتقليل الذخيرة التي يمكن وضعها في وظيفة ذخيرة متناقصة بدلاً من ذلك.
‫لذا ، قبل أن أضع لك التحدي ، أود حذف عقدة التحويل وطباعة عقدة السلسلة
‫بعد قذيفة النشر لأن هذا سيعقد الأمور.
‫أود نسخ الوظيفة من أعلى بحيث يبدو كلاهما متماثلًا تمامًا.
‫لذلك إذا قمنا بنسخ العقد الثلاثة من Begin Play ولصقها في الأسفل وقمنا بتوصيل دبابيس التنفيذ ، فيمكنك
‫أن ترى أننا حصلنا على نفس مجموعة العقد هنا بالضبط ، نفس الوظيفة بين الاثنين
‫، ولا يوجد أي ارتباك عندما نأتي لاستخراج هذا في وظيفة.
‫لذا أود أن أتحداك للقيام ببعض الوظائف الإضافية.
‫أول ما أوصي به هو انخفاض الذخيرة.
‫إذن أخذ العقد الثلاثة المتضمنة في تقليل الذخيرة ، واستخراجها في وظيفة ومنحها
‫اسمًا.
‫والثاني هو ذخيرة الطباعة.
‫لذلك ، سوف تستخرج وظيفة الحصول على الذخيرة وتحويلها وطباعتها
‫في وظيفة واحدة.
‫ولأن لدينا موقعين نطبع فيهما الذخيرة ، فقد ترغب في حذف أحدهما وإحضار الوظيفة
‫بدلاً من ذلك ، وهو ما يمكنك القيام به عن طريق السحب من جزء المخطط الخاص بي.
‫ثم أخيرًا لدينا رسالتان ترحيبيتان ، ناتجة عن عقد رسائل الترحيب.
‫يمكنك استخراجها في صورة مطبوعة.
‫رسائل الترحيب تعمل كذلك.
‫أوقف الفيديو واذهب.
‫تمام.
‫مرحبًا بعودتك.
‫لذلك سنستخرج ذخيرة التخفيض أولاً.
‫إذن هناك ثلاث عقد تشارك في ذلك.
‫سننقر بزر الماوس الأيمن على طي الوظيفة ، ثم سنسميها تقليل الذخيرة وهذا واضح إلى حد
‫ما.
‫حتى تفرخ قذيفة ، وتقليل الذخيرة ثم نقوم بطباعة الذخيرة.
‫لنأخذ العقد الثلاثة ، سلسلة التحويل والطباعة ، وسننقر بزر الماوس الأيمن على
‫الطي لتعمل ونطلق على هذه الذخيرة المطبوعة.
‫الآن كما قلت ، لقد تكررت هذه الوظيفة في مكانين ، لذلك سنحذف المكان الذي تقوم فيه
‫بذلك في بدء التشغيل وسحب فقط ذخيرة الطباعة من قائمة الوظائف الخاصة بنا ونقوم بتوصيل دبابيس التنفيذ
‫بحيث يتم تشغيلها بعد سلسلة الطباعة.
‫وهو ما يقودني إلى الوظيفة الأخيرة التي أرغب في إنشائها ، والتي قلنا أننا سنطلق عليها رسائل الترحيب المطبوعة.
‫لذلك سأقوم بتحديد السلاسل المراد طباعتها بعد أن تكون في طور التشغيل لتعمل وأسميها
‫طباعة رسائل الترحيب.
‫وهذه العقدة ، يمكننا الآن فقط إعادة ترتيب كل عقدنا لتسهيل قراءة كل هذا في شاشة واحدة
‫ممتلئة.
‫يمكنك أن ترى أنه من الأسهل بكثير فهم وظائف لعبتنا الآن لأنها تناسبها جميعًا على
‫شاشة واحدة ويتم تقديمها بشكل جيد إلى مستوى مماثل من التجريد والفهم.
‫وهذا ما نسميه كود التوثيق الذاتي ، لأنه رمز لا يحتاج إلى تعليقات أو
‫توثيق لشرح ما يفعله.
‫انها فقط تقرأ مثل اللغة الإنجليزية.
‫أشياء عظيمة.
‫سأراك في المحاضرة القادمة.