Unity C#
FindObjectOfType в Unity C# — поиск единственного объекта типа
Метод FindObjectOfType — встроенный метод Unity, который находит первый объект заданного типа на сцене. Он выручает, когда нужна ссылка на компонент или объект, а прямой привязки в инспекторе нет.
Но учти: метод относительно медленный, особенно если объектов на сцене много — Unity перебирает их все. Поэтому применять его стоит в исключительных случаях, например для разовой инициализации в Start.
Особенности
- Поиск объекта: возвращает первый найденный объект нужного типа, а если таких нет — null.
- Медленный вызов: неэффективен при частом использовании, так как проверяет все объекты сцены.
- Для разовой инициализации: уместен в Awake или Start.
Пример кода
GameManager при старте ищет игрока на сцене:
using UnityEngine;
public class GameManager : MonoBehaviour
{
private Player player;
void Start()
{
// Поиск объекта типа Player в сцене
player = FindObjectOfType<Player>();
if (player != null)
{
Debug.Log("Игрок найден: " + player.name);
}
else
{
Debug.LogError("Игрок не найден в сцене!");
}
}
}