توفر الإلمام بنظام بلاط Unity 2D فرصة ممتازة لتوفير الوقت للمطورين المستقلين واستوديوهات الألعاب لوضع النماذج وإنشاء ألعاب ثنائية الأبعاد عالية الجودة.
بدون هذا النظام ، يمكنك قضاء أيام ، إن لم يكن أسابيع ، في كتابة نظام بطاقة البلاط الخاص بك أو معالجة نظام شخص آخر. وهذا مجرد برمجة ، ولكن ماذا عن محرر خريطة البلاط؟
النظام الجديد مجاني ومدمج مباشرة في محرر الوحدة. يوفر العديد من الميزات التي سنغطيها في هذا البرنامج التعليمي.
في هذه المقالة ، سنستخدم لعبة بلاط ثنائية الأبعاد بسيطة لمعرفة ما يلي:
- كيف تعمل بطاقات البلاط.
- كيفية تمكين خرائط البلاط في الوحدة وتخصيص الشبكة.
- كيفية إضافة النقوش المتحركة إلى مشروع ، وتحويلها إلى مربعات ، ثم إضافتها إلى لوحة البلاط.
- كيفية استخدام أدوات محرر البلاط لإنشاء المستويات.
- كيفية فرز البلاط ووضعه في طبقات مختلفة.
- كيفية إضافة بلاط الفيزياء الوحدة.
- كيفية تلوين البلاط ديناميكيا.
- كيفية تغيير البلاط الجاهزة باستخدام الكود والمنطق الأصليين.
- كيفية إضافة الإضافات الخاصة بك والبرامج النصية لخرائط التجانب إلى المشروع.
نعم ، كانت القائمة رائعة. ولكن لا تخف - عندما نبدأ في الفهم ، ستفهم بسرعة مدى بساطة هذه الأدوات.
ملاحظة: يفترض هذا البرنامج التعليمي أنك جيد في العمل مع محرر الوحدة. إذا كنت تعتقد أنك لست على دراية به ، فإن البرنامج التعليمي " مقدمة إلى الوحدة" يحتوي على كل ما تحتاجه لتعلم هذا البرنامج التعليمي. بالإضافة إلى ذلك ، تحتاج إلى إصدار Unity 2017.3 أو أعلى.
ما هي لعبة البلاط؟
لعبة البلاط ثنائي الأبعاد هي أي لعبة تتكون فيها المستويات أو مناطق اللعبة من العديد من البلاطات الصغيرة (البلاط) التي تشكل معًا شبكة من البلاط. في بعض الأحيان يمكن أن تكون الاختلافات بين البلاط واضحة ، وأحيانًا تبدو صلبة ولا يمكن تمييزها عن اللاعبين.
تسمى مجموعة البلاطات في اللعبة مجموعة من البلاط ، وعادةً ما يكون كل بلاطة نقشًا متحركًا ، جزءًا من ورقة الرموز المتحركة. إذا كنت ترغب في التعامل بشكل أفضل مع أوراق العفريت ، لدينا برنامج
تعليمي يصف أوراق العفريت Unity.
كما ترى في هذا البرنامج التعليمي ، عادةً ما تكون المربعات عبارة عن مربعات. ولكن يمكن أن تتخذ شكلًا آخر - مستطيلات أو متوازي الأضلاع أو سداسيات. في الألعاب ، عادةً ما يتم استخدام عرض علوي أو جانبي ، ولكن في بعض الأحيان في ألعاب المربعات ، يتم استخدام 2.5D أيضًا.
ربما كنت تعرف بالفعل أكثر الألعاب شعبية التي تستخدم نظام بطاقة البلاط:
Starbound و
Terraria .
للوصول إلى العمل
قم بتنزيل
مواد المشروع لهذا البرنامج التعليمي وفك ضغط ملف .zip.
قم بتشغيل محرر الوحدة وقم بتحميل مشروع
Rayzor-starter من مواد المشروع غير المعبأة.
إليك ما ستعمل معه في هذا المشروع:
- Cinemachine / Gizmos: Unity تتم إضافة Cinemachine فقط لتنفيذ كاميرا سهلة الاستخدام بعد المشغل.
- لوحات: في هذا المجلد سوف نقوم بتخزين لوحات البلاط الخاصة بنا.
- المباني الجاهزة: بعض المباني الجاهزة التي نستخدمها لاحقًا في اللعبة.
- المشاهد: هنا سنفتح المشاهد ونحفظها.
- النصوص: بعض النصوص البسيطة للتحكم في حركة اللاعب ، منطق تعارض الفخاخ و الفوز / الخسارة في اللعبة يحتوي هذا المجلد أيضًا على نصوص Unity Tilemap من مستودع Unity 2D Extras Github ، والذي سنستخدمه لاحقًا.
- Sfx: أصوات اللعبة.
- العفاريت: العفاريت ثنائية الأبعاد التي سننشئ منها ألواح البلاط. يتم أخذها من مجموعة من الكهوف والأبراج المحصنة ل roguelike . مؤلف العبوة هو kenney.nl.
إنشاء اللعبة
افتح مشهد
اللعبة من مجلد
Scenes .
انقر على زر التشغيل في المحرر لبدء اللعبة. في نافذة
اللعبة ، حرك البطل بمفاتيح WASD أو "الأسهم".
بينما يتجول البطل حول الخلفية التي تبدو بلا نهاية للكاميرا بلون # 00000 ، فقد في الفراغ.
لإصلاح ذلك ، نحتاج إلى أدوات تجانب ثنائية الأبعاد لبناء مستويات مثيرة للاهتمام وآليات اللعبة.
التعرف على لوحة البلاط
في المحرر ، انقر فوق
Window -> Tile Palette لفتح نافذة لوحة اللوحة ثنائية الأبعاد.
ستكون هذه النافذة أفضل صديق لك عند العمل على ألعاب المربعات في Unity.
- توفر هذه السلسلة من الرموز أدوات أساسية لمعالجة البلاط ، الرسم والحذف
- يتيح لك هذا المحدد إنشاء لوحات مختلفة يمكن اعتبارها لوحات للرسم ، حيث نضع "الألوان" ، وفي هذه الحالة - البلاط.
- يتيح لك هذا المحدد إنشاء فراشي بسلوكيات مختلفة. يمكنك إضافة الفرش الخاصة بك ، والتي يختلف سلوكها عن الفرشاة الافتراضية (على سبيل المثال ، رسم البلاط الجاهز بوظائف إضافية)
انقر فوق
إنشاء لوحة جديدة وقم
بتسمية لوحة
RoguelikeCave . لا تقم بتغيير خيارات الشبكة والخلية.
انقر فوق
إنشاء واختر حفظ اللوحة الجديدة في
مجلد Assets \ Palettes للمشروع. في ذلك ، قم بإنشاء مجلد
RoguelikeCave جديد.
الآن يجب أن تبدو بنية المجلد لمشروعك كما يلي:
في نافذة محرر
لوحة البلاط ، يجب تحديد
RoguelikeCave ؛ في هذه المرحلة ما زلنا لا نملك أي بلاط:
كيف يمكن للفنان أن يصنع روائعه إذا لم يكن لديه مواد؟
بدون إغلاق نافذة لوحة البلاط ، حدد مجلد مشروع
Sprites / roguelike-cave-pack وقم بتوسيع أصول
roguelikeDungeon transparent.png . ثم حدد جميع الرموز المتحركة في ورقة الرموز المتحركة هذه: حدد الرموز المتحركة الأولى واضغط على مفتاح Shift وحدد الرموز المتحركة الأخيرة.
اسحب كل العفاريت المحددة في نافذة لوحة البلاط RoguelikeCave:
قم بسحب وإسقاط الرموز المتحركة في نافذة لوحة اللوحة وحدد مكانًا لتخزين الأصول في الوحدة.
قم بإنشاء مجلد
Tiles جديد في
Assets / Palettes / RoguelikeCave وحدد هذا المجلد كموقع التخزين:
ستقوم الوحدة بإنشاء أصل تجانب لكل نقش متحرك تم إضافته من ورقة الرموز المتحركة. انتظر حتى تكتمل العملية ، ثم قم بزيادة حجم نافذة Tile Palette واستمتع بالصفوف المتساوية من البلاط الجديد الجميل الموجود في لوحة RoguelikeCave:
كرر العملية المذكورة أعلاه لإنشاء لوحة تجانب باستخدام نافذة
لوحة التجانب ، ولكن هذه المرة اسم لوحة
RoguelikeCustom الجديدة.
ضع اللوحة الجديدة في مجلد جديد. اسم المجلد
RoguelikeCustom ونقله إلى مجلد
الأصول / لوحات المشروع.
هذه المرة ، باستخدام العملية الموضحة أعلاه ، استخدم العفاريت من
ورقة Assets / Sprites / roguelike-custom / roguelike-normal-cutdown-sheet.png لملء مربعات اللوحة الجديدة. قم بإنشاء مجلد
Tiles داخل مجلد لوح الألوان
RoguelikeCustom ونقل أصول
المربع هناك:
ابتهج بنفسك ، الآن أنت تعرف سحر إنشاء لوحة تجانب!
شبكة خريطة البلاط
افتح قائمة
GameObject في الجزء العلوي من محرر الوحدة (أو شريط قوائم الوحدة إذا كنت تستخدم MacOS) ، وانقر على
كائن ثنائي الأبعاد ثم
Tilemap لإنشاء شبكة Tilemap جديدة:
يجب أن ترى أنه
تمت إضافة
شبكة GameObject جديدة إلى التسلسل الهرمي للمشهد. قم بتوسيعه
وحدد خريطة GameObject
المضمنة .
فكر في Tilemap كطبقة (ربما واحدة من عدة طبقات) في لعبتك. يمكنك إضافة كائنات جديدة لإنشاء طبقات Tilemap إضافية.
في المفتش ، سترى مكونين أضافهما Unity تلقائيًا إلى GameObject هذا:
- يستخدم محرك الوحدة مكون
Tilemap
لتخزين العفاريت في الدائرة المميزة بمكون Grid
- في حالتنا ، هذه هي GameObject Grid . عند إنشاء Tilemap للمرة الأولى ، لا داعي للقلق بشأن جميع الميزات التقنية لكيفية تواصل Unity بين كل هذه المكونات. Tilemap Renderer
المواد التي سيتم استخدامها لتقديم البلاط في Tilemap. كما يسمح لك بتكوين خصائص الفرز لطبقة Tilemap هذه.
إعادة تسمية خريطة موقع
GameObject إلى
طبقة الأساس .
باستخدام أدوات الرسم المختلفة لوحة البلاط
قم بالتبديل في المحرر إلى وضع المشهد.
بدون إغلاق لوحة البلاط ، حدد لوحة RoguelikeCave ، ثم حدد أداة
الفرشاة (أو اضغط
B ). حدد بلاط الرمل كما هو موضح أدناه:
في نافذة المشهد ، حرك المؤشر إلى الشبكة بجوار المشغل. سوف تنجذب فرشاة بلاط الرمل إلى الشبكة.
اضغط مع الاستمرار على زر الماوس الأيسر ، ارسم منطقة مستطيلة حول المشغل. سيتم رسمها على طبقة طبقة Tilemap BaseLayer:
يمكن أن يكون رسم المساحات الكبيرة مهمة رتيبة ، لذلك هناك فرشاة ممتلئة يمكن استخدامها لطلاء مساحات كبيرة. في نافذة لوحة البلاط ، انقر على
أيقونة الفرشاة المربعة (أو اضغط على
U ).
عد إلى المحرر وارسم مستطيلًا أكبر حول المشغل بالضغط مع الاستمرار على زر الماوس الأيسر ، وسحب المؤشر من أعلى اليسار إلى الزاوية اليمنى السفلى:
على الرغم من أننا أضفنا القليل من اللون إلى اللعبة ، فإن هذا الزنزانة الرملية تبدو مملة. حان الوقت لإضافة بعض التفاصيل!
استخدم خيار
GameObject -> 2D Object -> Tilemap لإنشاء طبقة Tilemap جديدة. هذه المرة سيكون الكائن الوحيد الذي تم إنشاؤه في التسلسل الهرمي ، لأن لدينا بالفعل شبكة مناسبة. إعادة تسمية هذه الطبقة إلى
DungeonFloorDecoration :
في نافذة Tile Palette ، قم بتبديل
Active Tilemap إلى طبقة
DungeonFloorDecoration :
حدد أداة
الفرشاة (
B ) ، ثم ارسم الكائنات المتناثرة على الخريطة في نافذة Scene:
قم بتعطيل ومن ثم
أعد تمكين
DungeonFloorDecoration في التسلسل الهرمي لـ GameObject لمعرفة كيف يؤدي العرض على Tilemap النشط إلى تغيير طبقة DungeonFloorDecoration ، وتقع جميع المربعات المقدمة على هذه الطبقة الجديدة:
قم بإنشاء طبقة Tilemap جديدة باستخدام خيار
GameObject -> 2D Object -> Tilemap مرة أخرى . نسميها
قابلة للتصادم . في المستقبل ، نستخدمها لإنشاء جدران وحدود.
قم بتبديل Tilemap النشط في نافذة لوحة اللوحة إلى
Collideable . حدد أداة الفرشاة (
B ) ثم ارسم البلاط التالي لبناء جدار حول منطقة اللعب. المناطق المميزة باللون الأحمر في الصورة أدناه هي الأجزاء الجديدة التي يجب إضافتها:
ألق نظرة على لقطة الشاشة أدناه لنافذة Tile Palette لمعرفة مكان العثور على البلاط المطلوب لبناء الجدار. لا تنس أنه يمكنك استخدام تركيبات CTRL-Z أو CMD-Z للتراجع عن الإجراء أو مسح الأخطاء باستخدام الفرشاة الحالية (أثناء الضغط على
Shift ):
قم بتشغيل اللعبة في المحرر وحاول اختراق الجدار:
من قام بتشغيل وضع noclip؟ لم تتوقع هذا؟
تكمن المشكلة في أننا قمنا برسم البلاط القياسي ولم نقم بتطبيق وحدة الفيزياء السحرية على طبقة Tilemap حتى الآن.
حدد GameObject
Collideable وأضف مكونًا جديدًا بالنقر فوق الزر
Add Component في نافذة
المفتش ؛ في حقل البحث ، أدخل
Tilemap Collider 2D :
تم إنشاء هذا المكون خصيصًا لألعاب بلاط Unity 2D. إنها ببساطة تطبق شكل المصادم المادي على جميع البلاط في الطبقة التي تمت إضافتها إليها ، دون القيام بأي عمل آخر.
ابدأ اللعبة مرة أخرى وحاول اختراق الجدار. تم رفض الوصول!
ملاحظة: في بعض الأحيان عند تحريك الكاميرا ، قد تلاحظ وجود خطوط سوداء صغيرة بين بعض المربعات. يبدو أن هذه مشكلة تتعلق بحركة الكاميرا في المشاريع بنظام 2D Tilemap Unity. يمكنك التخلص منه تمامًا تقريبًا عن طريق تعطيل Anti-Aliasing في إعدادات الرسومات. ومع ذلك ، حتى إذا تم ذلك في مشروع الشراء ، فإن التأثير لا يزال ملحوظًا قليلاً. قد يكون الحل لهذه المشكلة هو إضافة نص حركة الكاميرا الخاص بك مع إزاحة البكسل. يمكن العثور على مناقشة جيدة لهذه المشكلة هنا .
تعمل التصادمات بشكل جيد ، وقد تعتقد أن هذا يكفي. ولكن في الوقت الحالي ، لا يتم تحسين المصادمات بكفاءة. في وضع Scene ، قم بتكبير جزء من الحائط وانظر في ملامح المصادمات:
هناك مصادم حول كل بلاط. لا تحتاج أقسام الجدار الأوسط إلى هذه المصادمات الإضافية.
مع تحديد GameObject
Collideable ، أضف مكون
Collider Collider 2D إليه. سيؤدي هذا أيضًا إلى إضافة RigidBody2D تلقائيًا.
قم بتعيين معلمة
BodyType RigidBody2D إلى
Static ، ثم حدد خانة الاختيار
Used by Composite في مكون
Tilemap Collider 2D :
بعد ذلك ، ستلاحظ أن هذه المصادمات المربعة غير الضرورية في منتصف الجدران تختفي.
قم بإنهاء إنشاء الجدران عن طريق بناؤها وإغلاقها في الأعلى ، بارتفاع 16 بلاط. لا تنسى. أن Collideable يجب تحديده باعتباره Tilemap النشط من
نافذة لوحة البلاط:
لن يكون قسم الزنزانة أي صعوبة لبطلنا دون عقبات. الآن سنبدأ العمل على إنشاء غرفة الموت ، تكملها ممرات رخامية قديمة جميلة. بعد التغلب على كل هذه العقبات ، سيحصل اللاعب على مكافأة - جبل من الذهب.
لرسم هذه الممرات ، سنستخدم بلاط
القاعدة الخاص بفرشاة
البلاط . كما رأيت في بداية البرنامج التعليمي ، تمت بالفعل إضافة نصوص تجانب إضافية من مستودع
Unity 2D Extras Github إلى المشروع. واحد منهم هو بلاط القاعدة.
يتيح لك بلاط القاعدة وضع قواعد حول أي مربعات ترسم اعتمادًا على البلاطات المجاورة لدينا.
انقر بزر الماوس الأيمن على مجلد
Prefabs للمشروع وحدد
إنشاء -> قاعدة البلاط (يجب أن يكون هذا العنصر في أعلى القائمة). قم
بتسمية عنصر
MarbleFloorRuleTile الجديد:
حدد هذا
MarbleFloorRuleTile الجديد واستخدم المفتش لتعيين
Sprite الافتراضي إلى
roguelikeDungeon_transparent_335
. ثم قم بإضافة قاعدة تجانب جديدة بالضغط على أيقونة
+ . حدد قيمة
roguelikeDungeon_transparent_339
لـ
Sprite لهذه القاعدة وانقر على جميع المربعات الخارجية في مخطط القاعدة بحيث يكون لكل منها سهم أخضر يشير إلى الخارج:
باستخدام أداة تعبئة الصندوق (
B ) في لوحة البلاط وتحديد طبقة
طبقة الأساس ، ارسم
مقطعًا مستقيماً من الجدار الرخامي. من الضروري أن يغطي كل شيء بينما المساحة الحرة للأرضية.
يمكنك ملاحظة أنه عندما نقوم بذلك ، ستغلق الطبقة بلاط الجدران مع المصادمات ، لأن ترتيب الطبقات لم يتم تعيينه بعد. يمكن إصلاح ذلك بسهولة عن طريق تحديد GameObject
Collideable وتغيير
الترتيب في طبقة مكون
Tilemap Renderer إلى قيمة أعلى (
5 تكفي):
ارجع إلى مجلد
Prefabs للمشروع ، وافتح نافذة Tile وحدد لوحة RoguelikeCave ، ثم اسحب
MarbleFloorRuleTile إلى مكان فارغ في اللوحة:
استخدم فرشاة تعبئة الصندوق وارسم بعض أقسام الأرضية الرخامية في الغرفة:
لاحظ أن مربع القاعدة المخصص ، المحاط بالكامل من جميع الزوايا والوجوه ، يصبح مربعًا مزخرفًا (العفريت المحدد في محرر قواعد التجانب).
هذا فخ!
لا ، لن نضيف الأدميرال أكبر إلى اللعبة كشخصية. سنقوم بإنشاء فرشاة بلاط للصب الجاهز للفخ ، والذي سنستخدمه لرسم الفخاخ التي تصوب بشفرات دوارة!
إنشاء GameObject فارغ جديد في التسلسل الهرمي وتسميته
ShootingTrap . إنشاء طفل GameObject فارغ في ShootingTrap.
سمها العفريت :
حدد
Sprite وأضف مكون
Sprite Renderer إليها. قم بتعيين
طبقة الفرز على
المشغل والترتيب في الطبقة على
1 بحيث يتم عرضها أعلى بقية الطبقات. حدد حقل
العفريت ، وقم بتعيين
roguelikeDungeon_transparent_180 كعفريت.
الآن قم بتدوير تحويل كائن
Sprite بمقدار
-90 في المحور
Z :
بعد ذلك ، ارجع إلى GameObject
ShootingTrap وأضف مكونًا جديدًا باستخدام المفتش. في حقل البحث ، ابحث عن
Shooting Trap وأرفق هذا النص البرمجي.
يضاف هذا البرنامج النصي إلى ملفات المشروع التي قمت بتنزيلها ؛ في الواقع ، تطلق كوروتين كل ثانيتين ، مما يخلق نسخة مسبقة من شفرة المنشار الدوارة (أو أي الجاهزة الأخرى) في الوضع الحالي للمصيدة.
اضبط
العنصر على معلمة
Shoot Prefab لمكون Shooting Trap على
المقذوف (يقع الإعداد المسبق في
/ Assets / Prefabs ):
قم بتشغيل اللعبة مرة أخرى في المحرر واستخدم وضع المشهد للعثور على الفخ. تعمل!
اسحب نسخة من
ShootingTrap من التسلسل الهرمي إلى المجلد
/ Assets / Prefabs للمشروع لإنشاء اختبار مسبق. إزالة ShootingTrap من التسلسل الهرمي.
نستخدم برنامج نصي آخر لفرشاة البلاط يسمى
PrefabBrush لإنشاء فرشاة يمكن أن ترسم الجاهزة على طبقات Tilemap.
انقر بزر الماوس الأيمن على
مجلد / Assets / Prefabs للمشروع وحدد
Create -> Prefab Brush . اسم الكائن
PrefabBrush .
استخدم المفتش لتعيين المعلمة PrefabBrush
Size Prefabs إلى
1 ، والمعلمة
Element 0 إلى
ShootingTrap .
قم بإنشاء طبقة Tilemap جديدة تسمى
Traps في
الشبكة وافتح نافذة Tile Palette.
حدد فرشاة التجانب العادية (
B ) واستخدم القائمة المنسدلة في الجزء السفلي من نافذة Tile Palette لتحديد
PrefabBrush . حدد Active Tilemap
Traps كطبقة واستخدم نافذة Scene لرسم العديد من الفخاخ الجاهزة على طول الحد الأيسر للغرفة.
قم بتوسيع مصائد GameObject في التسلسل الهرمي وقم بتجربة قيمة
Shoot Start Delay لكل قيمة على كل Gameobject
ShootingTrap باستخدام البرنامج النصي Shooting Trap في المفتش. أضف 0.25 إلى قيمة كل مصيدة ، أي:
- First ShootingTrap -> Shoot Start Delay = 0.1
- لقطة التصوير الثانية -> تأخير بدء التصوير = 0.35
- لقطة التصوير الثالثة -> تأخير بدء التصوير = 0.6
- وهكذا ...
ابدأ اللعبة واجتاز الاختبار إذا كنت تجرؤ.
الهدف النهائي
الهدف من هذا الزنزانة الصغيرة هو الحصول على كومة من الذهب. الشهرة والثروة تنتظر أولئك الذين يصلون إليها ، وتجنب شفرات الطيران المميتة.
قم بإنشاء طبقة Tilemap جديدة تسمى
Goal في GameObject
Grid . حدد
Goal وقم بتغيير قيمة
ترتيب Tilemap Renderer في الطبقة إلى
2 :
بدون إغلاق نافذة لوحة البلاط ، تأكد من تحديد PrefabBrush. اجعل
العنصر 0 يشير إلى
الإعداد المسبق للهدف من المجلد
/ Assets / Prefabs للمشروع.
هذا هو الإعداد المسبق مع جبل من العفريت الذهبي ، مع Box Collider 2D مع تشغيل Trigger ، ومصدر صوت إضافي ،
Goal.cs
برمجي
Goal.cs
بسيط
Goal.cs
إنتاج صوت الوصول إلى الهدف
Goal.cs
تشغيل المستوى عندما يقع اللاعب في منطقة الزناد.
استخدم فرشاة البلاط القياسية لرسم بلاط جاهز الهدف في أعلى الغرفة خلف الفخاخ:
ابدأ اللعبة مرة أخرى وحاول الوصول إلى الهدف. عندما تصل إلى هذا
OnTriggerEnter2D()
،
OnTriggerEnter2D()
منطق
OnTriggerEnter2D()
من
Goal.cs
، ويعيد إنتاج التأثير الصوتي ويعيد تشغيل المستوى.
اللمسات الأخيرة
الآن الزنزانة خفيفة للغاية ومجانية. يمكننا أن نضيف أسلوبًا لها عن طريق التبديل إلى مادة العفريت ثنائية الأبعاد التي يمكنها الاستجابة للضوء.
حدد الكائنات Sprite Player و Goal و ShootingTrap ، واستخدم
مواد Sprite Renderer
SpriteLightingMaterial :
هذه مادة بها تظليل
Sprite / Diffuse متصل بها. يسمح لإضاءة المشهد بالتأثير على العفاريت.
في GameObject
Grid ، حدد
كائنات BaseLayer و DungeonFloorDecoration و Collideable و Goal ، ثم استخدم المفتش لاستخدام
Tilemap Renderer Material SpriteLightingMaterial في المادة
أيضًا .
ثم حدد
ضوء الاتجاه في
أضواء GameObject وخفض الضوء
المكثف إلى
0.3 .
أفضل بكثير!
أيضا ، ستلاحظ الآن أن اللاعب يحمل
ضوء نقطة ، أي ،
يضيء الفانوس حوله.
الآن بعد أن تستخدم العفاريت في المشهد المواد المناسبة ، تؤثر إضاءة الوحدة على جميع العفاريت المحيطة.
اسحب نسختين من الإعداد
المسبق FlickerLight من
مجلد / Assets / Prefabs للمشروع في Scene وقم بوضعهما في GameObject
Lights .
قم بتعيين الموضع الجاهز الأول
(X: -11.25 ، Y: 4 ، Z: -1.35) ، والثاني -
(X: 2.75 ، Y: 4 ، Z: -1.35) .
قم بإنشاء طبقة Tilemap جديدة تسمى
WallsAndObjects وقم بتعيين
Tilemap Renderer Order in Layer inspector إلى
15 . تذكر أن
المادة تستخدم أيضًا
SpriteLightingMaterial .
قم
بتبديل فرشاة لوحة التجانب مرة أخرى إلى
Default Brush و
Tilemap Active إلى
WallsAndObjects .
استخدم أداة الفرشاة (
ب ) لرسم بلاطين "مصباح خفيف" تحت كل من FlickerLight الجديد الذي وضعناه في زوايا المنطقة الأولية:
وقت الصعوبة
دعونا نرى ما إذا كان بإمكاننا تحسين الزنزانة بشكل أكبر. استخدم طبقة Tilemap
WallsAndObjects لإنشاء خزائن كتب في أعلى غرفة الزنزانة باستخدام لوحة تجانب أخرى تسمى
RoguelikeCustom . ارسم أيضًا جزءًا أو جزأين من الجدار المتصدع.
ارجع إلى طبقة Tilemap
DungeonFloorDecoration وأضف بعض التفاصيل الإضافية إلى الأرضية الرخامية ، على سبيل المثال ، تشققات على العديد من البلاط:
تهانينا ، لقد أكملت أول مستوى محصن صغير لك! نتيجة لذلك ، يجب أن تحصل على شيء مشابه:
إلى أين أذهب بعد ذلك؟
إذا فاتتك خطوة ، يمكنك إلقاء نظرة على النتيجة النهائية لهذا البرنامج التعليمي عن طريق فتح مشروع Unity
Rayzor النهائي من
مواد قابلة للتنزيل.
لقد تعلمنا الكثير في هذا البرنامج التعليمي ، ولكن كما هو الحال مع أي عمل آخر ، هناك دائمًا شيء آخر!
هناك نصوص فرشاة تجانب مثيرة للاهتمام لم يتم تناولها في هذا البرنامج التعليمي. اقرأ عنها
هنا وفكر فيما إذا كان يمكنك استخدامها.
يمكنك أيضًا معرفة كيفية إنشاء مربعات متحركة
هنا .