public UAsset GetAsset(string assetPath, Type type, EAssetHints hints) { WeakReference assetRef; UAsset asset = null; if (_assets.TryGetValue(assetPath, out assetRef) && assetRef.IsAlive) { asset = assetRef.Target as UAsset; if (asset != null) { ResourceManager.GetAnalyzer()?.OnAssetAccess(assetPath); return(asset); } } ResourceManager.GetAnalyzer()?.OnAssetOpen(assetPath); asset = new UBuiltinAsset(assetPath, type, hints); _assets[assetPath] = new WeakReference(asset); return(asset); }