logo SERENITY
Game Systems Foundation
Search Results for

    Show / Hide Table of Contents

    Class GhostAssetPathFilter

    Splits a set of AssetDatabase-enumerated paths into the ones that still exist on disk and the ones that do not — "ghost" entries the AssetDatabase still reports for a file a manual delete (outside Unity) or an interrupted import already removed. SerenityPackageExporter feeds every path it exports through this before it reaches ShippedAssetsSnapshot.json: a ghost path left in that snapshot makes TombstonePlanner.SelectTombstones treat the already-gone file as still shipped (it is absent from BOTH the previous and current snapshot, so no removal is ever detected), and SerenityObsoleteAssetCleaner then trusts the snapshot's word that a consumer's copy of that file is current. Pure: the caller supplies the existence check, so this is unit-testable without a running editor.

    Inheritance
    object
    GhostAssetPathFilter
    Inherited Members
    object.ToString()
    object.Equals(object)
    object.Equals(object, object)
    object.ReferenceEquals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    Namespace: Serenity.Editor.PackageBootstrapper
    Assembly: Serenity.PackageBootstrapper.Editor.dll
    Syntax
    public static class GhostAssetPathFilter

    Methods

    RemoveGhostPaths(IEnumerable<string>, Func<string, bool>)

    Declaration
    public static GhostAssetPathFilter.Result RemoveGhostPaths(IEnumerable<string> assetPaths, Func<string, bool> existsOnDisk)
    Parameters
    Type Name Description
    IEnumerable<string> assetPaths
    Func<string, bool> existsOnDisk
    Returns
    Type Description
    GhostAssetPathFilter.Result
    In this article
    © 2026 Serenity. All Rights Reserved