‫يا.
‫مرحبًا بعودتك.
‫نعلم الآن أننا بحاجة إلى الحصول على نتيجة النتيجة أسفل المؤشر.
‫سنتحدث أكثر قليلاً عن كيفية عمل ذلك وماذا يعني ذلك في هذا الفيديو.
‫لذا فإن هدفنا هو الحصول على نتائج النتائج تحت المؤشر وإظهار هذا الموقع ، ويمكننا القيام بذلك عن طريق
‫رسم مجال تصحيح الأخطاء.
‫سوف نتعلم كيفية القيام بذلك أيضًا.
‫لذلك دعونا نتحدث عن شيء يسمى النتيجة.
‫في الألعاب غالبًا ما تريد أن تفعل شيئًا كهذا.
‫سيكون لدينا نقطة في الفضاء.
‫سنطلق على هذه النقطة بداية ولديها متجه من النوع F وسيكون لدينا موقع نهائي.
‫ستكون هذه أيضًا نقطة في مساحة متجه من النوع F.
‫لنفترض الآن أننا نرغب في رسم خط غير مرئي من نقطة البداية إلى نقطة النهاية.
‫وفي الوقت الحالي نرسم هذا الخط ، نود أن نرى ما إذا كان هناك أي كائنات بين موقع البداية
‫والنهاية.
‫الآن ، إذا كان هناك ، فإن هذا الخط الذي نرسمه في الفضاء سيصطدم بهذا الكائن.
‫على السطح ، عندما يحدث هذا ، نسمي هذا حدثًا ناجحًا.
‫الآن ، عندما نرسم خطًا غير مرئي مثل هذا ، يُسمى تنفيذ خط تتبع.
‫وعندما نصطدم بشيء ما ، نقول أن لدينا أثر أثر.
‫الآن ، إذا وصلنا إلى شيء ما وحصلنا على حدث ناجح ، فإن نتيجة التتبع تخزن المعلومات في بنية تسمى
‫نتيجة النتيجة.
‫نوعه هو نتيجة ضرب F.
‫تحتوي الآن بنية نتائج النتائج F على متغيرات تخزن معلومات حول حدث النتيجة ، بما في
‫ذلك موقع النتيجة كمتجه f في الفضاء والممثل الذي وصلنا إليه ، من بين معلومات أخرى.
‫الآن ، عندما نقوم بتتبع الخط ، نقوم بذلك عن طريق تحديد قناة تصادم.
‫عادةً باستخدام خطوط التتبع ، نختار القناة التي تسمى الرؤية.
‫يوجد تعداد يسمى E Collision Channel ، وفي هذا التعداد يوجد ثابت تعداد يسمى XY visibility.
‫هذه إحدى المعلمات التي نحددها عند إجراء تتبع خط.
‫الآن ، إذا حددنا قناة الرؤية ، فهذا يعني أن الكائنات التي تم تعيينها لحظر قناة الرؤية
‫في إعدادات التصادم الخاصة بها ستسجل أحداث الضربة.
‫أي كائنات لم يتم تعيينها لحظر قناة الرؤية لن تنشئ أحداث نتائج.
‫الآن نود أن تكون نتيجة التتبع تحت المؤشر.
‫تخيل أن لدينا الشاشة هنا وهنا المؤشر الآن.
‫عند طرف المؤشر ، لدينا نقطة على الشاشة عندما نستخدم الوظيفة للحصول على نتيجة النتيجة
‫أسفل المؤشر.
‫ما يحدث هو أن لدينا كاميرتنا وقد ترى بعض الأشياء في العالم ، مثل الأرض هنا.
‫ونقوم بتتبع خط من الكاميرا عند النقطة على الشاشة المقابلة لموقع المؤشر
‫الخاص بنا ، ونحن نطلق خط التتبع مباشرة إلى العالم.
‫وإذا وصلنا إلى شيء ما ، فسننشئ حدثًا ناجحًا ونخزن المعلومات في بنية نتيجة النتيجة.
‫لذلك دعونا نكتشف كيف يمكننا القيام بذلك.
‫أنا هنا في الخزان CP وما أود فعله هو الحصول على نتيجة الضربة تحت المؤشر في كل إطار ، مما يعني أننا بحاجة
‫إلى وظيفة التجزئة.
‫إذن مرة أخرى ، سنعود إلى القاعدة ونوجد دالة التجزئة هنا.
‫الآن نحن لا نستخدمها لأي شيء في البيدق الأساسي حتى نتمكن من نقل هذه الوظيفة إلى فئة الخزان تمامًا
‫كما فعلنا مع بدء اللعب.
‫لذلك سأقوم بتسليط الضوء على إعلان الوظيفة مع تعليقه ونسخه.
‫وبعد ذلك سأحذف هذا القسم بأكمله ، عام وكل شيء ، وبعد ذلك سأعود إلى Tank H وهنا
‫في القسم العام سأقوم بلصق إعلان وظيفة التجزئة.
‫الآن نحن لا نستخدمها في البيدق الأساسي ، لذا سأقوم بإزالة وظيفة التجزئة من قاعدة pont.
‫CP الآن ذهب من البيدق الأساسي.
‫الآن لدينا هنا نية معلنة ، لكننا نحتاج أيضًا إلى تحديد الوظيفة في الخزان.
‫CP سأقوم بذلك هنا في الخزان DHCP ، فقط تحت مكون إدخال مشغل الإعداد.
‫لذلك سنقول علامة باطلة.
‫يستغرق الأمر تعويمًا يسمى Delta Time.
‫وهناك جسدنا.
‫الآن مرة أخرى ، نحتاج إلى خزان قبل وظيفة التجزئة مباشرةً ، جنبًا إلى جنب مع عامل تحليل النطاق.
‫ونحتاج أيضًا إلى استدعاء علامة السوبر والنجاح في توقيت دلتا.
‫لذلك لدينا الآن علامة على فئة الخزان.
‫ما نريد القيام به هو الحصول على نتائج النتائج تحت المؤشر.
‫إذن إليكم كيف نفعل ذلك.
‫الوظيفة التي سنستخدمها موجودة في وحدة تحكم اللاعب تسمى الحصول على نتيجة الضربة تحت المؤشر.
‫كنا نتحدث عن هذا.
‫الآن ها هو بناء الجملة.
‫يأخذ قناة تتبع.
‫تذكر ، نحن بحاجة إلى تحديد قناة تتبع وسنستخدم الرؤية.
‫الآن لدينا معلمتان إضافيتان للمدخلات.
‫الأول هو منطقي يسمى B trace complex.
‫سنتحدث عما يعنيه ذلك في ثانية.
‫ومعلمة الإدخال الثالثة هي نتيجة ضرب F.
‫الآن سأضغط على نتيجة F لمجرد رؤية هذا النوع هنا في الوثائق.
‫وإذا قمت بالتمرير لأسفل ، فسنرى بعض المتغيرات.
‫واحد منهم يسمى ممثل ووصفه يقول الممثل ضرب بالتتبع.
‫لدينا أيضًا ضربة B blocking هذه ، والتي تشير إلى ما إذا كانت هذه الضربة نتيجة تصادم مانع.
‫الآن ، من بين المتغيرات الأخرى ، لدينا أشياء مثل نقطة التأثير.
‫هذا هو المكان في الفضاء حيث اصطدمنا بشيء ما.
‫فلماذا لا نمضي قدمًا ونحاول استدعاء هذه الوظيفة؟
‫نريد أولاً لاعبنا ووحدة التحكم الخاصة بنا وبفضل ما فعلناه هنا ونبدأ اللعب ، لدينا لاعب ، وحدة
‫تحكم ، المرجع.
‫الآن أول شيء يجب علينا فعله هو التحقق لمعرفة ما إذا كان مرجع وحدة تحكم اللاعب صالحًا.
‫يمكننا دائمًا تمرير مؤشر إلى عبارة if.
‫سيعود صحيحًا إذا لم يكن المؤشر نفسه مؤشرًا فارغًا.
‫إذا كان مؤشرًا فارغًا ، فسيعيد القيمة false في تعليمة if ولن نصل أبدًا إلى الجزء الداخلي
‫من عبارة if.
‫من الجيد دائمًا التحقق من مؤشراتنا والتأكد من أنها ليست فارغة قبل استخدامها.
‫الآن سنحصل على لاعبنا ، مرجع وحدة التحكم وسنستخدم عامل السهم لاستدعاء
‫الوظيفة ، والحصول على نتيجة ضرب تحت المؤشر.
‫الآن يمكننا أن نرى من خلال النافذة المنبثقة أن لدينا ثلاث معلمات إدخال.
‫الأول هو قناة التتبع.
‫سنستخدم قناة تصادم EA وإذا قمنا بكتابة نقطتين ، فسنحصل على قائمة منسدلة توضح لنا جميع
‫ثوابت التعداد المختلفة في تعداد قناة تصادم EA.
‫نريد استخدام الرؤية ، لذلك سنقوم بكتابة رؤية XY لتحديد أننا نستخدم قناة الرؤية.
‫الآن المعامل التالي يسمى B Trace Complex وسنقوم بتمرير خطأ إلى هذا.
‫الآن سنناقش ما يعنيه هذا في بضع دقائق.
‫لكن في الوقت الحالي سنستخدم خطأ.
‫الآن بالنسبة للمعامل الثالث ، نحتاج إلى نتيجة نتيجة.
‫هذه بنية من النوع F.
‫الآن ، إذا قمت بالمرور فوق هذا ، فسترى أنه يتم تمرير نتيجة النتيجة F كمرجع كما هو موضح بواسطة
‫عامل التشغيل المرجعي الذي يشبه علامة العطف.
‫الآن ، عادةً عندما تقوم بتمرير شيء ما كمرجع ، يكون مرجعًا للتكلفة ، مما يعني أن الوظيفة
‫لن تتمكن من تغييرها.
‫لكننا هنا نقوم بتمرير نتيجة F نتيجة كمرجع غير ثابت.
‫هذا بشكل عام تلميح إلى أن الوظيفة مصممة لتغيير معلمة الإدخال هذه مباشرة.
‫ما ستفعله نتيجة الحصول على نتيجة تحت المؤشر هو ملء تلك المتغيرات في نتيجة النتيجة بمعلومات حول
‫نتيجة النتيجة.
‫هذا يعني أننا بحاجة إلى تمرير إحدى نتائج f في.
‫سنقوم بإنشاء متغير محلي هنا في حالة تحقق من النوع F.
‫ويمكننا تسمية نتيجة النتيجة هذه ويمكننا ببساطة تمرير N كمعامل إدخال ثالث.
‫الآن ، بعد أن استدعينا هذه الوظيفة ، سيتم ملء نتيجة النتيجة هذه ببيانات حول تتبع
‫الخط هذا.
‫على سبيل المثال ، يمكننا الوصول إلى الممثل النقطي الناتج للحصول على الممثل الذي تم ضربه أو نقطة تأثير النقطة للحصول على
‫النقطة في الفضاء حيث حصلنا على الحدث الناجح.
‫لذا فإن نتيجة الضرب هي ما سنستخدمه للحصول على معلومات حول تتبع الخط.
‫غالبًا ما يكون من الجيد أن تكون قادرًا على رؤية نتيجة تتبع الخط.
‫يمكننا بسهولة تصور نتيجة تتبع خط برسم كرة تصحيح.
‫إن مجالات تصحيح الأخطاء هي أشكال بسيطة نرسمها في الفضاء ، وهي رائعة لعرض الموقع ونستخدمها
‫عند تصحيح الأخطاء.
‫نحن لا نستخدم مجالات تصحيح الأخطاء في لعبة التحول.
‫لنرى كيف يمكننا رسم أحد مجالات التصحيح هذه.
‫الآن ها هي الوثائق لوظيفة تسمى draw debug sphere.
‫إنه موجود في رسم مساعدي تصحيح الأخطاء.
‫حتى نتمكن من نسخ هذا الرأس وإدراجه في أي مكان نود أن نسميه draw debug sphere.
‫انظر الآن إلى جميع معلمات الإدخال.
‫أولاً ، يأخذ العالم بهذه الطريقة يعرف العالم الذي يرسم الكرة إليه.
‫يأخذ متجه F لمركز الكرة بالإضافة إلى عوامة لنصف القطر.
‫يأخذ N 32 لعدد المقاطع لتلك الكرة.
‫كلما زاد عدد المقاطع ، كلما أخذت الكرة لونًا F.
‫بهذه الطريقة يعرف اللون الذي يرسم فيه هذا المجال.
‫تريد معرفة ما إذا كنت تريد خطوطًا ثابتة.
‫بمعنى آخر ، هل يجب أن تختفي الخطوط على الفور أم تستمر؟
‫إذا استمروا في ذلك ، فإنه يريد أن يعرف عمر الكرة.
‫متى يجب أن يتوقف عن رسم الكرة؟
‫إذا لم ترسم خطوطًا ثابتة ، فلنفترض أنك ترغب في رسمها لإطار واحد
‫، فإنك ستمرر سالب واحد كعمر.
‫الآن المعلمتان الأخيرتان اختياريتان ، لذلك سنبقي هذا بسيطًا من خلال مناقشة المعلمات السبعة
‫الأولى فقط.
‫دعونا نرى كيف يعمل هذا.
‫سأقوم برسم مجال تصحيح الأخطاء الآن في الأعلى ، وسأقوم بتضمين مساعدي تصحيح الأخطاء.
‫هذا هو المكان الذي يتم فيه الإعلان عن وظيفة كرة التصحيح هذه.
‫الآن دعنا نبدأ اللعب ونرسم ببساطة مجال تصحيح الأخطاء لنرى كيف يعمل هذا.
‫لذلك سأسمي كرة رسم تصحيح الأخطاء و.
‫معلمة الإدخال الأولى هي عالم جديد.
‫يمكننا الحصول على عالمنا في أي وقت عن طريق استدعاء Get World ، Get World Returns مؤشر عالم جديد لعالمنا
‫الحالي.
‫لذلك سوف يرضي ذلك المدخل الأول.
‫بعد ذلك ، نحتاج إلى متجه f لمركز الكرة.
‫نحن الآن نتصل بهذا ونبدأ اللعب حتى يمكنني ببساطة الاتصال للحصول على موقع الممثل وهذا سيحدد موقع
‫بركة الخزان الخاصة بنا.
‫بما أننا في فئة الخزان.
‫الآن سأقوم برفع الكرة لأعلى قليلاً.
‫سأضيف متجه F مع صفر نقطة F لـ x صفر نقطة F لـ Y وأقول 200 F لـ Z.
‫الآن سأضع معلمات الإدخال هذه على سطر خاص بها.
‫لذلك من الواضح ما الذي نمرره لكل إدخال.
‫المدخل الثاني هو الحصول على هذا التعبير ، وهو موقع الممثل ، بالإضافة إلى متجه يشير إلى
‫أعلى بطول 200.
‫ستعطيني إضافة هذين المتجهين معًا موقع الخزان المرفوع في المحور Z بمقدار 200
‫وحدة.
‫الآن معلمة الإدخال التالية ، ستكون نصف قطر الكرة.
‫سأختار 100 درجة فهرنهايت فقط حتى نتمكن من رؤية شكل كرة التصحيح التي يبلغ نصف قطرها 100.
‫التالي هو عدد المقاطع.
‫سأختار 12.
‫سنرى كيف يبدو ذلك.
‫الآن بالنسبة للون F ، توجد فئة اللون F ولديها الكثير من الألوان المضمنة مثل الأحمر.
‫الآن بالنسبة للمنطقية التي تسمى خطوط B المستمرة ، سأختار true.
‫وبالنسبة لمعامل الإدخال التالي ، لدينا إشعار مدى الحياة.
‫لها قيمة افتراضية سالب واحد.
‫هذا يعني أنه سيرسم بشكل افتراضي مجال التصحيح لإطار واحد.
‫لكنني سأمرر في 30 فهرنهايت حتى نحصل على الكرة لمدة 30 ثانية ويمكنني حذف المعلمتين الأخيرتين.
‫إذن ، هذا هو استدعاء الوظيفة الخاص بنا لرسم كرة التصحيح.
‫دعونا نجمع هذا ونرى كيف يبدو.
‫حسنًا ، لقد عدت إلى المحرر.
‫سأفتح نافذة ثانية حتى نتمكن من رؤية ذلك في وضع ملء الشاشة.
‫يمكنني الانتقال إلى منافذ عرض النافذة وتحديد منفذ العرض الثاني والآن أرى هذه النافذة الثانية.
‫قد لا يكون في وضع ملء الشاشة عند فتحه ، ولكن يمكنك دائمًا تكبيره.
‫الآن من هنا يمكنني أن ألعب اللعبة باستخدام alt p.
‫الآن تحقق من هذا.
‫هذا هو مجال التصحيح الخاص بنا.
‫لاحظ أنه ليس مستديرًا تمامًا.
‫اخترنا 12 لعدد المقاطع.
‫كلما زاد عدد المقاطع التي تختارها ، زاد عدد الخطوط التي يتطلبها رسم الكرة.
‫الآن ، هذه كرة نصف قطرها 100.
‫إنه كبير جدًا ، ويقع مركز الكرة في موقع الخزان ، بالإضافة إلى 200 وحدة في الهواء.
‫هذه هي الطريقة التي يمكننا بها رسم مجالات التصحيح.
‫لذا فإن التحدي الذي تواجهه هو رسم كرة تصحيح باستخدام نتيجة التتبع أسفل المؤشر.
‫لذا ارسم مجال تصحيح الأخطاء في عبارة if الجديدة الخاصة بنا حيث نتحقق مما إذا كان مرجع وحدة تحكم اللاعب ليس
‫فارغًا.
‫الآن باستخدام نتيجة الضربة الخاصة بنا ، احصل على نقطة التأثير من نتيجة الضربة واستخدمها كمركز
‫المجال.
‫الآن بالنسبة لخطوط الإدخال الثابتة ، استخدم معلمة خطأ وللمدة استخدم سالب واحد.
‫وسيؤدي هذا إلى رسم الكرة لإطار واحد ، وهذا أمر جيد لأننا نسمي هذا كل إطار
‫داخل دالة التشنجات اللاإرادية.
‫لذا أوقف الفيديو مؤقتًا وارسم كرة التصحيح في وظيفة التجزئة.
‫تمام.
‫لذا عدت إلى هنا في تانك.
‫الآن لدي استدعاء وظيفة sphere لتصحيح الأخطاء في الرسم هنا وابدأ اللعب حتى أتمكن من المضي قدمًا
‫ونسخ ذلك وإزالته من بدء اللعب وسنعود مرة أخرى إلى وضع علامة هنا داخل عبارة if الخاصة بنا وأنا
‫فقط سنقوم بلصقه هنا وسنقوم بتغيير بعض معلمات الإدخال.
‫أولاً ، نحن نغير موقع مركز الكرة.
‫سنستخدم نتيجة النتيجة.
‫لذلك سأقول نتيجة ضرب نقطة تأثير نقطة.
‫الآن بالنسبة إلى نصف القطر ، أود أن أجعله أصغر قليلاً.
‫لنجعلها حوالي 25.
‫حسنا.
‫إذا لم تفعل ذلك ، فأنا أفعل هذا فقط.
‫لذا فإن الكرة ليست كبيرة جدًا.
‫الآن ، المعامل الثاني إلى الأخير الذي نمرره هو للخطوط الثابتة.
‫سأقوم بالتمرير خطأ وللمدة بدلاً من 30 ثانية ، سأستخدم سالب نقطة واحدة
‫F.
‫بهذه الطريقة سنحصل على كرة لإطار واحد ، وهذا أمر جيد ، مرة أخرى ، نسمي هذا في دالة التجزئة
‫، لذلك سنطلق على هذا كل إطار.
‫دعنا نمضي قدمًا ونجمع هذا.
‫الآن ، عد إلى المحرر.
‫إذا قمت بالضغط على اللعب الآن ، تحقق من ذلك.
‫لدي كرة تصحيح ويتم رسمها عند نقطة التأثير لتتبع الخط أسفل المؤشر.
‫الآن يمكننا تحريك هذا إلى أعلى الجدران وعلى الأشياء الأخرى ويصيب التتبع هذه الكائنات لأنها مضبوطة
‫على حجب قناة الرؤية.
‫رهيبة جدا الآن.
‫لقد وعدت بأننا سنناقش التعقب المعقد مقابل التعقب البسيط.
‫سأريكم شيئًا ما بينما نلعب اللعبة.
‫دعنا نضغط على منفذ العرض حتى نتحكم في راحة يدنا.
‫الآن اضغط على مفتاح التلدة واكتب أمر وحدة التحكم show Collision.
‫الآن قد لا يكون من السهل رؤيته على شاشتي ، ولكن يمكنك بالتأكيد رؤيته على شاشتك.
‫لاحظ الاصطدام لبيادقنا.
‫لا يمكننا رؤية الكبسولة فحسب ، بل يمكننا أيضًا رؤية حجم الاصطدام حول الخزان وشبكات البرج.
‫هذا تصادم بسيط.
‫اسمحوا لي فقط أن أريكم بسرعة حقيقية حيث يمكننا رؤية الاصطدام البسيط.
‫سأذهب إلى الأصول والشبكات وإذا نقرت مرتين ، على سبيل المثال ، على قاعدة الخزان هنا ، فإننا ننظر إلى
‫التصادم المعقد.
‫إذا قمت بالنقر فوق أيقونة العرض هذه هنا في الجزء العلوي واخترت تصادمًا معقدًا ، يمكنني رؤية جميع المضلعات
‫في التصادم المعقد وهناك الكثير منها.
‫إذا قمت بالنقر فوق رمز العرض مرة أخرى وقمت هذه المرة بتحديد مربع الاختيار بجوار Simple Collision ، لاحظ
‫وجود حجم تصادم آخر.
‫وهذا ما يسمى بدن الاصطدام وله هندسة أقل بكثير.
‫يوجد عدد أقل من المضلعات مع حجم التصادم هذا.
‫هذا ما يستخدمه محرك الفيزياء لاكتشاف التداخل في أحداث الضربة.
‫إذا كانت تستخدم الاصطدام المعقد ، فستتطلب الكثير من العمليات الحسابية.
‫هذا هو سبب وجود أحجام تصادم بسيطة ، لذا فهي أفضل بكثير للأداء عند القيام بتتبع
‫خط إذا قمنا بتتبع الاصطدام البسيط بدلاً من الاصطدام المعقد.
‫حتى الآن حصلنا على نتيجة النتيجة تحت المؤشر.
‫لقد تطلب الأمر بعض العمل للوصول إلى هناك ، ولكن الآن لدينا ذلك وقد أثبتنا ذلك من خلال إظهار هذا الموقع باستخدام
‫مجال تصحيح الأخطاء.
‫هذه طريقة لطيفة للتأكد من أن نتيجة التتبع الخاصة بنا تعمل.
‫والآن بعد أن علمنا أنه يعمل ، يمكننا استخدام هذا الموقع لتدوير البرج على خزاننا.
‫وسنفعل ذلك في الفيديو التالي.
‫سأراك قريبا.