פסי בריאות
חלק מהיחידה בונים משחקים אמיתיים במסלול ה-Unity של Coddy. שיעור 10 מתוך 56.
פס שמתרוקן הוא תמונת ממשק משתמש שהImage Type שלה מוגדר לFilled. ההגדרה הזאת מופיעה לאחר שמגדירים לתמונה Source Image; כשמוגדר None, ה-Inspector מסתיר אותה. האפשרות Fill Method Horizontal יחד עם Fill Origin Left מכווצת את הפס לכיוון הקצה השמאלי שלו, ו-fillAmount, שערכו נע בין 0 ל-1, מציין איזה חלק ממנו מצויר. תמונה כהה מאחוריו מציגה את החלק הריק. Unity מגבילה את fillAmount, כך שהערך 1.4 מצייר פס מלא והערך -0.2 פס ריק.
fillAmount הוא החלק שנותר מהבריאות: הבריאות חלקי הערך המרבי שלה. כשמשתמשים בשדות מסוג int, מדובר בחלוקה של מספרים שלמים, ולכן 350 / 500 הוא 0; יש להמיר תחילה צד אחד ל-float. Image נמצא ב-UnityEngine.UI. פס החיים של הבוס מתעדכן אחרי כל פגיעה:
public Image bossBar;
public int bossMaxHp = 500;
private int bossHp = 500;
public void Hit(int damage)
{
bossHp = Mathf.Max(bossHp - damage, 0);
bossBar.fillAmount = (float)bossHp / bossMaxHp; // 350 / 500 = 0.7
}גם צבע הפס יכול להשתנות בהתאם לבריאות: bossBar.color = Color.Lerp(Color.red, Color.green, bossBar.fillAmount); ירוק כשהפס מלא, והופך לאדום כשהוא מתרוקן.
אתגר
קללאבירית יש מגן שסופג נזק לפני שהוא פוגע בנקודות החיים שלה. החצים מזיזים אותה (Mover.cs), והקוצים גורמים לה נזק של 30 כשהיא דורכת עליהם (Spikes.cs). כתבו את Knight.cs; בסצנה מקושרים healthBar ו-shieldBar, שהערכים שלהם ריקים בסצנה:
hpמתחיל בערךmaxHp(80), ו-shieldבערךmaxShield(40), ושני המדדים מתחילים מלאים.TakeDamage(int amount): המגן סופג נזק בהתאם לכמות שנותרה לו, והשאר מופחת מ-hp, שלעולם לא יורד מתחת ל-0.- אחרי כל פגיעה, שני המדדים מציגים את מה שנותר:
shieldBarמציג את המגן מתוךmaxShield, ו-healthBarאת נקודות החיים מתוךmaxHp.
לחצו על Play, צעדו על הקוצים כמה פעמים, ואז לחצו על Check.
נסו בעצמכם
using UnityEngine;
using UnityEngine.UI;
public class Knight : MonoBehaviour
{
public Image healthBar;
public Image shieldBar;
public int maxHp = 80;
public int maxShield = 40;
private int hp;
private int shield;
void Start()
{
hp = maxHp;
shield = maxShield;
// מלא את שני הפסים
}
public void TakeDamage(int amount)
{
// המגן סופג כמה שהוא יכול; השאר יורד מ-hp, עד ל-0. לאחר מכן הצג את שני הפסים.
}
}
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה בונים משחקים אמיתיים
10פרויקט: משחק פלטפורמה תלת־ממדי
המסלולפלטפורמות נעות