2025rc

Пригадайте, що таке корутина.


Основні характеристики методу StartCoroutine( назваФункції() )


Що робить наступний скрипт? Чи можна його спростити?


// JewelSpawn.cs
using UnityEngine;
using System.Collections;

public class JewelSpawn : MonoBehaviour
{
  public GameObject jewelPrefab;   // Префаб коштовності, яка буде створюватися
  public float spawnInterval = 1f; // Інтервал між створенням коштовностей

  void Start(){
    // Запускаємо корутину для створення коштовностей
    StartCoroutine(SpawnJewels());
  }

  IEnumerator SpawnJewels(){
    while (true){
      // Визначаємо межі екрана у світових координатах
      Vector2 screenBounds = Camera.main.ScreenToWorldPoint(
        new Vector2(Screen.width, Screen.height)
      );

      // Створюємо коштовність у випадковій позиції
      Instantiate(jewelPrefab,
        new Vector2(
          Random.Range(-screenBounds.x, screenBounds.x),
          Random.Range(-screenBounds.y, screenBounds.y)
        ),
        Quaternion.identity);

      // Очікуємо вказаний інтервал перед створенням наступної коштовності
      yield return new WaitForSeconds(spawnInterval);
    }
  }

}