private void UpdateTemplateDescriptionUI(SceneTemplateInfo newSceneTemplateInfo) { // Text info var sceneTemplateTitleLabel = rootVisualElement.Q <Label>(k_SceneTemplateTitleLabelName); if (sceneTemplateTitleLabel != null && newSceneTemplateInfo != null) { sceneTemplateTitleLabel.text = newSceneTemplateInfo.name; } var sceneTemplatePathLabel = rootVisualElement.Q <Label>(k_SceneTemplatePathName); var sceneTemplatePathSection = rootVisualElement.Q(k_SceneTemplatePathSection); if (sceneTemplatePathLabel != null && newSceneTemplateInfo != null && sceneTemplatePathSection != null) { sceneTemplatePathLabel.text = newSceneTemplateInfo.assetPath; sceneTemplatePathSection.visible = !string.IsNullOrEmpty(newSceneTemplateInfo.assetPath); } var sceneTemplateDescriptionLabel = rootVisualElement.Q <Label>(k_SceneTemplateDescriptionName); var sceneTemplateDescriptionSection = rootVisualElement.Q(k_SceneTemplateDescriptionSection); if (sceneTemplateDescriptionLabel != null && newSceneTemplateInfo != null && sceneTemplateDescriptionSection != null) { sceneTemplateDescriptionLabel.text = newSceneTemplateInfo.description; sceneTemplateDescriptionSection.visible = !string.IsNullOrEmpty(newSceneTemplateInfo.description); } // Thumbnail m_PreviewArea?.UpdatePreview(newSceneTemplateInfo?.thumbnail, newSceneTemplateInfo?.badge); m_PreviewArea?.UpdatePreviewAreaSize(); }
private void LoadSessionPreferences() { var lastTemplateAssetPath = EditorPrefs.GetString(GetKeyName(nameof(m_LastSelectedTemplate)), null); if (!string.IsNullOrEmpty(lastTemplateAssetPath)) { m_LastSelectedTemplate = m_SceneTemplateInfos.Find(info => info.Equals(lastTemplateAssetPath)); } if (m_LastSelectedTemplate == null) { m_LastSelectedTemplate = GetDefaultSceneTemplateInfo(); } }
internal void OnEditTemplate(SceneTemplateInfo sceneTemplateInfo) { if (sceneTemplateInfo == null) { return; } if (sceneTemplateInfo.IsInMemoryScene) { return; } // Select the asset var templateAsset = AssetDatabase.LoadMainAssetAtPath(sceneTemplateInfo.assetPath); Selection.SetActiveObjectWithContext(templateAsset, null); // Close the dialog Close(); }
private void UpdatePreviewAreaSize(SceneTemplateInfo info = null) { info = info ?? m_LastSelectedTemplate; if (m_PreviewArea == null) { return; } if (info == null || info.thumbnail == null || info.thumbnail.height > info.thumbnail.width) { m_PreviewArea.Element.style.height = Length.Percent(50); return; } var thumbnail = info.thumbnail; var aspectRatio = (float)thumbnail.height / (float)thumbnail.width; var width = m_PreviewArea.Element.worldBound.width; var newHeight = m_PreviewArea.Element.worldBound.width * aspectRatio; // Debug.Log($"Preview size: {info.name} width: {info.thumbnail.width} height:{info.thumbnail.height} ratio: {aspectRatio} AreaW: {width} NewHeigth: {newHeight}"); m_PreviewArea.Element.style.height = newHeight; }
private void OnCreateNewScene(SceneTemplateInfo sceneTemplateInfo) { if (sceneTemplateInfo == null) { return; } var loadAdditive = rootVisualElement.Q(k_SceneTemplateCreateAdditiveButtonName) as Toggle; SceneTemplateService.newSceneTemplateInstantiating += TemplateInstantiating; try { sceneTemplateInfo.onCreateCallback(loadAdditive.value); if (sceneTemplateInfo.IsInMemoryScene) { Close(); } } finally { SceneTemplateService.newSceneTemplateInstantiating -= TemplateInstantiating; } }
private void SetLastSelectedTemplate(SceneTemplateInfo info) { m_LastSelectedTemplate = info; EditorPrefs.SetString(GetKeyName(nameof(m_LastSelectedTemplate)), info.ValidPath); }