示例#1
0
        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);
        }
示例#2
0
 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
 }
示例#3
0
        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);
                }
            }
        }