using UnityEngine;
namespace AssetBundleBrowser
{
///
/// This class maintains a record of a loaded asset bundle, allowing us
/// to associate the full path of an asset bundle with the actual bundle,
/// so that we can:
///
/// 1. distinguish between bundle variants, which, when loaded
/// resolve to the same name.
///
/// 2. Differentiate between the same asset bundles built for different platforms.
///
/// ex:
///
/// Two asset bundle variants:
///
/// - variant one: mycylinder.one
/// - variant two: mycylinder.two
///
/// Will Resolve to "mycylinder" when loaded.
///
/// Likewise,
///
/// - iOS: AssetBundles/iOS/myBundle
/// - Android: AssetBundle/Android/myBundle
///
/// Will both resolve to "mybundle" when loaded.
///
///
internal class AssetBundleRecord
{
///
/// Full path of the asset bundle.
///
internal string path { get; private set; }
///
/// Reference to the loaded asset bundle associated with the path.
///
internal AssetBundle bundle { get; private set; }
internal AssetBundleRecord(string path, AssetBundle bundle)
{
if (string.IsNullOrEmpty(path) ||
null == bundle)
{
string msg = string.Format("AssetBundleRecord encountered invalid parameters path={0}, bundle={1}",
path,
bundle);
throw new System.ArgumentException(msg);
}
this.path = path;
this.bundle = bundle;
}
}
}