تنفيذ الكشف عن النتائج لكل نوع من أنواع MapChip
بيئة التحقق
- نوافذ
-
- ويندوز ١١
- محرر الوحدة
-
- 2021.3.3f1
- حزمة نظام الإدخال
-
- 1.3.0
المتطلبات الأساسية لهذه النصيحة
تم إجراء الإعدادات التالية مسبقا كمقدمة لوصف هذه النصيحة.
ما هي المتطلبات الأساسية لهذه النصيحة؟
- إنشاء خريطة 2D من أعلى إلى أسفل باستخدام خرائط تجانب Unity القياسية
- التعامل مع الاصطدام مع الفيزياء القياسية (2D)
- تنفيذ الكشف عن النتائج باستخدام خرائط التجانب
حول استعارة مواد الخرائط
نقوم بمعالجة الاقتراض من المواقع التالية.
في البداية
هذه المرة ، يتم وضع MapChips في TileMap واحد ، وتقرر ما إذا كان سيتم إجراء تحديد النتيجة وفقا لنوع MapTip الموضوع.
نظرا لأن هذه النصيحة هي إلى حد كبير نفس نصيحة أخرى "تنفيذ اكتشاف النتائج باستخدام خرائط التجانب" ، يرجى الرجوع إلى هناك للحصول على شرح مفصل. هنا ، يتم شرح الإجراء فقط لنفس المحتوى ، ويتم إضافة الاختلافات فقط.
تنفيذ شخصيات المشي
أولا ، قم بإعداد صورة كائن سيتحكم فيها المشغل لإجراء عملية اكتشاف النتائج وإضافتها إلى مشروعك. هذه المرة ، يبلغ حجم تلميح الخريطة 32 بكسل ، لذلك سأجعل الصورة بنفس الحجم.
سأحذف الرسوم المتحركة للمشي هذه المرة لأن الإجراء سيكون طويلا إذا تم تنفيذه. إذا كنت ترغب في تنفيذه ، يرجى الرجوع إلى النصائح التالية.
حدد الصورة التي أضفتها إلى مشروعك. نظرا لأننا نريد مطابقة الوحدة مع شريحة الخريطة ، اضبط "عدد وحدات البكسل لكل وحدة" على "32".
بمجرد التهيئة ، انقر فوق الزر "تطبيق" أدناه.
بمجرد تعيين الصورة ، قم بإسقاط الصورة في العرض وأضف الكائن.
اضبط عملية حركة الشخصية. أضف البرنامج النصي واتركه اسمه Player
.
يبدو البرنامج النصي كما يلي: هذه عملية حركة بسيطة تحرك الكائن باستخدام لوحة المفاتيح.
using UnityEngine;
using UnityEngine.InputSystem;
public class Player : MonoBehaviour
{
// 一定時間ごとに呼ばれます
void FixedUpdate()
{
// キーボードの情報を取得
var keyboard = Keyboard.current;
// スプライトの移動処理
if (keyboard.leftArrowKey.isPressed)
{
transform.Translate(-0.1f, 0, 0, Space.World);
}
if (keyboard.rightArrowKey.isPressed)
{
transform.Translate(0.1f, 0, 0, Space.World);
}
if (keyboard.upArrowKey.isPressed)
{
transform.Translate(0, 0.1f, 0, Space.World);
}
if (keyboard.downArrowKey.isPressed)
{
transform.Translate(0, -0.1f, 0, Space.World);
}
}
}
يتم إرفاق البرنامج النصي الذي تقوم بإنشائه بكائن الحرف.
قم بتشغيل اللعبة وتحقق مما إذا كانت الشخصية تتحرك باستخدام لوحة المفاتيح.
إعداد نصائح الخريطة
قم بإعداد صورة تلميح الخريطة وأضفها إلى مشروعك. مع زيادة عدد رقائق الخريطة ، يصبح الإعداد مزعجا ، لذلك قمنا هذه المرة بإعداد مربعين فقط ، أحدهما يمكن المشي فيه والآخر لا يستطيع المشي.
حدد الصور التي أضفتها إلى مشروعك وقم بتكوين إعدادات MapChips. راجع النصائح التالية لمزيد من المعلومات:
بمجرد التكوين، انقر فوق الزر "تطبيق" ثم زر محرر الكائن.
اقسم على 32 بكسل.
حدد علامة تبويب لوحة التجانب لإنشاء لوحة. إذا لم تكن هناك علامات تبويب ، فيمكنك عرضها من القائمة باستخدام "Window > 2D -> Tile Palette". يمكن أن يكون اسم اللوحة أي شيء ، ولكن هنا هو "MapChipPalette".
نظرا لأننا سنحفظه في مجلد ، قم بإنشاء مجلد "MapChipPalette" جديد في مجلد Scene وحدده.
تمت إضافة مجلد MapChipPalette إلى المشروع.
بعد ذلك ، ستضيف MapTips إلى اللوحة. اسحب صورة تلميح الخريطة المنقسمة وأفلتها في اللوحة.
تمت إضافة MapTips إلى اللوحة.
إنشاء خريطة
اترك إعدادات اكتشاف النتائج جانبا وقم بإنشاء الخريطة أولا. يمكنك إعداد اكتشاف النتائج لاحقا. أولا، أضف خريطة تجانب إلى التسلسل الهرمي.
بمجرد الإضافة ، حدد Tilemap. تعرض طريقة العرض شبكة.
أولا ، قم بتعيين شريحة خريطة لا تصبح جدارا في العرض.
في الوقت الحالي ، وضعتها في كل مكان.
بعد ذلك ، ضع طرف الخريطة الحجري الذي سيكون بمثابة الجدار.
هذه المرة لم تكن هناك مشكلة ، ولكن إذا كانت شخصيتك ستكون خلف الخريطة ، فقم بتعيين ترتيب الطبقة على رقم أكبر من Tilemap.
بالطبع ، حتى لو قمت بتحريك اللعبة في هذه المرحلة ، فسوف تنزلق عبر الحائط وتمشي.
إعدادات الكشف عن ضرب MapChip
من هنا ، سنحدد ما إذا كان سيتم إدخال حكم النتيجة لكل نوع من أنواع شرائح الخريطة. أولا ، افتح مجلد "MapChipPalette" الذي قمت بإنشائه عند إنشاء اللوحة.
يوجد تلميح خريطة في اللوحة بالداخل ، لذا حدد أولا تلميحا يمكنك المشي عليه.
من المفتش، قم بتعيين قيمة نوع المصادم إلى بلا. في وقت لاحق ، ستضيف إعداد اكتشاف الاصطدام إلى Tilemap ، لكن تعيينه على "بلا" سيمنع شريحة الخريطة هذه من الاصطدام.
تم تعيين خريطة الحجر الأخرى على "الشبكة". نظرا لأنه ليس تلميح خريطة شفاف هذه المرة ، فلا توجد مشكلة في "الكائن" ، ولكن إذا قمت بتعيينه على "الكائن" ، فلن يتم الحكم عليه من خلال الضغط على الجزء الشفاف من الصورة.
هذا كل ما في الأمر ل MapTip. الأمر سهل لأنه لا يوجد سوى اثنين منهم هذه المرة ، ولكن إذا كان لديك عدد كبير من رقائق الخرائط ، فأنت بحاجة إلى تعيين هذا القدر.
إعدادات الكشف عن الاصطدام
من هنا ، هو تقريبا نفس محتوى "تنفيذ اكتشاف النتائج باستخدام tilemap".
أولا ، قم بإجراء الإعدادات اللازمة لاكتشاف تصادم الأحرف. أضف "Physics 2D -> Circle Collider 2D" كمكون. هذه المرة ، الكائن مستدير ، لذلك جعلته دائرة ، لكن يرجى تحديد Box أو Capsule وفقا للشكل.
سنضيف أيضا "الفيزياء 2D -> Rigidbody 2D".
اضبط مقياس الجاذبية على 0 لمنع الجاذبية من السقوط. أيضا، حدد Z ل "إصلاح الدوران" لمنع الكائن من الدوران.
بالنسبة إلى Tilemap، أضف مكون Tilemap -> Tilemap Collider 2D.
يمكنك أن ترى أنه تمت إضافة خط أخضر حول طرف الخريطة الحجري في المعرض. هذا يعني أن اكتشاف الضربات يتم ضبطه فقط للحجار. يمكنك أن ترى أن إعداد نوع المصادم لطرف الخريطة في اللوحة أعلاه ينعكس.
حاول تشغيل اللعبة والمشي نحو الحائط. أعتقد أنه يمكنك التأكد من أن الشخصية تتوقف أمام الحائط بشكل صحيح. يمكنك أن ترى أنه يمكن تنفيذه بسهولة دون كتابة أي برامج تتعلق باكتشاف النتائج.
الجمع بين اكتشاف ضربات MapChip
كما هو مذكور في النصائح أدناه ، عندما تقوم بتحريكه بالفعل ، يكون سلوك اكتشاف الاصطدام بالجدار غريبا بعض الشيء. يتم وصف السبب والحل البديل في التلميحات أدناه.
ومع ذلك ، من خلال الجمع بين جزء اكتشاف النتائج في شريحة الخريطة ، سيتم تصحيح السلوك الغريب وسيتم تقليل حمل المعالجة في نفس الوقت ، لذلك دعونا نفعل ذلك كحد أدنى.
أولا ، تحقق من "استخدام في مركب" في Tilemap Collider 2D.
ضمن إضافة مكون، حدد مصادم مركب 2D -> الفيزياء 2D.
ستتم أيضا إضافة "Rigidbody 2D" ، لذا اجعل "نوع الجسم" إلى "ثابت".
بعد ذلك ، أعتقد أنه يمكنك تأكيد أن الحكم الناجح للحجر ليس لكل شريحة خريطة ويتم دمجه.
الآن قم بتشغيل اللعبة وتأكد من أنها تعمل بشكل صحيح.