Menu
CoddyTech

פסי בריאות

חלק מהיחידה בניית משחקים אמיתיים במסלול ה-Unity של Coddy. שיעור 10 מתוך 60.

סרגל שמתרוקן הוא תמונת ממשק משתמש שהאפשרות סוג תמונה שלה מוגדרת למילוי. ההגדרה הזאת מופיעה לאחר שמוגדרת לתמונה תמונת מקור; כשמוגדר None, ה־Inspector מסתיר אותה. האפשרות שיטת מילוי אופקית עם מוצא מילוי שמאל גורמת לסרגל להתכווץ לכיוון הקצה השמאלי שלו, ו־fillAmount, שערכו נע בין 0 ל־1, קובע איזה חלק ממנו מצויר. תמונת Image כהה מאחוריו מציגה את החלק הריק. 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); הוא ירוק כשהסרגל מלא, והופך לאדום ככל שהוא מתרוקן.

challenge icon

אתגר

קל

הצג את המגן ואת הבריאות של האביר בשני פסים.

  1. כתוב ShowBars(): shieldBar.fillAmount = (float)shield / maxShield;, וכך גם עבור healthBar עם hp ו-maxHp. קרא לה מתוך Start().
  2. ב-TakeDamage, המגן סופג Mathf.Min(amount, shield) ואת השאר מפחיתים מ-hp, אך לא מתחת ל-0. לאחר מכן קרא ל-ShowBars().

לחץ על "שחק" וצעד על הדוקרנים: פס המגן מתרוקן ראשון. לאחר מכן לחץ על "בדיקה".

נסו בעצמכם

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. לאחר מכן הצג את שני הפסים.
    }
}

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

תרגלו בעצמכם: Unity אונליין