مراجعة: حالات الباب
جزء من قسم هندسة الألعاب في Unity في رحلة Unity على Coddy. الدرس 32 من 50.
التحدي
متوسطباب قلعة مزوّد بقفل. تحرّك الأسهم اللاعب، ويستدعي المفتاح الذهبي door.Unlock() عندما يلتقطه اللاعب (كلاهما جاهز). الواجهتان IState وStateMachine الخاص بالفصل موجودتان في المشروع. يحتوي Door.cs على قيم Inspector (closedY 1.5، وopenY 4، وspeed 2، وstayOpen 2، وreach 2.5)، وحقل machine والدالة PlayerNear(). أضف إلى الباب خمس حالات، على هيئة أصناف في DoorStates.cs بأسماء LockedState وClosedState وOpeningState وOpenState وClosingState:
- يبدأ الباب مقفلًا. الضغط على Space بالقرب منه (
PlayerNear()) يسجل فقطLocked. تجعلUnlock()الباب المقفل مغلقًا، ولا تفعل شيئًا في أي حالة أخرى. - مغلق: يبدأ الضغط على Space بالقرب من الباب بفتحه.
- يفتح: يرتفع الباب بسرعة
speedحتى يصبح ارتفاعه y مساويًا لـopenY، ثم يصبح مفتوحًا. - مفتوح: يبدأ الباب بالإغلاق بعد
stayOpenثانية. - يغلق: ينزل الباب بسرعة
speedحتى يصبح ارتفاعه y مساويًا لـclosedY، ثم يصبح مغلقًا. الضغط على Space بالقرب منه أثناء نزوله يعيد فتحه من موضعه الحالي.
اضغط Play، وجرّب الباب المقفل، وأحضر المفتاح، وافتح الباب واعبر من خلاله، ثم اضغط Check.
جرّب بنفسك
using UnityEngine;
// LockedState وClosedState وOpeningState وOpenState وClosingState
جميع دروس هندسة الألعاب في Unity
1المكوّنات لا التسلسلات الهرمية
مكوّنات صغيرةسكربت أساسي للعدومكوّنات مجرّدةتعمل المكوّنات معًامراجعة: برج دفاعي معياري4البيانات المتسلسلة
الأصناف القابلة للتسلسلالقوائم في Inspectorالتعدادات في Inspectorمراجعة: جدول الغنائم10مشروع: الناجي في الساحة
البطلأنواع الأعداء