public static AssetInfo EntityToAssetInfo(IDataReader reader) { AssetUnitInfo assetUnitInfo = EditTimeAssetUtils.EntityToAssetUnitInfo(reader); AssetInfo newAssetInfo = new AssetInfo(); newAssetInfo.units = new List <AssetUnitInfo>(); newAssetInfo.units.Add(assetUnitInfo); return(newAssetInfo); }
void EnsureLocalAssetDirectory() { #region create asset directory localAUInfo = EditTimeAssetUtils.AUInfoRemoteToLocal(baseAssetUnitInfo); assetRootPath = Path.GetDirectoryName(localAUInfo.localref); if (!Directory.Exists(assetRootPath)) { Directory.CreateDirectory(assetRootPath); } if (localAssetInterface == null) { var customItfc = parent.customAssetInterfaceGiver[AssetUtils.GetPrimalType(localAUInfo)]; localAssetInterface = customItfc.PickBestElement(new StdEditTimeUnityAssetIO { assetUnitInfo = localAUInfo }); } #endregion }
void Giver <AssetInterface, AssetUnitInfo> .PickBestElement(AssetUnitInfo assetUnitInfo, Taker <AssetInterface> collector) { requestCount++; var localAUInfo = localizedAssetInfoGiver.PickBestElement(assetUnitInfo); //already localized if (localAUInfo != null) { CheckDependencyAndCollectInterface(localAUInfo, collector); } //localref is empty = it's newly generated asset else if (Utilities.IsStringEmpty(assetUnitInfo.localref)) { var generatedLocalAssetInfo = assetUnitInfo; assetUnitInfo.localref = EditTimeAssetUtils.LocalAssetRefForGenerated(assetUnitInfo); CheckDependencyAndCollectInterface(assetUnitInfo, collector, true); } //it's remote asset else { var refListener = new PrvtAssetReferenceListener { baseAssetUnitInfo = assetUnitInfo, interfaceTaker = collector, parent = this }; //someone want to controll download timing if (installListener != null) { installListener.OnInstallRemoteAsset(assetUnitInfo, new PrvtDelayedAssetRefTrigger { client = this, assetUnitInfo = assetUnitInfo, refListener = refListener }); } else { remoteAssetReferer.ReferAsset(assetUnitInfo, refListener); } } }