public void HotReload(HotReloadOperation inAction) { if (string.IsNullOrEmpty(m_ResourcePath)) { return; } if (m_OnReload != null) { m_OnReload(m_ResourcePath, inAction); } switch (inAction) { case HotReloadOperation.Deleted: { Dispose(); break; } case HotReloadOperation.Modified: { m_LastEditTime = IOHelper.GetFileModifyTimestamp(m_ResourcePath); break; } } }
/// <summary> /// Attempts to reload all assets. /// </summary> public int TryReloadAll(ICollection <HotReloadResult> outResults = null, bool inbForce = false) { int reloadCount = 0; HashSet <IHotReloadable> deletedAssets = new HashSet <IHotReloadable>(); foreach (var asset in m_AllReloadables) { HotReloadOperation op = TryReload(asset, outResults, inbForce); switch (op) { case HotReloadOperation.Deleted: deletedAssets.Add(asset); ++reloadCount; break; case HotReloadOperation.Modified: ++reloadCount; break; } } foreach (var deleted in deletedAssets) { Remove(deleted); } return(reloadCount); }
public void HotReload(HotReloadOperation inOperation) { if (m_Asset.IsReferenceNull()) { return; } if (m_OnReload != null) { m_OnReload.Invoke(m_Asset, m_QueuedRemapArgs, inOperation); } m_QueuedRemapArgs = default(HotReloadAssetRemapArgs <T>); switch (inOperation) { case HotReloadOperation.Deleted: { Dispose(); break; } case HotReloadOperation.Modified: { m_LastEditTime = IOHelper.GetAssetModifyTimestamp(m_Asset); break; } } }
public HotReloadResult(IHotReloadable inReloadable, HotReloadOperation inOperation) { if (inReloadable != null) { ObjectId = inReloadable.Id; ObjectTag = inReloadable.Tag; } else { ObjectId = StringHash32.Null; ObjectTag = StringHash32.Null; } Operation = inOperation; }
private HotReloadOperation TryReload(IHotReloadable inAsset, ICollection <HotReloadResult> outResults, bool inbForce) { HotReloadOperation operation = inAsset.NeedsReload(); if (inbForce && operation == HotReloadOperation.Unaffected) { operation = HotReloadOperation.Modified; } if (operation != HotReloadOperation.Unaffected) { if (outResults != null) { HotReloadResult result = new HotReloadResult(inAsset, operation); outResults.Add(result); } inAsset.HotReload(operation); } return(operation); }
public void HotReload(HotReloadOperation inAction) { if (m_Provider != null) { return; } m_Provider.TryGetData(out m_LastKnownData); if (m_OnReload != null) { m_OnReload(m_LastKnownData, inAction); } switch (inAction) { case HotReloadOperation.Deleted: { Dispose(); break; } } }
/// <summary> /// Attempts to reload assets of a specific tag. /// </summary> public int TryReloadTag(StringHash32 inTag, ICollection <HotReloadResult> outResults = null, bool inbForce = false) { HashSet <IHotReloadable> byTag; if (!m_ReloadablesByTag.TryGetValue(inTag, out byTag) || byTag.Count == 0) { return(0); } int reloadCount = 0; HashSet <IHotReloadable> deletedAssets = new HashSet <IHotReloadable>(); foreach (var asset in byTag) { HotReloadOperation op = TryReload(asset, outResults, inbForce); switch (op) { case HotReloadOperation.Deleted: deletedAssets.Add(asset); ++reloadCount; break; case HotReloadOperation.Modified: ++reloadCount; break; } } foreach (var deleted in deletedAssets) { byTag.Remove(deleted); m_AllReloadables.Remove(deleted); } return(reloadCount); }
public void HotReload(HotReloadOperation inOperation) { }
public HotReloadResult(StringHash32 inObjectId, StringHash32 inObjectTag, HotReloadOperation inOperation) { ObjectId = inObjectId; ObjectTag = inObjectTag; Operation = inOperation; }