‫مرحبًا بعودتك.
‫الآن في هذا الفيديو ، سنتحدث عن الأحداث الناجحة.
‫نود أن نكتشف متى تصطدم المقذوفة بشيء وبهذه الطريقة يمكننا أن نفعل شيئًا ردا على
‫ذلك ، مثل تدمير المقذوف.
‫ولاحقًا سنتعامل مع إحداث الضرر والتسبب في تأثيرات الانفجار وأشياء من هذا القبيل.
‫لذلك دعونا نتحدث قليلاً عن الأحداث الناجحة الآن.
‫يحتوي مقذوفنا على مكون شبكي.
‫إنه النوع هو مكون شبكي ثابت ومكون شبكي ثابت هو فئة واحدة في تسلسل هرمي طويل
‫للفئات ونظام المحرك غير الواقعي هو أحد مكوناتك البدائية.
‫هذه هي صفحة التوثيق للمكون البدائي.
‫تقول أن المكونات البدائية ترى مكونات تحتوي أو تولد نوعًا من الهندسة بشكل عام
‫ليتم عرضها أو استخدامها كبيانات تصادم.
‫لذلك فهي في الأساس مكونات المشهد مع بعض الميزات المضافة.
‫وإذا قمت بالتمرير لأسفل والنظر إلى التسلسل الهرمي ، فسترى أننا قد رأينا مكونًا
‫ومشتقًا من ذلك المكون البدائي ويمكنك الاستمرار في التمرير لأسفل ومشاهدة جميع الفئات الأخرى
‫المشتقة منك.
‫مكون بدائي.
‫الآن السبب الذي يجعلنا نشير إلى هذا هو أنك ترث مكون الشبكة الثابتة هذه
‫الميزات من المكون البدائي لديك ولديك القدرة على إنشاء أحداث النتائج.
‫الآن ، ماذا نعني بتوليد الأحداث الناجحة؟
‫حسنًا ، لنفترض أن لدينا بعض الأشكال الهندسية في عالمنا ممثلة بالمستطيل
‫على اليمين ، ولدينا كائن بشبكة ثابتة ممثلة بالدائرة على اليسار.
‫الآن ، إذا كان هذا الكائن الذي يحتوي على مكون شبكة ثابتة يتحرك نحو الكتلة ، ثم إذا تم إعداد هذا المكون
‫للتعامل مع أحداث الضربة ، فبمجرد أن يصل إلى تلك الكتلة ، سيتم إنشاء حدث النتيجة عند
‫الاصطدام.
‫الآن سينشئ حدث النتيجة بعض البيانات المتعلقة بهذا التصادم ، بما في ذلك المكون الذي تم
‫ضربه.
‫لذلك قد تحتوي هذه الكتلة هنا على مكون شبكي ثابت.
‫يمكننا الوصول إلى هذا المكون عند الاصطدام.
‫يمكننا أيضًا الوصول إلى الممثل الذي تم ضربه ويولد حدث الرأس أيضًا نتيجة EF.
‫لقد تعلمنا قليلاً عن نتيجة النتيجة F ونعلم أنها تحتوي على الكثير من المتغيرات
‫حول حدث النتيجة ، مثل موقع النتيجة ، وهو متجه F يمثل موقعًا في العالم.
‫لذلك لدينا شبكة المقذوفات الخاصة بنا.
‫هذا متغير من نوع مؤشر مكون شبكة ثابتة.
‫الآن عندما يصطدم مكون الشبكة الثابت هذا بشيء ما في العالم ، نريد أن يكون لدينا بعض الكود
‫الذي يستجيب لذلك.
‫نظرًا لكونه مكونًا شبكيًا ثابتًا ، فإنه يرث الأشياء من فئة المكون البدائي.
‫أحد الأشياء التي يرثها هو متغير يسمى على ضرب المكون.
‫الآن ها هي الوثائق الخاصة بضربة المكون.
‫يوصف بأنه حدث يسمى عندما يضرب المكون أو يصطدم بشيء صلب.
‫الآن بالتمرير لأسفل ، نرى أنه في ضرب المكون يحتوي على توقيع ضرب مكون من النوع F.
‫وإذا نقرنا على هذا ، فإننا نرى أن توقيع ضرب مكون F هو بنية.
‫الآن بالعودة إلى الوراء ، يمكننا أن نرى أن الوثائق تقول حدثًا يسمى عندما يضرب أحد المكونات
‫أو يصطدم بشيء صلب.
‫يمكن أن يحدث هذا بسبب أشياء مثل حركة الشخصية باستخدام الموقع المحدد مع تمكين المسح أو
‫محاكاة الفيزياء للأحداث عندما تتداخل الكائنات مثل المشي في المشغل ، انظر حدث التداخل.
‫لذلك هناك أحداث ناجمة وهناك أحداث متداخلة.
‫نحن مهتمون بالأحداث.
‫لذلك نحن نعلم أنه على نتيجة المكون موصوفة في الوثائق على أنها حدث نتيجة ونعلم
‫أنه في نتيجة المكون عبارة عن بنية من النوع F.
‫حتى الان جيدة جدا.
‫الآن هذا الحدث الناتج على نتيجة المكون هو أيضًا شيء نشير إليه كمفوض الإرسال المتعدد.
‫يمكن أن يكون لمفوض الإرسال المتعدد وظائف متعددة مرتبطة به.
‫يمكن أن تكون هناك وظائف موجودة في فئات متعددة.
‫وإذا ارتبطت هذه الوظائف بمفوض الإرسال المتعدد هذا ، فسيتم إضافتها إلى شيء يسمى
‫قائمة الاستدعاء.
‫هذه قائمة بالوظائف التي يجب استدعاؤها عندما يخبرهم حدث النتيجة هذا أن يتم استدعاؤهم جميعًا.
‫نقول أن هذا الحدث الناجح أو مفوض الإرسال المتعدد يبث عندما يحدث شيء ما.
‫لذلك في حالة اصطدام شبكة المقذوف بشيء ما ، فسيقوم المندوب بالبث إلى جميع الفئات
‫التي لها وظيفة مرتبطة بهذا المندوب.
‫بمجرد إرسال هذا البث ، يتم استدعاء كل هذه الوظائف المرتبطة استجابة
‫للبث.
‫هذه ميزة قوية للغاية لمحرك غير واقعي.
‫إنه يسمح لنا بالحصول على هذا الشيء المسمى بالمفوض ، الذي ينتظر حدثًا مثل الاصطدام.
‫وثم.
‫وسيتم بث المندوب ، مما يؤدي إلى استدعاء جميع الوظائف المرتبطة ردًا على البث.
‫نظرًا لأنه يمكن ربط وظائف متعددة بهذه الدقة ، فإننا نسميها البث المتعدد.
‫إنها تبث لفئات متعددة ترتبط وظائفها بها.
‫الآن ، كيف نربط دالة بهذا المفوض؟
‫حسنًا ، في ضرب المكون ، يحتوي على عدد من الوظائف التي تتيح لنا القيام بذلك ، أحدها يسمى
‫إضافة ديناميكية.
‫لذلك عندما نطلق على دالة ADD الديناميكية ، كل ما نحتاج إلى القيام به هو تمرير مُعامِلين كائن المستخدم
‫الذي يمكننا استخدام هذا من أجله ، ووظيفة رد الاتصال ، وهي عنوان بعض الوظائف في صنفنا.
‫لذلك بمجرد وصولنا إلى هذا المفوض عند المكون واستدعاء الوظيفة الديناميكية الإضافية ، يمكننا تمرير كائن
‫المستخدم وإعادة الاتصال.
‫وسيؤدي ذلك إلى إضافة رد الاتصال هذا إلى قائمة استدعاء أحداث النتائج.
‫الآن في ضرب المكون ، سنبث هذا المفوض مما يؤدي إلى استدعاء أي دوال مرتبطة به.
‫لذلك من أجل الارتباط بهذا المفوض ، نحتاج إلى إنشاء دالة رد نداء.
‫إذن ، ها هي قذيفة ونرغب في وظيفة رد الاتصال لحدث الضربة.
‫لذلك دعونا ننشئ دالة خاصة هنا وستكون باطلة.
‫وسأقوم ببساطة باستدعاء هذا عند ضرب.
‫يمكننا أن نطلق على هذا أي شيء نريده ، ولكن يبدو أن وصفية كافية.
‫الآن يجب أن تحتوي وظيفة رد الاتصال هذه على التوقيع الصحيح لأحداث النتائج ، مما يعني أن قائمة
‫معلمات الإدخال الخاصة بها يجب أن تكون محددة للغاية.
‫يجب أن تكون معلمة الإدخال الأولى من نوع مؤشر المكون البدائي الخاص بك ويسمى hit comp.
‫هذا هو المكون الذي يقوم بالضرب.
‫في حالتنا ، سيكون لدينا شبكة مقذوفة لدينا تضرب الأشياء.
‫المعلمة التالية هي مؤشر ممثل يسمى ممثل آخر.
‫سيكون هذا هو الممثل الذي تعرض للضرب.
‫معلمة الإدخال التالية هي مؤشر مكون بدائي آخر يسمى comp.
‫هذا هو المكون الآخر الذي تم ضربه.
‫لذلك إذا وصلنا إلى مكون الشبكة الثابتة لبعض الممثلين الآخرين ، فسيكون هذا هو مكون الشبكة الثابتة.
‫التالي هو متجه F يسمى الدافع العادي.
‫إذا كنا نحاكي الفيزياء ، فإن محرك الفيزياء سيطبق نبضة استجابة للتصادم.
‫ويمثل متجه f اتجاه هذه النبضة ومقدارها.
‫وأخيرًا ، لدينا معلمة إدخال من النوع الثابت F نتيجة الضربة وهذا مرجع ثابت
‫ويسمى hit.
‫لذلك عندما يتم استدعاء النتيجة ، سيكون لدينا وصول إلى نتيجة تحتوي على مزيد من المعلومات حول النتيجة.
‫الآن ، نظرًا لأننا نلزم هذا بالمفوض ، يجب أن يكون دالة U.
‫لذلك سنقوم بتمييز هذا باستخدام الدالة.
‫الآن ، يجب أن تكون على دراية بوظيفتك.
‫إنها تمامًا مثل ملكيتك فقط ، فهي للوظائف بدلاً من المتغيرات.
‫لذلك مهم جدا.
‫يجب أن يكون رد النداء دالة u حتى يعمل هذا.
‫الآن أعلنا عن الوظيفة.
‫دعنا نمضي قدمًا ونحدد الوظيفة.
‫حتى العودة في المقذوفات.
‫CP تحت وظيفة التجزئة الخاصة بنا ، دعنا نحدد هذه الوظيفة.
‫سنعطيه جسمًا وظيفيًا ونضع اسم الفئة قبل اسم الوظيفة مباشرةً ، والآن لدينا
‫وظيفة نداء.
‫لذلك نحن على استعداد لربط هذا على وظيفة الضرب بالمندوب لدينا ونحتاج إلى القيام بذلك في بدء اللعب.
‫القيام بذلك في المنشئ هو في وقت مبكر وأحيانًا قد تواجه مشكلات مثل عدم التزام
‫مفوضك.
‫لذلك سنقوم بذلك هنا ونبدأ اللعب.
‫لذلك لدينا شبكة المقذوفات الخاصة بنا وسنستخدم عامل السهم للوصول إلى المتغير الموروث منك.
‫المكوّن البدائي الذي يُستدعى عند إصابة المكون وفي نتيجة المكون له وظيفة تضيف ديناميكية.
‫من الغريب الآن أن الإكمال التلقائي لن يعمل لإضافة ديناميكية ، لذلك سيتعين عليك كتابة
‫اسم الوظيفة بالكامل.
‫هذه هي الوظيفة التي سنستخدمها لربط رد الاتصال الخاص بنا بضربة المكون وإضافة هذه الوظيفة إلى قائمة الاستدعاء
‫الخاصة بها.
‫الآن أولاً ، نحتاج إلى كائن المستخدم الذي سيكون هذا لأن هذه هي الفئة التي يتم
‫فيها ربط الوظيفة ، وبعد ذلك نحتاج إلى العنوان للوظيفة التي ستكون عنوان عند الوصول.
‫لذلك سنستخدم عنوان المشغل ووظيفة المقذوف عند الضربة.
‫وبهذا تكون وظيفتنا ملزمة ونحن مستعدون لإنشاء أحداث ناجحة.
‫الآن يمكننا اختبار ذلك باستخدام سجل UEE ويمكننا استخدام تحذير السجل المؤقت.
‫وبالنسبة للنص يمكننا أن نقول ببساطة عند ضرب.
‫وإذا رأينا هذا في سجل المخرجات ، فإننا نعلم أن دالة التشغيل لدينا تسمى ، فلنجمع
‫هذا.
‫إذن لدي سجل الإخراج مفتوحًا هنا.
‫سأقوم بالضغط على تشغيل وإطلاق قذيفة وهناك رسالة تسجيل الدخول الخاصة بي يتم الاتصال بها.
‫إذن هذا يعمل.
‫الآن مجرد ملاحظة جانبية ، إذا ذهبنا إلى قذيفة BP واخترنا شبكة المقذوفات في لوحة التفاصيل ، فيمكننا
‫التمرير لأسفل إلى قسم الاصطدام.
‫وهنا نرى أن الإعدادات المسبقة للتصادم مضبوطة على حظر كل العناصر الديناميكية وأن التصادم الممكّن
‫تم ضبطه على هذا الإعداد الاستعلام والفيزياء الممكّنة للتصادم.
‫هذا ضروري لضربة الأحداث.
‫نحتاج إلى أن نكون قادرين على الاستعلام عن حدث ناجح.
‫وبالطبع تسمح الفيزياء لمحرك الفيزياء بالعمل على شبكة المقذوفات.
‫والآن بعد أن التزمنا بمندوب ضرب المكون من خلال وظيفة التشغيل الخاصة بنا ووضعنا سجلاً
‫ضخمًا للتأكد من أنه يعمل ، أود منك استكشاف هذه الوظيفة أكثر قليلاً حتى نتمكن
‫من فهم بعض معلمات الإدخال هذه في وظيفة التشغيل.
‫لذا في وظيفة التشغيل ، أضف المزيد من سجلات YOUI.
‫أرغب في طباعة أسماء بعض معلمات الإدخال باستخدام وظيفة git name.
‫أرغب في استخدام سجل YUI لطباعة اسم hit comp ، وممثل آخر وشركات أخرى حتى نتمكن من رؤية أسماء
‫هذه الكائنات التي نصل إليها.
‫ستستخدم تنسيق النسبة المئوية ، حدد في ماكرو نص السجل الإلكتروني.
‫وكتذكير ، عندما نسمي الحصول على اسم ، يتعين علينا استخدام العلامة النجمية عند تمرير هذه السلسلة
‫إلى ماكرو سجل YUI ، على سبيل المثال ، للحصول على اسم ممثل آخر نسميه ممثلًا آخر ، والحصول
‫على الاسم ووضع هذه العلامة النجمية في البداية فقط لإرجاع سلسلة النمط C ، وهو ما تتوقعه
‫عند تسجيله عند تنسيقه بسلسلة.
‫لذا قم بإيقاف الفيديو مؤقتًا واستخدم سجل Yui في وظيفة الضربة لدينا لطباعة أسماء hit comp ، والممثلين الآخرين
‫والشركات الأخرى الآن.
‫تمام.
‫لذا هنا في CP المقذوف ، سأستخدم تسجيل الدخول هنا.
‫لذلك سأقوم بنسخ هذا السطر حيث أستخدم سجل Yui وبالنسبة للسلسلة سأقول ضرب النسبة المئوية
‫للمركبة وبعد النص الذي سأطلق عليه اسم Hit comp get name وأحتاج إلى هذه العلامة النجمية للتحويل
‫من سلسلة F إلى سلسلة نمط C.
‫الآن سأستخدم نفس السطر ، سأقوم فقط بتغيير النص لأقول ممثل آخر ونحن نطلق
‫عليه الاسم هذه المرة على ممثل آخر.
‫وأخيرًا ، سأقوم بطباعة استدعاء شركات أخرى ، والحصول على اسم على شركات أخرى.
‫لذلك دعونا نجمع ونعود هنا في المحرر ، سوف أمضي قدمًا وأضرب التشغيل وأطلق قذيفة
‫وأتحقق من ذلك.
‫نرى أن شركات الضربة عبارة عن شبكة مقذوفة.
‫تذكر أننا قلنا أن هذا هو المكون الذي يقوم بالضرب ، وهو خليط المقذوف الخاص بنا وسترى
‫أنه يستخدم الاسم الذي قمنا بتعيينه لهذا المكون في إنشاء كائن فرعي افتراضي.
‫إذن هذه إحدى تلك المواقف التي يتم فيها استخدام هذا الاسم.
‫الآن سترى أنه يقول أن عيب الممثل الآخر يشير إلى الصفر.
‫وذلك لأن هذا الممثل الشبكي الثابت الذي يمثل الخلل يحمل اسم خطأ تسطير أسفل الصفر.
‫في بعض الأحيان ، سيضع المحرك رقمًا في نهاية اسمه الداخلي للممثلين والمكونات
‫، وسترى أن لدينا نفس الشيء يحدث عندما نطبع شركات أخرى.
‫ممثل الشبكة الثابتة للعيوب له مكون شبكي ثابت واسمه مكون شبكة ثابتة صفر.
‫هذا يعطينا القليل من المعلومات حول معلمات الإدخال في وظيفة رد الاتصال.
‫وهذا مفيد لأن لدينا إمكانية الوصول إلى تلك الكائنات في C ++ إذا كنا نرغب في القيام بشيء ما ردًا على
‫حدث النتيجة.
‫لذلك باختصار ، لقد تعلمنا عن الأحداث الناجحة وكيف يتم تنفيذها كمندوبين البث المتعدد وتعلمنا
‫كيف تعمل هذه.
‫أنشأنا وظيفة تسمى On Hit and Bound ، تلك الوظيفة لمندوب ضرب المكون الذي ورثته
‫شبكة المقذوفات من فئة المكون البدائية.
‫الآن لم ندمر القذيفة عند الضربة ، لكننا نعلم الآن أنه يمكننا القيام بذلك بسهولة لأن
‫لدينا وظيفة رد الاتصال هذه ويمكننا وضع منطق في هذه الوظيفة مثل تدمير القذيفة.
‫لذلك سنتعامل مع ذلك في فيديو مستقبلي.
‫في الوقت الحالي ، تربت على ظهرك لأن هذه واحدة من أكثر المجالات تعقيدًا في Unreal Engine C ++ التي
‫تعلمتها حتى الآن.
‫سأراك في الفيديو التالي.