Menu
CoddyTech

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

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

منح هذا الفصل كل حالة فئة خاصة بها، وشغّلها باستخدام StateMachine واحد، وترك لكل حالة أن تقرر طريقتها الخاصة للخروج. يجمع الباب هذه العناصر الثلاثة معًا.

challenge icon

التحدي

متوسط

أكمل الحالات الخمس لباب القلعة في DoorStates.cs؛ يحتوي Door.cs على الدوال المساعدة.

  1. مقفل: يسجّل door.PressedNear() الرسالة Locked. تغيّر Door.Unlock() حالة الباب المقفل إلى closed.
  2. مغلق: تغيّر PressedNear() الحالة إلى opening. جارٍ الفتح: عندما تصبح door.SlideTo(door.openY) صحيحة، انتقل إلى open.
  3. مفتوح: بعد door.stayOpen ثانية، انتقل إلى closing.
  4. جارٍ الإغلاق: تفتح 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()
    {
    }
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس هندسة الألعاب في Unity

تدرّب بنفسك: Playground لـ Unity