Menu
CoddyTech

כל גל

שיעור 6 מתוך 25 בקורס משחק Unity: הגנת מגדלים של Coddy.

גל אחד אינו משחק. הקורוטינה עוברת על כל הגלים לפי הסדר, עם הפסקה לפני כל אחד מהם כדי שהשחקן יוכל להתכונן, ומציינת ב־Console איזה גל מתחיל. ההפסקה היא עוד WaitForSeconds אחד, בתחילת הלולאה:

for (int i = 0; i < waves.Count; i++)
{
    yield return new WaitForSeconds(timeBetweenWaves);
    // תעד ביומן את הגל, ואז צור את waves[i] כפי שנעשה קודם
}

הגלים נספרים החל מ־0 ברשימה והחל מ־1 עבור השחקן, ולכן ב־Console מופיע "Wave " + (i + 1).

challenge icon

אתגר

בינוני

שלח כל גל, עם הפסקה לפני כל אחד.

  1. ב־WaveSpawner, הוסף [SerializeField] private float timeBetweenWaves = 8f;.
  2. עבור על waves: המתן למשך timeBetweenWaves, הצג ביומן "Wave " + (i + 1), ואז צור את waves[i] כמו קודם.
  3. אחרי הלולאה, הצג ביומן All waves sent.

לחץ על "שחק": אחרי 8 שניות, המסוף יציג Wave 1 וה־Grunts יגיעו. ואז לחץ על "בדיקה".

נסו בעצמכם

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class WaveSpawner : MonoBehaviour
{
    [SerializeField] private List<Wave> waves = new List<Wave>();
    [SerializeField] private Transform[] waypoints;

    void Start()
    {
        StartCoroutine(RunWaves());
    }

    IEnumerator RunWaves()
    {
        Wave wave = waves[0];
        for (int n = 0; n < wave.count; n++)
        {
            Enemy enemy = Instantiate(wave.enemy, waypoints[0].position, Quaternion.identity);
            enemy.waypoints = waypoints;
            yield return new WaitForSeconds(wave.spacing);
        }
    }
}

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

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