Menu
CoddyTech

Özet: Kapı Durumları

Coddy'nin Unity Journey'sinin Unity'de Oyun Mimarisi bölümünün bir parçası. Ders 41 / 64.

Bu bölümde her duruma kendi sınıfını verdik, hepsini tek bir StateMachine ile çalıştırdık ve her durumun kendi çıkış yoluna karar vermesini sağladık. Kapı, bu üçünü bir araya getiriyor.

challenge icon

Görev

Orta

DoorStates.cs dosyasındaki kale kapısının beş durumunu tamamla; yardımcı işlevler Door.cs dosyasında.

  1. Kilitli: door.PressedNear(), Locked kaydını günlüğe yazar. Door.Unlock(), kilitli kapıyı closed durumuna geçirir.
  2. Kapalı: PressedNear(), durumu opening olarak değiştirir. Açılıyor: door.SlideTo(door.openY) doğru olduğunda open durumuna geçer.
  3. Açık: door.stayOpen saniye sonra closing durumuna geçer.
  4. Kapanıyor: PressedNear() kapıyı yeniden açar; aksi takdirde SlideTo(door.closedY) doğru olduğunda closed durumuna geçer.

“Oyna” düğmesine bas, anahtarı al ve kapıyı aç. Ardından “Kontrol et” düğmesine bas.

Kendin dene

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 iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Unity'de Oyun Mimarisi bölümündeki tüm dersler

Kendi başına pratik yap: Unity playground