Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


ResourcesAPI

Derive from this base class to provide alternative implementations to the C# behavior of specific Resources methods.
Read time 1 minuteLast updated 5 days ago

Definition

  • Type: Class
  • Namespace: UnityEngine
  • Assembly: UnityEngine.CoreModule
public class ResourcesAPI

Remarks

The example provided logs the time taken to handle slower Resources APIs to the player or editor log.

Examples

using System;using System.Diagnostics;using UnityEngine;using Object = UnityEngine.Object;using Debug = UnityEngine.Debug;public class ResourcesPerformanceLogger : ResourcesAPI{ [RuntimeInitializeOnLoadMethod] static void OnRuntimeMethodLoad() { ResourcesAPI.overrideAPI = new ResourcesPerformanceLogger(); } protected override Object[] FindObjectsOfTypeAll(Type systemTypeInstance) { Stopwatch timer = new Stopwatch(); timer.Start(); Object[] results = base.FindObjectsOfTypeAll(systemTypeInstance); timer.Stop(); Debug.Log($"FindObjectsOfTypeAll({systemTypeInstance}) Time: {timer.Elapsed}"); return results; } protected override Shader FindShaderByName(string name) { Stopwatch timer = new Stopwatch(); timer.Start(); Shader result = base.FindShaderByName(name); timer.Stop(); Debug.Log($"FindShaderByName({name}) Time: {timer.Elapsed}"); return result; } protected override Object[] LoadAll(string path, Type systemTypeInstance) { Stopwatch timer = new Stopwatch(); timer.Start(); Object[] results = base.LoadAll(path, systemTypeInstance); timer.Stop(); Debug.Log($"LoadAll({path}, {systemTypeInstance}) Time: {timer.Elapsed}"); return results; }}

Constructors

Constructor

Description

ResourcesAPI()Constructor only to be used by deriving classes. Assign to Api to override Resources class methods.

Static Properties

Property

Description

overrideAPIThe specific ResourcesAPI instance to use to handle overridden Resources methods.

Methods

Method

Description

FindObjectsOfTypeAllOverride for customizing the behavior of the Resources.FindObjectsOfTypeAll function.
FindShaderByNameOverride for customizing the behavior of the Shader.Find function.
LoadOverride for customizing the behavior of the Resources.Load function.
LoadAllOverride for customizing the behavior of the Resources.LoadAll function.
LoadAsyncOverride for customizing the behavior of the Resources.LoadAsync function.
UnloadAssetOverride for customizing the behavior of the Unload function.