Описание
Наследуйте от этого базового класса, чтобы обеспечить альтернативные реализации поведения C# определенных методов Resources.
Приведенный пример записывает время, затраченное на обработку более медленных API ресурсов, в журнал проигрывателя или редактора.
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;
}
}
Статические Свойства
overrideAPI | Конкретный экземпляр ResourcesAPI, используемый для обработки переопределенных методов Resources. |
Защищенные методы
FindObjectsOfTypeAll | Переопределение для настройки поведения функции Resources.FindObjectsOfTypeAll. |
FindShaderByName | Переопределение для настройки поведения функции Shader.Find. |
Load | Переопределение для настройки поведения функции Resources.Load. |
LoadAll | Переопределение для настройки поведения функции Resources.LoadAll. |
LoadAsync | Переопределение для настройки поведения функции Resources.LoadAsync. |
UnloadAsset | Переопределение для настройки поведения функции Resources.Unload. |