/// <summary>
        /// Gets and loads the required asset bundle
        /// </summary>
        /// <param name="assetCatRoot"></param>
        /// <param name="assetName">Bundle name and asset name are the same</param>
        /// <param name="forceLoadFromStreamingAssets">
        /// Forces loading from StreamingAssets folder. Useful for when including assets
        /// with the build
        /// </param>
        /// <param name="progress"></param>
        /// <param name="cancellationToken"></param>
        /// <returns> Observable </returns>
        public async UniTask <T> LoadAsset <T>(AssetCategoryRoot assetCatRoot, string assetName, bool forceLoadFromStreamingAssets = false,
                                               IProgress <float> progress = null, CancellationToken cancellationToken = default(CancellationToken)) where T : UnityEngine.Object
        {
            var bundleNeeded = new BundleRequest(assetCatRoot,
                                                 assetName, assetName);

            return(await LoadAsset <T>(bundleNeeded, forceLoadFromStreamingAssets, progress, cancellationToken));
        }
 public BundleRequest(AssetCategoryRoot cat, AssetOptions opts, string bundle, string asset)
 {
     assetCategory = cat;
     bundleName    = bundle;
     assetName     = asset;
 }
 public BundleRequest(AssetCategoryRoot cat, string bundle, string asset)
 {
     AssetCategory = cat;
     BundleName    = bundle.ToLower();
     AssetName     = asset.ToLower();
 }