WuhuIslandTesting/Library/PackageCache/com.unity.scriptablebuildpipeline@1.21.5/Editor/Interfaces/IWriteOperation.cs

58 lines
2.3 KiB
C#
Raw Permalink Normal View History

2025-01-07 02:06:59 +01:00
using UnityEditor.Build.Content;
using UnityEditor.Build.Pipeline.Utilities;
using UnityEngine;
namespace UnityEditor.Build.Pipeline.Interfaces
{
/// <summary>
/// Base interface for wrapping the different low level WriteSerializeFile API around a common high level Write function
/// </summary>
public interface IWriteOperation
{
/// <summary>
/// The specific write command containing the details about what to write to disk.
/// <seealso cref="WriteCommand"/>
/// </summary>
WriteCommand Command { get; set; }
/// <summary>
/// The specific usage data for objects in the write command.
/// <seealso cref="BuildUsageTagSet"/>
/// </summary>
BuildUsageTagSet UsageSet { get; set; }
/// <summary>
/// The specific reference data for objects in the write command.
/// <seealso cref="BuildReferenceMap"/>
/// </summary>
BuildReferenceMap ReferenceMap { get; set; }
/// <summary>
/// The hash that represents the unique set of input dependencies for caching this write command.
/// </summary>
Hash128 DependencyHash { get; set; }
/// <summary>
/// Write function that wraps the low level WriteSerializeFile APIs that takes the common minimum set of parameters.
/// </summary>
/// <param name="outputFolder">The location to write data to disk.</param>
/// <param name="settings">The build settings to use for writing data.</param>
/// <param name="globalUsage">The global usage to use for writing data.</param>
/// <returns>The write results struct containing details about what was written to disk</returns>
WriteResult Write(string outputFolder, BuildSettings settings, BuildUsageTagGlobal globalUsage);
/// <summary>
/// Optimized hash function for use with the Build Cache system.
/// </summary>
/// <returns>Unique hash for the contents of this write operation.</returns>
Hash128 GetHash128();
/// <summary>
/// Optimized hash function for use with the Build Cache system.
/// </summary>
/// <param name="log">The build log.</param>
/// <returns>Unique hash for the contents of this write operation.</returns>
Hash128 GetHash128(IBuildLogger log);
}
}