130 lines
5 KiB
C#
130 lines
5 KiB
C#
using UnityEditor.Build.Content;
|
|
using UnityEditor.Build.Player;
|
|
using UnityEngine;
|
|
|
|
namespace UnityEditor.Build.Pipeline.Interfaces
|
|
{
|
|
#if UNITY_2018_3_OR_NEWER
|
|
using BuildCompression = UnityEngine.BuildCompression;
|
|
#else
|
|
using BuildCompression = UnityEditor.Build.Content.BuildCompression;
|
|
#endif
|
|
|
|
/// <summary>
|
|
/// Base interface for the parameters container
|
|
/// </summary>
|
|
public interface IBuildParameters : IContextObject
|
|
{
|
|
/// <summary>
|
|
/// Target build platform. <seealso cref="BuildTarget"/>
|
|
/// </summary>
|
|
BuildTarget Target { get; set; }
|
|
|
|
/// <summary>
|
|
/// Target build platform group. <seealso cref="BuildTargetGroup"/>
|
|
/// </summary>
|
|
BuildTargetGroup Group { get; set; }
|
|
|
|
/// <summary>
|
|
/// The set of build flags to use for building content.
|
|
/// </summary>
|
|
ContentBuildFlags ContentBuildFlags { get; set; }
|
|
|
|
/// <summary>
|
|
/// Scripting type information to use when building content.
|
|
/// Setting this to a previously cached value will prevent the default script compiling step.
|
|
/// </summary>
|
|
TypeDB ScriptInfo { get; set; }
|
|
|
|
/// <summary>
|
|
/// Script compilation options to use for the script compiling step.
|
|
/// </summary>
|
|
ScriptCompilationOptions ScriptOptions { get; set; }
|
|
|
|
/// <summary>
|
|
/// Temporary location to be used for artifacts generated during the build but are not part of the final output.
|
|
/// </summary>
|
|
string TempOutputFolder { get; set; }
|
|
|
|
/// <summary>
|
|
/// Location to be used for compiled scripts generated during the build.
|
|
/// </summary>
|
|
string ScriptOutputFolder { get; set; }
|
|
|
|
/// <summary>
|
|
/// Enables the use of the build cache if set to true.
|
|
/// </summary>
|
|
bool UseCache { get; set; }
|
|
|
|
/// <summary>
|
|
/// Enables and specifies the cache server to use.
|
|
/// </summary>
|
|
string CacheServerHost { get; set; }
|
|
|
|
/// <summary>
|
|
/// The port for the cache server to use
|
|
/// </summary>
|
|
int CacheServerPort { get; set; }
|
|
|
|
/// <summary>
|
|
/// Writes out a link.xml file to the output folder to use with Unity managed code stripping.
|
|
/// </summary>
|
|
bool WriteLinkXML { get; set; }
|
|
|
|
#if NONRECURSIVE_DEPENDENCY_DATA
|
|
/// <summary>
|
|
/// Calculates and build asset bundles using Non-Recursive Dependency calculation methods.
|
|
/// This approach helps reduce asset bundle rebuilds and runtime memory consumption.
|
|
/// </summary>
|
|
bool NonRecursiveDependencies { get; set; }
|
|
#endif
|
|
|
|
/// <summary>
|
|
/// Constructs and returns the BuildSettings struct to use for content building.
|
|
/// </summary>
|
|
/// <returns>Returns the BuildSettings struct to use for content building.</returns>
|
|
BuildSettings GetContentBuildSettings();
|
|
|
|
/// <summary>
|
|
/// Returns the output folder to use for the specified identifier.
|
|
/// </summary>
|
|
/// <param name="identifier">Identifier used to identify which output folder to use.</param>
|
|
/// <returns>Returns the output folder to use for the specified identifier.</returns>
|
|
string GetOutputFilePathForIdentifier(string identifier);
|
|
|
|
/// <summary>
|
|
/// Constructs and returns the BuildCompression struct to use for the specified identifier.
|
|
/// </summary>
|
|
/// <param name="identifier">Identifier used to construct the BuildCompression struct.</param>
|
|
/// <returns>Returns the BuildCompression struct to use for a specific identifier.</returns>
|
|
BuildCompression GetCompressionForIdentifier(string identifier);
|
|
|
|
/// <summary>
|
|
/// Constructs and returns the ScriptCompilationSettings struct to use for script compiling.
|
|
/// </summary>
|
|
/// <returns>Returns the ScriptCompilationSettings struct to use for script compiling.</returns>
|
|
ScriptCompilationSettings GetScriptCompilationSettings();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Base interface for the parameters container for building bundles.
|
|
/// </summary>
|
|
public interface IBundleBuildParameters : IBuildParameters
|
|
{
|
|
/// <summary>
|
|
/// Append the hash of the AssetBundle content to the file name.
|
|
/// </summary>
|
|
bool AppendHash { get; set; }
|
|
|
|
/// <summary>
|
|
/// Packs assets in bundles contiguously based on the ordering of the source asset which results in improved asset loading times.
|
|
/// </summary>
|
|
bool ContiguousBundles { get; set; }
|
|
|
|
/// <summary>
|
|
/// Assume sub Assets have no visible asset representations (are not visible in the Project view) which results in improved build times.
|
|
/// Sub Assets in the built bundles cannot be accessed by AssetBundle.LoadAsset<T> or AssetBundle.LoadAllAssets<T>.
|
|
/// </summary>
|
|
bool DisableVisibleSubAssetRepresentations { get; set; }
|
|
}
|
|
}
|