مرحبًا. مرحبا بك في هذا الدرس عن Unity. ستتعلم في هذه الدروس كيفية استخدام المدخلات للتحكم في اللاعب في Unity. من Unity Hub، افتح مشروع Platformer. افتح مشهد المستوى 1. إذا كانت لوحة Tile لا تزال مفتوحة، فيمكنك إغلاقها. لنقم بإنشاء لاعب جاهز Player Prefab ثم نتعلم كيفية التحكم فيه باستخدام مدخلات Unity الافتراضية. في لوحة المشروع، افتح مجلد Pixel Adventure 1 في مجلد الأصول. افتح الأصول Assets. الشخصيات الاساسية Main Characters. و ثم افتح مجلد Virtual Guy. حدد تشغيل الكائن Run Sprite. يمكنك أن ترى في Inspector شريطًا متحركًا من النقوش المتحركة، بارتفاع 32 بكسل. تأكد من ضبط وضع الصور المتحركة على متعدد Multiple. وقم بتعيين البكسل لكل وحدة على 32. تأكد من النقر فوق تطبيق. انقر فوق المثلث الموجود على يمين Run. يمكنك رؤية جميع النقوش المتحركة بالتسلسل. دعنا ننتقل إلى تحديد كل هذه النقوش المتحركة. انقر فوق أول واحد. Shift انقر فوق الأخير. ثم اسحب هذا التحديد إلى التسلسل الهرمي. سوف ينبثق طالب الملف. اذهب إلى الأصول الخاصة بك. مجلد الأصول الرئيسية الخاصة بك. الرسوم المتحركة Animations. سنقوم بتسمية هذا Run. الآن حدد تشغيل Run. في التسلسل الهرمي Hierarchy اضغط F2. وأعد تسمية هذا إلى Player. في Inspector قم بتغيير طبقة الفرز إلى المقدمة. هذا مهم جدا. افتح مجلد المكونات الجاهزة Prefabs. اسحب اللاعب للداخل. يتحول الرمز إلى اللون الأزرق. والآن لدينا Prefab للاعبنا. في لوحة المشهد، حرك اللاعب إلى اليسار. حدد "Player" في التسلسل الهرمي. في لوحة المشهد، اضغط على W للتحرك. وانقر فوق X وحرك اللاعب إلى اليسار. احفظ المشهد. الآن اضغط على تشغيل. يقوم اللاعب بالتكرار والحركة، لكنه لا يذهب إلى أي مكان. كما أنه يطفو فوق الأرض. الطريقة التي سنحرك بها هذا اللاعب، بالإضافة إلى تمكين اكتشاف الاصطدام، هي باستخدام نظام الفيزياء ثنائي الأبعاد الخاص بـ Unity. توقف عن التشغيل. مع اختيار اللاعب في Inspector انقر فوق "إضافة مكون" وحدد Rigidbody 2D. وهذا يضيف الفيزياء إلى اللاعب، ولكننا نحتاج أيضًا إلى تحديد منطقة الاصطدام حول اللاعب. انقر فوق إضافة مكون مرة أخرى. وابحث عن Box. ونريد إضافة Box Collider 2D. تأكد من إضافة مكونات ثنائية الأبعاد فقط. انقر بزر الماوس الأيمن في لوحة المشهد. وانقر فوق F لتأطير اللاعب الخاص بك. في Inspector انقر فوق تحرير المصادم Edit Collider. سترى مربعًا محيطًا حول اللاعب. انقر فوق النقاط الموجودة على كل جانب من جوانب المربع لتحيط باللاعب فقط. انقر فوق تشغيل Play ودعنا نرى ما سيحدث. يسقط اللاعب الآن بفعل الجاذبية، لكنه يمر عبر الأرض. نحن بحاجة إلى إضافة مصادم خاص إلى الأرض. توقف عن اللعب. قم بتدوير الشبكة لفتحها. حدد المقدمة Foreground. في Inspector انقر فوق إضافة مكون وابحث عن البلاط. نحتاج إلى تحديد Tile Map Collider 2D، وهو نوع خاص من المصادم. دعنا ننقر على التشغيل مرة أخرى. الآن يهبط اللاعب ويبقى على الأرض. وهذه بداية رائعة. نحتاج الآن إلى إضافة بعض التعليمات البرمجية إلى هذا اللاعب، حتى نتمكن من استخدام لوحة المفاتيح للتحكم في حركته. افتح مجلد البرامج النصية. انقر بزر الماوس الأيمن وأنشئ برنامج نصي جديد لـ C Sharp. وقم بتسميته PlayerControl. تذكر دائمًا أن تقوم بالتسمية على الفور. تحقق من أن اسم البرنامج النصي الخاص بك يتطابق مع الفئة العامة في Inspector. حدد اللاعب في التسلسل الهرمي، واسحب هذا البرنامج النصي إلى Player. إذا لم يكن لديك مساحة كافية في Inspector، فيمكنك تدوير بعض اللوحات وطيها. افتح البرنامج النصي. انقر بالمؤشر بعد القوس المتعرج الأول، واضغط على زر Enter لإفساح المجال. نظرًا لأن هذه حركة تعتمد على الفيزياء، فنحن بحاجة إلى تحديد جسم صلب وتعيين متغير للسرعة. لذلك سأقوم بكتابة الجسم الصلب الخاص Rigid Body 2D، وسوف نقوم بتسمية هذا المتغير RB. اضغط على زر Enter مرة أخرى لإفساح المجال للسطر التالي، واكتب public float. سوف نقوم بتسمية هذا المتغير moveSpeed، وسنعطيه القيمة الأولية 4. لا تنس الحرف F بعد الرقم 4، لأنه متغير عائم Float. يسمح لنا Public بتعديل هذا المتغير من المحرر. اضغط على زر Enter مرة أخرى لإضافة بعض المساحة. انقر داخل طريقة البداية Start Method، والنوع RB هو يساوي getComponent. نريد الحصول على Component مع الأقواس، والقوس موجود على لوحة المفاتيح. إذا قمت بالضغط على فاصلة و Shift، سنقوم بكتابة جسم صلب ثنائي الأبعاد Rigid body 2D. وفي النهاية سنقوم بإضافة قوسين، والفاصلة المنقوطة. يؤدي هذا إلى تعيين اسم متغير الجسم الصلب، RB، للتفاعل مع مكون الجسم الصلب الذي أضفناه إلى اللاعب. يتيح لنا ذلك إرسال أوامر إلى متغير RB، مثل السرعة، والتي ستجعل لاعبنا يتحرك في مختلف الاتجاهات. احفظ التعليمات البرمجية، وقم بتصغير Visual Studio. قبل أن نواصل التعليمات البرمجية للمشغل، نحتاج إلى فهم كيفية تعيين Unity لمفاتيح لوحة المفاتيح كمدخلات افتراضية. افتح تحرير، إعدادات المشروع، في العمود الأيسر، حدد مدير الإدخال. على اليمين، سترى قائمة بالمحاور لأنواع الإدخال المختلفة. قم بتدوير المحاور المفتوحة، ويمكنك إدخال أنواع، مثل الماوس ولوحة المفاتيح. قم بفتح Horizontal، وقم بتدوين ملحوظة عن الاسم Horizontal. ويبدأ بحرف Hكبير. نحن بحاجة إلى كتابة هذا بالضبط في التعليمات البرمجية. إلى الأسفل، يمكنك رؤية الزر السالب والموجب. يقوم الزر السالب بإرجاع قيمة سالب 1، بينما يقوم الزر الموجب بإرجاع قيمة زائد 1 اليسار، يعني السهم الأيسر على لوحة المفاتيح، واليمين هو السهم الأيمن. يمكنك أيضًا الضغط على المفتاحين A أو D لتنفيذ نفس الإجراءات. لذا فإن القيمة الأفقية ستتغير بشكل أساسي إذا ضغطت على A، D، لمفاتيح الأسهم لليسار أو لليمين. أغلق اللوحة، وافتح مجلد البرامج النصية. انقر نقرًا مزدوجًا فوق البرنامج النصي للتحكم في المشغل، Visual Studio، وسنضيف طريقة تحديث خاصة تعمل بشكل أفضل مع الحركة القائمة على الفيزياء انقر على السطر بعد طريقة Start. اضغط على Enter لترك مجال، ثم اكتب Void، ثم fixedUpdate. لاحظ أن IntelliSense سيقوم تلقائيًا بتعيين الأقواس والأقواس المتعرجة لك. داخل الأقواس المتعرجة، سنقوم بكتابة Float moveDirection، وهو متغير يتم إنشاؤه بسرعة. يساوي، input.getAxisRaw، والأقواس، ونحتاج إلى علامات الاقتباس، وإذا كنت تتذكر، يتم تهجئة Horizontal بالحرف الكبير H، فنحن بحاجة إلى تهجئة هذا بشكل صحيح، وإلا فلن ينجح هذا. ولا تنسى الفاصلة المنقوطة. يؤدي هذا إلى إنشاء متغير سريعًا، أطلقنا عليه اسم moveDirection يحتوي على قيمة من الإدخال الأفقي، فلنضغط على Enter للحصول على سطر جديد. واكتب rb.velocity=new Vector2، الأقواس، moveDirection، وهو أحد متغيراتنا. سنضرب ذلك بـ moveSpeed، ونضع فاصلة، وننتهي بـ rb.velocity.y. هذه هي السرعة لأعلى ولأسفل في الاتجاه Y. السرعة في لعبة ثنائية الأبعاد هي متجه 2، مما يعني الحركة في اتجاه X وY. سوف ينطلق اللاعب في الاتجاه X، بناءً على إيجابية أو سلبية اتجاه الحركة مضروبًا في سرعة الحركة. القيمة الثانية بعد الفاصلة هي Y أو القيمة الأعلى والأسفل، والتي ستبقى الآن عند الصفر. احفظ البرنامج النصي وقم بتصغير Visual Studio. العب المستوى، والآن إذا ضغطت على المفتاح A أو D أو السهم لليسار أو لليمين، فيمكنك تحريك اللاعب للخلف وللأمام. هذه سرعة جيدة للعبة، ويبدو أننا نحرز بعض التقدم. احفظ المشهد. في الدرس التالي، سنتعلم كيفية تثبيت نظام الإدخال الجديد في Unity. شكرا للمشاهدة.