סיכום: מצבי הדלת
חלק מהיחידה ארכיטקטורת משחקים ב-Unity במסלול ה-Unity של Coddy. שיעור 41 מתוך 64.
בפרק הזה הוקצתה לכל מצב מחלקה משלו, הפעלנו את כולם בעזרת StateMachine אחד, ואפשרנו לכל מצב להחליט בעצמו איך לצאת ממנו. הדלת משלבת את שלושת הדברים.
אתגר
בינונימלאו את חמשת המצבים של דלת הטירה ב־DoorStates.cs; ב־Door.cs נמצאות פונקציות העזר.
- נעולה:
door.PressedNear()מציגה ביומן אתLocked.Door.Unlock()מעבירה דלת נעולה למצבclosed. - סגורה:
PressedNear()מעבירה למצבopening. נפתחת: ברגע ש־door.SlideTo(door.openY)מחזירה true, עוברת למצבopen. - פתוחה: לאחר
door.stayOpenשניות, עוברת למצבclosing. - נסגרת:
PressedNear()פותחת שוב; אחרת, ברגע ש־SlideTo(door.closedY)מחזירה true, עוברת למצב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טיפוסי Enum ב־Inspectorחזרה: טבלת שללהגרלת השלל2ממשקים ב-Unity
IDamageableממשקים ו-TryGetComponentGetComponentsסיכום: מקש אינטראקציהסיכום: הקרוב ביותר בטווחתרגלו בעצמכם: Unity אונליין