//---------------------------------------------------------------------------------------------------------------------- void OnOutputPathSelectButtonClicked() { string path = EditorUtility.OpenFolderPanel("Select Scene Cache Output Path", m_generatedSCResPathTextField.value, ""); if (string.IsNullOrEmpty(path)) { return; } if (!path.StartsWith(Application.dataPath)) { EditorUtility.DisplayDialog("MeshSync", $"Invalid path: {path}. " + "Path has to be under the Assets folder.", "Ok"); return; } MeshSyncRuntimeSettings settings = MeshSyncRuntimeSettings.GetOrCreateSettings(); path = AssetUtility.NormalizeAssetPath(path); settings.SetSceneCacheOutputPath(path); settings.SaveSettings(); RefreshSettings(); }
//---------------------------------------------------------------------------------------------------------------------- public void Setup(VisualElement root) { VisualTreeAsset tab = UIElementsEditorUtility.LoadVisualTreeAsset(Constants.SCENE_CACHE_PLAYER_SETTINGS_TAB_PATH); TemplateContainer tabInstance = tab.CloneTree(); VisualElement content = tabInstance.Query <VisualElement>("Content").First(); m_generatedSCResPathTextField = tabInstance.Query <TextField>("GeneratedSCResPathText").First(); m_generatedSCResPathTextField.RegisterValueChangedCallback((ChangeEvent <string> changeEvent) => { MeshSyncRuntimeSettings settings = MeshSyncRuntimeSettings.GetOrCreateSettings(); settings.SetSceneCacheOutputPath(changeEvent.newValue); settings.SaveSettings(); }); m_outputPathSelectButton = tabInstance.Query <Button>("OutputPathSelectButton").First(); m_outputPathSelectButton.clicked += OnOutputPathSelectButtonClicked; RefreshSettings(); //MeshSyncPlayerConfig MeshSyncPlayerConfigSection section = new MeshSyncPlayerConfigSection(MeshSyncPlayerType.CACHE_PLAYER); section.Setup(content); root.Add(tabInstance); }