FindObjectOfType Против GameObject.FindObjectOfType

#c# #unity3d

#c# #unity3d

Вопрос:

Когда я использую FindObjectOfType<> и GameObject.FindObjectOfType<> , это приводит меня к тому же результату, но я не знаю, в чем разница между ними.

Ответ №1:

Быстрый ответ

это та же функция с той же логикой. Но как это может быть? Позвольте мне объяснить:

Объект.FindObjectOfType

Документы:https://docs.unity3d.com/ScriptReference/Object .FindObjectOfType.html

Проверка документации, похоже, что это статическая функция, объявленная на Object

 public static T FindObjectOfType();
  

Статические функции, не имеют ничего общего с состоянием объекта объекта и могут манипулировать только статическими (общими в некотором смысле для всех объектов) данными.

Теперь любой другой объект в C # наследуется от Object , как и GameObject . Таким образом, эффективно, когда вы вызываете GameObject.FindObjectOfType , вы вызываете по наследству исходную функцию.

Имеет ли это смысл?