어떤 컴퍼넌트가 attach되어 있는 게임 오브젝트들을 찾아오는 함수가 두개 존재한다.
FindObjectsByType
와
FindObjectsOfType
이다.
public static T[] FindObjectsByType(FindObjectsSortMode sortMode);
public static T[] FindObjectsByType(FindObjectsInactive findObjectsInactive, FindObjectsSortMode sortMode);
첫번째 인자로는 active 상태가 아닌 게임오브젝트도 받아올 건지 말지에 대한 세팅값이다.
두번째 인자는 sort모드인데 받아온 오브젝트들을 정렬을 할건지와 어떻게 정렬할건지를
FindObjectsSortMode를 통해 설정해준다.
public static T[] FindObjectsOfType();
public static T[] FindObjectsOfType(bool includeInactive);
인자로는 active 상태가 아닌 게임오브젝트도 받아올 건지 말지에 대한 세팅값이다.
그냥
FindObjectsOfType();
이렇게 호출 시, active되지 않은 오브젝트들은 무시한다.
This doesn't return Assets (for example meshes, textures, or prefabs). It also doesn't return objects that have HideFlags.DontSave set
이 두 함수 다 씬에 있는 오브젝트만 찾아오고 Asset들은 찾아오지 않는다.
또한 HideFlags.DontSave로 설정된 오브젝트들도 반환하지 않는다.
유니티 공식문서에서도 써있듯이 FindObjectsByType 함수를 쓰라고한다.
This function is obsolete, use Object.FindObjectsByType instead.
This replacement allows you to specify whether to sort the resulting array.
FindObjectsOfType() always sorts by InstanceID, so calling FindObjectsByType(FindObjectsSortMode.InstanceID) produces identical results.
FindObjectsByType에 정렬여부까지 다 존재하므로
사실 FindObjectsByType함수를 사용할 필요가 없어보인다.