| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 | using UnityEditor;using System;namespace AssetBundleBrowser.AssetBundleDataSource{    /// <summary>    /// Build Info struct used by ABDataSource to pass needed build data around.    /// </summary>    public partial class ABBuildInfo    {        /// <summary>        /// Directory to place build result        /// </summary>        public string outputDirectory        {            get { return m_outputDirectory; }            set { m_outputDirectory = value; }        }        private string m_outputDirectory;        /// <summary>        /// Standard asset bundle build options.        /// </summary>        public BuildAssetBundleOptions options        {            get { return m_options; }            set { m_options = value; }        }        private BuildAssetBundleOptions m_options;        /// <summary>        /// Target platform for build.        /// </summary>        public BuildTarget buildTarget        {            get { return m_buildTarget; }            set { m_buildTarget = value; }        }        private BuildTarget m_buildTarget;        /// <summary>        /// Callback for build event.        /// </summary>        public Action<string> onBuild        {            get { return m_onBuild; }            set { m_onBuild = value; }        }        private Action<string> m_onBuild;    }    /// <summary>    /// Interface class used by browser. It is expected to contain all information needed to display predicted bundle layout.    ///  Any class deriving from this interface AND imlementing CreateDataSources() will be picked up by the browser automatically    ///  and displayed in an in-tool dropdown.  By default, that dropdown is hidden if the browser detects no external data sources.    ///  To turn it on, right click on tab header "AssetBUndles" and enable "Custom Sources"    ///      /// Must implement CreateDataSources() to be picked up by the browser.    ///   public static List<ABDataSource> CreateDataSources();    ///     /// </summary>    public partial interface ABDataSource    {        //// all derived classes must implement the following interface in order to be picked up by the browser.        //public static List<ABDataSource> CreateDataSources();        /// <summary>        /// Name of DataSource. Displayed in menu as "Name (ProvidorName)"        /// </summary>        string Name { get; }        /// <summary>        /// Name of provider for DataSource. Displayed in menu as "Name (ProvidorName)"        /// </summary>        string ProviderName { get; }        /// <summary>        /// Array of paths in bundle.        /// </summary>        string[] GetAssetPathsFromAssetBundle (string assetBundleName);        /// <summary>        /// Name of bundle explicitly associated with asset at path.          /// </summary>        string GetAssetBundleName(string assetPath);        /// <summary>        /// Name of bundle associated with asset at path.          ///  The difference between this and GetAssetBundleName() is for assets unassigned to a bundle, but        ///  residing inside a folder that is assigned to a bundle.  Those assets will implicilty associate        ///  with the bundle associated with the parent folder.        /// </summary>        string GetImplicitAssetBundleName(string assetPath);        /// <summary>        /// Array of asset bundle names in project        /// </summary>        string[] GetAllAssetBundleNames();        /// <summary>        /// If this data source is read only.         ///  If this returns true, much of the Browsers's interface will be diabled (drag&drop, etc.)        /// </summary>        bool IsReadOnly();        /// <summary>        /// Sets the asset bundle name (and variant) on a given asset        /// </summary>        void SetAssetBundleNameAndVariant (string assetPath, string bundleName, string variantName);        /// <summary>        /// Clears out any asset bundle names that do not have assets associated with them.        /// </summary>        void RemoveUnusedAssetBundleNames();        /// <summary>        /// Signals if this data source can have build target set by tool        /// </summary>        bool CanSpecifyBuildTarget { get; }        /// <summary>        /// Signals if this data source can have output directory set by tool        /// </summary>        bool CanSpecifyBuildOutputDirectory { get; }        /// <summary>        /// Signals if this data source can have build options set by tool        /// </summary>        bool CanSpecifyBuildOptions { get; }        /// <summary>        /// Executes data source's implementation of asset bundle building.        ///   Called by "build" button in build tab of tool.        /// </summary>        bool BuildAssetBundles (ABBuildInfo info);    }}
 |