Newer
Older
CGTrack / Assets / Oculus / VR / Scripts / OVRResources.cs
using System.Collections.Generic;
using UnityEngine;

public class OVRResources : MonoBehaviour
{
	private static AssetBundle resourceBundle;
	private static List<string> assetNames;

	public static UnityEngine.Object Load(string path)
	{
		if (Debug.isDebugBuild)
		{
			if(resourceBundle == null)
			{
				Debug.Log("[OVRResources] Resource bundle was not loaded successfully");
				return null;
			}

			var result = assetNames.Find(s => s.Contains(path.ToLower()));
			return resourceBundle.LoadAsset(result);
		}
		return Resources.Load(path);
	}
	public static T Load<T>(string path) where T : UnityEngine.Object
	{
		if (Debug.isDebugBuild)
		{
			if (resourceBundle == null)
			{
				Debug.Log("[OVRResources] Resource bundle was not loaded successfully");
				return null;
			}

			var result = assetNames.Find(s => s.Contains(path.ToLower()));
			return resourceBundle.LoadAsset<T>(result);
		}
		return Resources.Load<T>(path);
	}

	public static void SetResourceBundle(AssetBundle bundle)
	{
		resourceBundle = bundle;
		assetNames = new List<string>();
		assetNames.AddRange(resourceBundle.GetAllAssetNames());
	}
}