מצב הכוננות
חלק מהיחידה ארכיטקטורת משחקים ב-Unity במסלול ה-Unity של Coddy. שיעור 36 מתוך 64.
אתגר
בינוניהתריעו על הצריח כשהשחקן מתקרב.
- ב־
TurretStates.cs, כתבו אתAlertState, עם הראש והשחקן. ב־Enter: הראשColor.red, תעדוIntruder!. ב־Tick: הפנו אותו אל השחקן סביב ציר y. ב־Exit: תעדוAll clear. - ב־
Turret, כתבו אתSetState(IState next): קודם Exit של המצב הישן, ואז Enter של החדש. - ב־Update, התריעו כשהמרחק בתוך
range, סרקו אחרת, ואז הפעילו Tick למצב הנוכחי.
לחצו על „שחק” והתקרבו בהליכה. לאחר מכן לחצו על „בדיקה”.
נסו בעצמכם
using UnityEngine;
public class ScanState : IState
{
private Transform head;
private float angle;
private float direction = 1f;
public ScanState(Transform head)
{
this.head = head;
}
public void Enter()
{
angle = 0f;
direction = 1f;
head.GetComponent<Renderer>().material.color = Color.green;
}
public void Tick()
{
angle += 90f * direction * Time.deltaTime;
if (angle > 45f)
{
angle = 45f;
direction = -1f;
}
if (angle < -45f)
{
angle = -45f;
direction = 1f;
}
head.localRotation = Quaternion.Euler(0f, angle, 0f);
}
public void Exit()
{
}
}
כל השיעורים ביחידה ארכיטקטורת משחקים ב-Unity
1רכיבים, לא היררכיות
רכיבים קטניםסקריפט בסיסי לאויברכיבים מופשטיםרכיבים שפועלים יחדחזרה: צריח מודולריחזרה: תותח כפול4נתונים שעברו סריאליזציה
מחלקות שניתנות לסריאליזציהרשימות ב־Inspectorטיפוסי Enum ב־Inspectorחזרה: טבלת שללהגרלת השלל2ממשקים ב-Unity
IDamageableממשקים ו-TryGetComponentGetComponentsסיכום: מקש אינטראקציהסיכום: הקרוב ביותר בטווחתרגלו בעצמכם: Unity אונליין