private void OnSceneTemplateAssetModified(SceneTemplateAsset asset) { m_SceneTemplateInfos = SceneTemplateUtils.GetSceneTemplateInfos(); var lastSelectedTemplateIndex = m_SceneTemplateInfos.IndexOf(m_LastSelectedTemplate); if (lastSelectedTemplateIndex == -1) { SetLastSelectedTemplate(GetDefaultSceneTemplateInfo()); } else { SetLastSelectedTemplate(m_SceneTemplateInfos[lastSelectedTemplateIndex]); } RefreshTemplateGridView(); UpdateTemplateDescriptionUI(m_LastSelectedTemplate); }
private void SetupData() { m_SceneTemplateInfos = SceneTemplateUtils.GetSceneTemplateInfos(); LoadSessionPreferences(); m_DefaultThumbnail = EditorGUIUtility.IconContent("d_SceneAsset Icon").image as Texture2D; foreach (var builtinTemplateInfo in SceneTemplateUtils.builtinTemplateInfos) { if (builtinTemplateInfo.thumbnail == null) { builtinTemplateInfo.thumbnail = EditorResources.Load <Texture2D>(builtinTemplateInfo.thumbnailPath); Assert.IsNotNull(builtinTemplateInfo.thumbnail); } if (builtinTemplateInfo.badge == null && !string.IsNullOrEmpty(builtinTemplateInfo.badgePath)) { builtinTemplateInfo.badge = EditorResources.Load <Texture2D>(builtinTemplateInfo.badgePath); Assert.IsNotNull(builtinTemplateInfo.badge); } } }
static void UpdateSceneTemplatesOnSceneSave(Scene scene) { var infos = SceneTemplateUtils.GetSceneTemplateInfos(); foreach (var sceneTemplateInfo in infos) { if (sceneTemplateInfo.IsInMemoryScene || sceneTemplateInfo.isReadonly || sceneTemplateInfo.sceneTemplate == null) { continue; } var scenePath = sceneTemplateInfo.sceneTemplate.GetTemplateScenePath(); if (string.IsNullOrEmpty(scenePath)) { continue; } if (!scene.path.Equals(scenePath, StringComparison.Ordinal)) { continue; } sceneTemplateInfo.sceneTemplate.UpdateDependencies(); } }
static void InstantiateDefaultScene(CommandExecuteContext context) { if (SceneTemplatePreferences.Get().newDefaultSceneOverride == SceneTemplatePreferences.NewDefaultSceneOverride.DefaultBuiltin) { EditorSceneManager.NewScene(NewSceneSetup.DefaultGameObjects, NewSceneMode.Single); return; } var templateInfos = SceneTemplateUtils.GetSceneTemplateInfos(); var templateInfo = templateInfos.FirstOrDefault(info => info.isPinned && !info.IsInMemoryScene); if (templateInfo == null) { templateInfo = templateInfos.FirstOrDefault(info => !info.isPinned && !info.IsInMemoryScene); } if (templateInfo != null && templateInfo.sceneTemplate) { Instantiate(templateInfo.sceneTemplate, false); return; } EditorSceneManager.NewScene(NewSceneSetup.DefaultGameObjects, NewSceneMode.Single); }