protected T FromID <T>(long id, T fallback = null) where T : UnityObject { if (m_assetDB.IsNullID(id)) { return(default(T)); } T value = m_assetDB.FromID <T>(id); if (value == default(T)) { return(fallback); } return(value); }
private IEnumerator CreatePreviewForLoadedResources(ProjectItem[] items) { if (m_resourcePreview == null) { yield break; } for (int i = 0; i < items.Length; ++i) { ProjectItem projectItem = items[i]; if (projectItem is AssetItem) { AssetItem assetItem = (AssetItem)projectItem; UnityObject obj; if (m_project.IsStatic(projectItem)) { if (!m_staticReferencesMapping.PersistentIDtoObj.TryGetValue(unchecked ((int)assetItem.ItemID), out obj)) { obj = null; } } else { if (assetItem.Preview == null && m_assetDB != null) { obj = m_assetDB.FromID <UnityObject>(assetItem.ItemID); } else { obj = null; } } if (obj != null) { assetItem.Preview = new Preview { ItemID = assetItem.ItemID, PreviewData = m_resourcePreview.CreatePreviewData(obj) }; } yield return(new WaitForSeconds(0.01f)); } } }
protected T FromID <T>(long id) where T : UnityObject { return(m_assetDB.FromID <T>(id)); }
private void OnLoadCompleted(AssetItem rootItem, AssetItem[] assetItems, PersistentObject[] persistentObjects, ProjectEventHandler <UnityObject> callback) { for (int i = 0; i < assetItems.Length; ++i) { AssetItem assetItem = assetItems[i]; if (!m_assetDB.IsMapped(assetItem.ItemID)) { if (m_assetDB.IsStaticResourceID(assetItem.ItemID)) { int ordinal = m_assetDB.ToOrdinal(assetItem.ItemID); if (m_assetDB.IsLibraryRefLoaded(ordinal)) { m_assetDB.RemoveLibrary(ordinal); } if (!m_assetDB.IsLibraryLoaded(ordinal)) { AssetLibraryReferenceInfo reference = m_projectInfo.References.FirstOrDefault(r => r.Ordinal == ordinal); if (reference != null) { m_assetDB.LoadLibrary(reference.AssetLibrary, reference.Ordinal); } } } else if (m_assetDB.IsDynamicResourceID(assetItem.ItemID)) { PersistentObject persistentObject = persistentObjects[i]; if (persistentObject != null) { if (persistentObject is PersistentPrefab) { PersistentPrefab persistentPrefab = (PersistentPrefab)persistentObject; Dictionary <int, UnityObject> idToObj = new Dictionary <int, UnityObject>(); List <GameObject> createdGameObjects = new List <GameObject>(); persistentPrefab.CreateGameObjectWithComponents(m_typeMap, persistentPrefab.Descriptors[0], idToObj, createdGameObjects); m_assetDB.RegisterDynamicResources(idToObj); for (int j = 0; j < createdGameObjects.Count; ++j) { GameObject createdGO = createdGameObjects[i]; createdGO.transform.SetParent(createdGO.transform, false); m_dynamicResources.Add(unchecked ((int)m_assetDB.ToID(createdGO)), createdGO); } } else { Type type = m_typeMap.ToType(assetItem.TypeGuid); UnityObject instance = m_factory.CreateInstance(type); m_assetDB.RegisterDynamicResource(unchecked ((int)assetItem.ItemID), instance); m_dynamicResources.Add(unchecked ((int)assetItem.ItemID), instance); } } } } } for (int i = 0; i < persistentObjects.Length; ++i) { PersistentObject persistentObject = persistentObjects[i]; if (persistentObject != null) { if (m_assetDB.IsSceneID(assetItems[i].ItemID)) { persistentObject.WriteTo(SceneManager.GetActiveScene()); } else { UnityObject obj = m_assetDB.FromID <UnityObject>(assetItems[i].ItemID); Debug.Assert(obj != null); if (obj != null) { persistentObject.WriteTo(obj); } } } } UnityObject result = m_assetDB.FromID <UnityObject>(rootItem.ItemID); callback(new Error(Error.OK), result); }