public void GetAssetItemsToLoad(AssetItem assetItem, HashSet <AssetItem> loadHs) { Type type = m_typeMap.ToType(assetItem.TypeGuid); if (type == null) { return; } Type persistentType = m_typeMap.ToPersistentType(type); if (persistentType == null) { return; } if (!loadHs.Contains(assetItem) && !m_assetDB.IsMapped(assetItem.ItemID)) { loadHs.Add(assetItem); if (assetItem.Dependencies != null) { for (int i = 0; i < assetItem.Dependencies.Length; ++i) { long dep = assetItem.Dependencies[i]; AssetItem dependencyAssetItem; if (m_idToAssetItem.TryGetValue(dep, out dependencyAssetItem)) { GetAssetItemsToLoad(assetItem, loadHs); } else { Debug.LogWarningFormat("AssetItem with ItemID {0} does not exists", dep); } } } } }