Довідники Unity C# FindObjectsOfType

Що таке FindObjectsOfType в Unity C#?

Метод FindObjectsOfType в Unity використовується для пошуку всіх активних об'єктів певного типу в поточній сцені. Цей метод повертає масив об'єктів, що робить його корисним у випадках, коли потрібно взаємодіяти з кількома об'єктами одного типу.


Однак через свою ресурсоємність метод FindObjectsOfType слід використовувати обережно, особливо якщо він викликається часто (наприклад, у методі Update). Краще використовувати його один раз для ініціалізації або рідше, щоб мінімізувати навантаження на продуктивність.


Основні характеристики методу FindObjectsOfType
  1. Повернення масиву об'єктів: Повертає масив об'єктів вказаного типу, знайдених у активній сцені.
  2. Ресурсоємність: Метод може бути повільним, якщо в сцені багато об'єктів, тому не рекомендується використовувати його в логіці, яка виконується часто.
  3. Ігнорування неактивних об'єктів: Метод знаходить лише активні об'єкти. Для пошуку неактивних об'єктів слід використовувати Resources.FindObjectsOfTypeAll.
using UnityEngine;

public class EnemyManager : MonoBehaviour
{
    private Enemy[] enemies;

    void Start()
    {
        // Пошук всіх об'єктів типу Enemy у сцені
        enemies = FindObjectsOfType<Enemy>();

        Debug.Log("Кількість ворогів: " + enemies.Length);
    }

    void Update()
    {
        // Приклад взаємодії з знайденими ворогами
        foreach (var enemy in enemies)
        {
            if (enemy != null)
            {
                enemy.TakeDamage(1 * Time.deltaTime); // Завдаємо шкоди з часом
            }
        }
    }
}
Коментарі
Додати коментар

Поки що коментарів немає