مراجعة: حالات الباب
جزء من قسم هندسة الألعاب في Unity في رحلة Unity على Coddy. الدرس 41 من 64.
منح هذا الفصل كل حالة فئة خاصة بها، وشغّلها باستخدام StateMachine واحد، وترك لكل حالة أن تقرر طريقتها الخاصة للخروج. يجمع الباب هذه العناصر الثلاثة معًا.
التحدي
متوسطأكمل الحالات الخمس لباب القلعة في DoorStates.cs؛ يحتوي Door.cs على الدوال المساعدة.
- مقفل: يسجّل
door.PressedNear()الرسالةLocked. تغيّرDoor.Unlock()حالة الباب المقفل إلىclosed. - مغلق: تغيّر
PressedNear()الحالة إلىopening. جارٍ الفتح: عندما تصبحdoor.SlideTo(door.openY)صحيحة، انتقل إلىopen. - مفتوح: بعد
door.stayOpenثانية، انتقل إلىclosing. - جارٍ الإغلاق: تفتح
PressedNear()الباب مجددًا؛ وإلا، عندما تتحققSlideTo(door.closedY)، انتقل إلىclosed.
اضغط «العب»، والتقط المفتاح وافتح الباب. ثم اضغط «تحقق».
جرّب بنفسك
using UnityEngine;
public class LockedState : IState
{
private Door door;
public LockedState(Door door)
{
this.door = door;
}
public void Enter()
{
}
public void Tick()
{
}
public void Exit()
{
}
}
public class ClosedState : IState
{
private Door door;
public ClosedState(Door door)
{
this.door = door;
}
public void Enter()
{
}
public void Tick()
{
}
public void Exit()
{
}
}
public class OpeningState : IState
{
private Door door;
public OpeningState(Door door)
{
this.door = door;
}
public void Enter()
{
}
public void Tick()
{
}
public void Exit()
{
}
}
public class OpenState : IState
{
private Door door;
public OpenState(Door door)
{
this.door = door;
}
public void Enter()
{
}
public void Tick()
{
}
public void Exit()
{
}
}
public class ClosingState : IState
{
private Door door;
public ClosingState(Door door)
{
this.door = door;
}
public void Enter()
{
}
public void Tick()
{
}
public void Exit()
{
}
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس هندسة الألعاب في Unity
1المكوّنات، لا التسلسلات الهرمية
مكوّنات صغيرةنص برمجي أساسي للعدومكوّنات مجرّدةالمكوّنات تعمل معًامراجعة: برج معياريمراجعة: مدفع مزدوج4البيانات المُسلسلة
الأصناف القابلة للتسلسلالقوائم في Inspectorالتعدادات في Inspectorمراجعة: جدول الغنائممراجعة: اختيار الغنائم عشوائيًا7آلات الحالات
الحالات كأصنافحالة التنبيهآلة حالاتالانتقالاتعقول الأعداءالفارس يهاجممراجعة: حالات الباب2الواجهات في Unity
IDamageableالواجهات وTryGetComponentGetComponentsمراجعة: مفتاح التفاعلمراجعة: أقرب عنصر ضمن النطاقتدرّب بنفسك: Playground لـ Unity