using System.Collections.Generic; using UnityEngine; namespace Unity.Pipeline.Config { /// /// Build-only, generated companion to : holds the absolute, /// machine-specific code-reload roots baked in by PipelineRuntimeBuildProcessor. Created fresh /// before each build and deleted immediately after — never checked into source control, since /// its contents are meaningless outside the machine that produced them. Absent outside of a /// real build (e.g. Editor Play Mode without ever having built) is not an error; /// RuntimePipelineBootstrap simply has no roots to allow in that case. /// public class RuntimePipelineBuildInfo : ScriptableObject { /// Resource name this asset must be saved under inside a Resources folder for to find it. public const string ResourceName = "RuntimePipelineBuildInfo"; /// Absolute paths of the project's Assets folder and every loaded package, baked in at build time. public List allowedReloadRoots = new List(); /// Public half of the project's push-signing key (from Library/Pipeline/signing.key). /// A player build rejects every code-reload push not signed by the matching private key; empty /// means reject all pushes (strict policy — there is deliberately no unsigned fallback). public string pushPublicKey = ""; /// Load the asset from Resources, or null if this is not a real build. /// The build-time-baked info, or null if this is not a real build. public static RuntimePipelineBuildInfo Load() => Resources.Load(ResourceName); } }