Menu
CoddyTech
flag Ar iconالعربيةdown icon

مراجعة: حالات الباب

جزء من قسم هندسة الألعاب في Unity في رحلة Unity على Coddy. الدرس 32 من 50.

challenge icon

التحدي

متوسط

باب قلعة مزوّد بقفل. تحرّك الأسهم اللاعب، ويستدعي المفتاح الذهبي 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