type | 搜索时要匹配的类的类型。 |
Object[] 对象数组,其类为 type 或派生自 type。
返回所有类型为 type
的对象的列表。
该函数可以返回任何类型的已加载的 Unity 对象,包括游戏对象、预制件、材质、网格、纹理等。此外,它还会列出内部内容,因此在处理返回的对象时要格外 小心。
与 Object.FindObjectsOfType 相反,该函数还会列出禁用的对象。
请注意,该函数的运行速度非常缓慢,不建议在每帧中使用。
using UnityEngine;
using System.Collections;
public class ExampleScript : MonoBehaviour
{
// This script displays the number of allocated Unity objects by type.
// This is useful for finding leaks. Knowing the type of object
// (mesh, texture, sound clip, game object) that is getting leaked is
// the first step. You could then print the names of all leaked assets of that type.
void Start()
{
print("All " + Resources.FindObjectsOfTypeAll(typeof(UnityEngine.Object)).Length);
print("Textures " + Resources.FindObjectsOfTypeAll(typeof(Texture)).Length);
print("AudioClips " + Resources.FindObjectsOfTypeAll(typeof(AudioClip)).Length);
print("Meshes " + Resources.FindObjectsOfTypeAll(typeof(Mesh)).Length);
print("Materials " + Resources.FindObjectsOfTypeAll(typeof(Material)).Length);
print("GameObjects " + Resources.FindObjectsOfTypeAll(typeof(GameObject)).Length);
print("Components " + Resources.FindObjectsOfTypeAll(typeof(Component)).Length);
}
}
using UnityEngine;
using UnityEditor;
using System.Collections.Generic;
public class ExampleScript : MonoBehaviour
{
// This script finds all the objects in scene, excluding prefabs:
List<GameObject> GetAllObjectsInScene()
{
List<GameObject> objectsInScene = new List<GameObject>();
foreach (GameObject go in Resources.FindObjectsOfTypeAll(typeof(GameObject)) as GameObject[])
{
if (go.hideFlags == HideFlags.NotEditable || go.hideFlags == HideFlags.HideAndDontSave)
continue;
if (!EditorUtility.IsPersistent(go.transform.root.gameObject))
continue;
objectsInScene.Add(go);
}
return objectsInScene;
}
}
返回所有类型为 T
的对象的列表。
该函数可以返回任何类型的已加载的 Unity 对象,包括游戏对象、预制件、材质、网格、纹理等。此外,它还会列出内部内容,因此在处理返回的对象时要格外 小心。
与 Object.FindObjectsOfType 相反,该函数还会列出禁用的对象。
请注意,该函数的运行速度非常缓慢,不建议在每帧中使用。
using UnityEngine;
using UnityEditor;
using System.Collections.Generic;
public class ExampleScript : MonoBehaviour
{
// This script displays the number of allocated Unity objects by type.
// This is useful for finding leaks. Knowing the type of object
// (mesh, texture, sound clip, game object) that is getting leaked is
// the first step. You could then print the names of all leaked assets of that type.
void Start()
{
print("All " + Resources.FindObjectsOfTypeAll<UnityEngine.Object>().Length);
print("Textures " + Resources.FindObjectsOfTypeAll<Texture>().Length);
print("AudioClips " + Resources.FindObjectsOfTypeAll<AudioClip>().Length);
print("Meshes " + Resources.FindObjectsOfTypeAll<Mesh>().Length);
print("Materials " + Resources.FindObjectsOfTypeAll<Material>().Length);
print("GameObjects " + Resources.FindObjectsOfTypeAll<GameObject>().Length);
print("Components " + Resources.FindObjectsOfTypeAll<Component>().Length);
}
}
using UnityEngine;
using UnityEditor;
using System.Collections.Generic;
public class ExampleScript : MonoBehaviour
{
// This script finds all the objects in scene, excluding prefabs:
List<GameObject> GetAllObjectsInScene()
{
List<GameObject> objectsInScene = new List<GameObject>();
foreach (GameObject go in Resources.FindObjectsOfTypeAll(typeof(GameObject)) as GameObject[])
{
if (go.hideFlags == HideFlags.NotEditable || go.hideFlags == HideFlags.HideAndDontSave)
continue;
if (!EditorUtility.IsPersistent(go.transform.root.gameObject))
continue;
objectsInScene.Add(go);
}
return objectsInScene;
}
}