Ö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.
Görev
OrtaDoorStates.cs dosyasındaki kale kapısının beş durumunu tamamla; yardımcı işlevler Door.cs dosyasında.
- Kilitli:
door.PressedNear(),Lockedkaydını günlüğe yazar.Door.Unlock(), kilitli kapıyıcloseddurumuna geçirir. - Kapalı:
PressedNear(), durumuopeningolarak değiştirir. Açılıyor:door.SlideTo(door.openY)doğru olduğundaopendurumuna geçer. - Açık:
door.stayOpensaniye sonraclosingdurumuna geçer. - Kapanıyor:
PressedNear()kapıyı yeniden açar; aksi takdirdeSlideTo(door.closedY)doğru olduğundacloseddurumuna 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()
{
}
}
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
1Kalıtım Değil, Bileşenler
Küçük BileşenlerTemel Düşman Script'iSoyut BileşenlerBirlikte Çalışan BileşenlerTekrar: Modüler TaretTekrar: Çift Namlulu Top4Serileştirilmiş Veriler
Serileştirilebilir SınıflarInspector'da ListelerInspector'da Enum'larTekrar: Ganimet TablosuTekrar: Ganimeti At7Durum Makineleri
Sınıflar Olarak DurumlarAlarm DurumuBir Durum MakinesiGeçişlerDüşmanların Yapay ZekâsıŞövalye SaldırıyorÖzet: Kapı Durumları2Unity'de Arayüzler
IDamageableArayüzler ve TryGetComponentGetComponentsÖzet: Etkileşim TuşuÖzet: Erişim Mesafesindeki En Yakın5ScriptableObjects
Veri VarlıklarıSilah İstatistikleriOrtak AyarlarRüzgârı KaydetVeri Olarak DalgalarTekrar: Eşya VeritabanıTekrar: Dükkândan Satın Al8Yeniden Kullanılabilir Kod
Genişletme MetotlarıGeneric SingletonGeneric YardımcılarTekrar: FindNearestKendi başına pratik yap: Unity playground