Menu
CoddyTech

חזרה: מצבי הדלת

חלק מהיחידה ארכיטקטורת משחקים ב-Unity במסלול ה-Unity של Coddy. שיעור 32 מתוך 50.

challenge icon

אתגר

בינוני

דלת של טירה עם מנעול. החצים מזיזים את Player, והמפתח המוזהב קורא ל־door.Unlock() כשהשחקן מרים אותו (שניהם מוכנים). IState וה־StateMachine של הפרק נמצאים בפרויקט. בקובץ Door.cs נמצאים הערכים של Inspector (closedY 1.5, openY 4, speed 2, stayOpen 2, reach 2.5), שדה machine והפונקציה PlayerNear(). תנו לדלת חמישה מצבים, כמחלקות בקובץ DoorStates.cs, בשם LockedState, ClosedState, OpeningState, OpenState ו־ClosingState:

  • הדלת מתחילה במצב Locked. לחיצה על Space בקרבתה (PlayerNear()) רק מתעדת ביומן Locked. הפונקציה Unlock() מעבירה דלת נעולה למצב Closed ולא עושה דבר באף מצב אחר.
  • Closed: לחיצה על Space בקרבת הדלת מתחילה לפתוח אותה.
  • Opening: הדלת עולה במהירות speed עד שערך ה־y שלה הוא openY, ואז היא במצב Open.
  • Open: לאחר stayOpen שניות, הדלת מתחילה להיסגר.
  • Closing: הדלת יורדת במהירות speed עד שערך ה־y שלה הוא closedY, ואז היא במצב Closed. לחיצה על Space בקרבתה בזמן שהיא יורדת פותחת אותה שוב מהמקום שבו היא נמצאת.

לחצו על Play, נסו לפתוח את הדלת הנעולה, קחו את המפתח, פתחו את הדלת ועברו דרכה, ואז לחצו על Check.

נסו בעצמכם

using UnityEngine;

// LockedState, ClosedState, OpeningState, OpenState ו-ClosingState

כל השיעורים ביחידה ארכיטקטורת משחקים ב-Unity