private bool CheckAsset(string assetName, out ResourceInfo?resourceInfo, out string[] dependencyAssetNames) { resourceInfo = null; dependencyAssetNames = null; if (string.IsNullOrEmpty(assetName)) { return(false); } AssetInfo?assetInfo = m_ResourceManager.GetAssetInfo(assetName); if (!assetInfo.HasValue) { return(false); } resourceInfo = m_ResourceManager.GetResourceInfo(assetInfo.Value.ResourceName); if (!resourceInfo.HasValue) { return(false); } dependencyAssetNames = assetInfo.Value.GetDependencyAssetNames(); return(true); }
public void LoadWeapon(AssetInfo asset) { #if !UnitTest if (Logger.IsDebugEnabled) { Logger.DebugFormat("LoadWeapon {0}", asset); } #endif _weaponInfo = asset; _weaponModelLoader.LoadAsset(asset); }
public void Unload(AssetInfo asset) { #if !UnitTest if (Logger.IsDebugEnabled) { Logger.DebugFormat("Unload {0}", asset); } #endif if (_weaponInfo == asset) { _weaponInfo = null; _weaponGo = null; } else { var location = WeaponPartLocation.EndOfTheWorld; foreach (var pair in _partAssetDic) { if (pair.Value == asset) { location = pair.Key; } } if (location != WeaponPartLocation.EndOfTheWorld) { if (_partGoDic.ContainsKey(location)) { _partGoDic.Remove(location); } if (_waitPartGoDic.ContainsKey(location)) { _waitPartGoDic.Remove(location); } if (_partAssetDic.ContainsKey(location)) { _partAssetDic.Remove(location); } else { #if !UnitTest Logger.ErrorFormat("asset with location {0} doesn't exist in part asset dic ", location); #endif } if (location.Equals(WeaponPartLocation.Scope)) { _weaponModelAssemblyController.RefreshRemovableAttachment(_weaponGo as GameObject, false); } } } _weaponModelLoader.UnloadAsset(asset); }
/// <summary> /// 检查资源 /// </summary> /// <param name="assetName"></param> /// <param name="resourceInfo"></param> /// <param name="dependencyAssetNames"></param> /// <param name="scatteredDependencyAssetNames"></param> /// <param name="resourceChildName">aaa/bb/cc; 资产(??资源)的名字 = cc</param> /// <returns></returns> private bool CheckAsset(string assetName, out ResourceInfo?resourceInfo, out string[] dependencyAssetNames, out string[] scatteredDependencyAssetNames, out string resourceChildName) { resourceInfo = null; dependencyAssetNames = null; scatteredDependencyAssetNames = null; resourceChildName = null; if (string.IsNullOrEmpty(assetName)) { return(false); } AssetInfo?assetInfo = m_ResourceManager.GetAssetInfo(assetName); if (!assetInfo.HasValue) { return(false); } resourceInfo = m_ResourceManager.GetResourceInfo(assetInfo.Value.ResourceName); if (!resourceInfo.HasValue) { return(false); } //最后一位不能为“/” int childNamePosition = assetName.LastIndexOf('/'); if (childNamePosition + 1 >= assetName.Length) { return(false); } resourceChildName = assetName.Substring(childNamePosition + 1); AssetDependencyInfo?assetDependencyInfo = m_ResourceManager.GetAssetDependencyInfo(assetName); if (!assetDependencyInfo.HasValue) { return(true); } dependencyAssetNames = assetDependencyInfo.Value.GetDependencyAssetNames(); scatteredDependencyAssetNames = assetDependencyInfo.Value.GetScatteredDependencyAssetNames(); return(true); }
private bool CheckAsset(string assetName, out ResourceInfo?resourceInfo, out string[] dependencyAssetNames, out string resourceChildName) { resourceInfo = null; dependencyAssetNames = null; resourceChildName = null; AssetInfo?assetInfo = m_ResourceManager.GetAssetInfo(assetName); if (!assetInfo.HasValue) { return(false); } resourceInfo = m_ResourceManager.GetResourceInfo(assetInfo.Value.ResourceName); AssetDependencyInfo?assetDependencyInfo = m_ResourceManager.GetAssetDependencyInfo(assetName); dependencyAssetNames = assetDependencyInfo.Value.GetDependencyAssetNames(); return(true); }
private void ProcessAssetDependencyInfo(Dictionary <string, string[]> dependencyAssetNamesCollection) { foreach (KeyValuePair <string, string[]> dependencyAssetNamesCollectionItem in dependencyAssetNamesCollection) { List <string> dependencyAssetNames = new List <string>(); List <string> scateredDependencyAssetNames = new List <string>(); foreach (string dependencyAssetName in dependencyAssetNamesCollectionItem.Value) { AssetInfo?ProcessAssetInfo = m_ResourceManager.GetAssetInfo(dependencyAssetName); if (assetInfo.HasValue) { dependencyAssetNames.Add(dependencyAssetName); } else { scateredDependencyAssetNames.Add(dependencyAssetName); } } m_ResourceManager.m_AssetDependencyInfos.Add(dependencyAssetNamesCollectionItem.Key, new AssetDependencyInfo(dependencyAssetNamesCollectionItem.Key, dependencyAssetNames.ToArray())); } }