private ValidationSuiteExtensionUI(VisualTreeAsset asset) { root = asset.CloneTree(); string path = EditorGUIUtility.isProSkin ? DarkStylePath : LightStylePath; var styleSheet = EditorGUIUtility.Load(path) as StyleSheet; root.styleSheets.Add(styleSheet); Add(root); ValidateButton.clickable.clicked += Validate; ViewResultsButton.clickable.clicked += ViewResults; ViewDiffButton.clickable.clicked += ViewDiffs; }
public CombatantListContainerElement(CombatSMEditorWindow _ownerWindow) { m_owner = _ownerWindow; VisualTreeAsset visualTree = AssetDatabase.LoadAssetAtPath<VisualTreeAsset>("Assets/OTGCombatSystem/Editor/CombatSM/CombatantListContainerElement/CombatantListContainerElementTemplate.uxml"); StyleSheet style = AssetDatabase.LoadAssetAtPath<StyleSheet>("Assets/OTGCombatSystem/Editor/CombatSM/CombatantListContainerElement/CombatantListContainerElementStyle.uss"); ContainerElement = new VisualElement(); visualTree.CloneTree(ContainerElement); ContainerElement.styleSheets.Add(style); }
public void OnEnable() { utilityAIAgent = (UtilityAIAgent)target; rootElement = new VisualElement(); VisualTreeAsset visualTree = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>("Assets/UtilityAI/Scripts/Editor/Utility AI Agent Editor/UtilityAIAgentEditor.uxml"); visualTree.CloneTree(rootElement); StyleSheet stylesheet = AssetDatabase.LoadAssetAtPath <StyleSheet>("Assets/UtilityAI/Scripts/Editor/Utility AI Agent Editor/UtilityAIAgentEditor.uss"); rootElement.styleSheets.Add(stylesheet); }
public virtual void SetupElements(VisualElement container, ShaderLibrary Lab) { VisualTreeAsset nodeAsset = AssetDBHelper.LoadAsset <VisualTreeAsset>(files.BaseType, files.UXML); StyleSheet style = AssetDBHelper.LoadAsset <StyleSheet>(files.BaseType, files.USS); var tree = nodeAsset.CloneTree(); container.Add(tree); tree.name = TemplateName; UIRoot = container; UIRoot.styleSheets.Add(style); this.lab = Lab; DefaultSetupElements(); }
/// <inheritdoc /> protected override void BuildElementUI() { base.BuildElementUI(); if (s_ValueTemplate == null) { s_ValueTemplate = GraphElementHelper.LoadUXML("ValueBadge.uxml"); } s_ValueTemplate.CloneTree(this); m_TextElement = this.SafeQ <Label>("desc"); m_Image = this.SafeQ <Image>(); }
public SearchViewItem() { AddToClassList("SearchItem"); styleSheets.Add(Resources.Load <StyleSheet>("SearchItemStyle")); VisualTreeAsset visualTree = Resources.Load <VisualTreeAsset>("SearchItem"); visualTree.CloneTree(this); m_Label = this.Q <Label>("Label"); m_Icon = this.Q("Icon"); m_NextIcon = this.Q("NextIcon"); tabIndex = -1; }
public static VisualElement[,] CreateGridButton(this VisualElement parent, int width, int heigth, VisualTreeAsset buttonTemplate, Action <int, int> onClicked = null) { return(parent.CreateGrid(width, heigth, (x, y) => { //var template = buttonTemplate.CloneTree(); var t = new VisualElement(); var template = buttonTemplate.CloneTree(); var button = template.Query <Button>().First(); button.clickable.clicked += () => onClicked?.Invoke(x, y); return template; })); }
private void CreateLoadMapBtn(string mapName) { MapButton mapButton = new MapButton(); mapButton.m_mapDataName = mapName; m_mapButtons.Add(mapButton); var btn = m_mapBtn.CloneTree().Q <Button>(); btn.clicked += mapButton.OnClicked; m_mapButtonsList.Add(btn); btn.Q <TextElement>().text = mapName; }
private void OnEnable() { VisualTreeAsset original = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>("Assets/Scripts/Core/Edytor/DialogEditor/DialogEditor.uxml"); TemplateContainer treeAsset = original.CloneTree(); rootVisualElement.Add(treeAsset); StyleSheet styleSheet = AssetDatabase.LoadAssetAtPath <StyleSheet>("Assets/Scripts/Core/Edytor/DialogEditor/DialogEditorStyle.uss"); rootVisualElement.styleSheets.Add(styleSheet); CreateEnemyListView(); }
public override VisualElement CreateInspectorGUI() { var root = base.CreateInspectorGUI(); _randomVisualTree.CloneTree(root); UpdateMinMaxValues(root, ((RandomTimePackageSpawner)target).Range); root.Query <Label>(className: "range-value").ForEach(label => label.SetEnabled(false)); root.Q <MinMaxSlider>().RegisterCallback <ChangeEvent <Vector2> >(evt => UpdateMinMaxValues(root, evt.newValue)); return(root); }
private void OnEnable() { _ruleCount = -1; _activeRuleList = new List <Rule>(); _availableIds = new List <int>(); // Reference to the root of the window. _root = rootVisualElement; // Instantiate contents _contents = Resources.Load <VisualTreeAsset>(Constants.LabelUxmlMainPrefabWizard); _contents.CloneTree(_root); _rulesListView = _root.Q <ListView>(Constants.LabelListViewRulesList); // Single Rule Reference _singleRuleVisualTree = Resources.Load <VisualTreeAsset>(Constants.LabelUxmlSingleRule); // Load Rules Button _loadRules = _root.Q <Button>(Constants.LabelButtonLoadRules); _loadRules.clickable.clicked += LoadRules; // Save Rules Button _saveRules = _root.Q <Button>(Constants.LabelButtonSaveRules); _saveRules.clickable.clicked += SaveRules; // Add Rule Button _addRule = _root.Q <Button>(Constants.LabelButtonAddRule); _addRule.clickable.clicked += AddNewRule; // Clear Rules Button _clearRules = _root.Q <Button>(Constants.LabelButtonClearRules); _clearRules.clickable.clicked += ClearRules; // Create Prefab Button _createPrefab = _root.Q <Button>(Constants.LabelButtonCreatePrefab); _createPrefab.clickable.clicked += CreatePrefabForSelectedMesh; // Log List View _logListView = _root.Q <ListView>(Constants.LabelListViewLog); _listEntryVisualTreeAsset = Resources.Load <VisualTreeAsset>(Constants.LabelUxmlLogEntry); _logListView.Clear(); // ClearLog _clearLog = _root.Q <Button>(Constants.LabelButtonClearLog); _clearLog.clickable.clicked += ClearLog; // Version Label _labelVersion = _root.Q <Label>(Constants.LabelLabelVersion); _labelVersion.text = Constants.VersionNumber; }
// ######################## UNITY EVENT FUNCTIONS ######################## // #region UNITY EVENT FUNCTIONS public override VisualElement CreateInspectorGUI() { // load uxml VisualTreeAsset visualTreeAsset = Resources.Load <VisualTreeAsset>("PackageDefinitionInspector_layout"); _assetPathElementAsset = Resources.Load <VisualTreeAsset>("PackageDefinitionInspector_assetPathElement"); TemplateContainer visualTree = visualTreeAsset.CloneTree(); // load styles visualTree.styleSheets.Add(Resources.Load <StyleSheet>("Styles")); visualTree.styleSheets.Add(Resources.Load <StyleSheet>("PackageDefinitionInspector_styles")); // get list container _assetListContainer = visualTree.Q("pathListAssetContainer"); // get and set up target path button Button targetPathButton = visualTree.Q <Button>("targetPathButton"); SerializedProperty targetPathProperty = serializedObject.FindProperty("_targetPath"); targetPathButton.text = targetPathProperty.stringValue; targetPathButton.clickable.clicked += () => { serializedObject.Update(); targetPathProperty = serializedObject.FindProperty("_targetPath"); targetPathProperty.stringValue = EditorUtility.OpenFolderPanel("Select a location", Application.dataPath, ""); targetPathButton.text = targetPathProperty.stringValue; serializedObject.ApplyModifiedProperties(); }; // get and set up add asset button Button addAssetButton = visualTree.Q <Button>("addAssetButton"); addAssetButton.clickable.clicked += () => AddAsset(false); // get and set up add folder button Button addFolderButton = visualTree.Q <Button>("addFolderButton"); addFolderButton.clickable.clicked += () => AddAsset(true); // get and set up export button Button exportButton = visualTree.Q <Button>("exportButton"); exportButton.clickable.clicked += (target as PackageDefinition).Export; visualTree.Bind(serializedObject); LoadAssets(); return(visualTree); }
void SetWindSetArtistTool() { VisualElement root = rootVisualElement; root.Clear(); //Loads and clones our VisualTree inside the root. VisualTreeAsset quickToolVisualTree = Resources.Load <VisualTreeAsset>("WindArtistTool"); quickToolVisualTree.CloneTree(root); root.styleSheets.Add(Resources.Load <StyleSheet>("WindArtistTool")); #region Wind Shader // Set Initial Values VisualElement windComponent = root.Q <VisualElement>(name: "Wind"); if (windComponent != null) { Vector4Field windDirectionQuaternion = windComponent.Q <Vector4Field>(name: "WindDirection"); windDirectionQuaternion.value = GetWindDirection(); FloatField windScaleFloat = windComponent.Q <FloatField>(name: "WindScale"); windScaleFloat.value = GetWindScale(); MinMaxValue minMaxStrength = GetWindStrength(); VisualElement windStrengthHolder = windComponent.Q <VisualElement>(name: "WinStrengthHolder"); MinMaxSlider windStrengthSlider = windStrengthHolder.Q <MinMaxSlider>(name: "WindStrength"); windStrengthSlider.highLimit = minMaxStrength.HighLimit; windStrengthSlider.lowLimit = minMaxStrength.LowLimit; windStrengthSlider.value = new Vector2(minMaxStrength.minValue, minMaxStrength.maxValue); windStrengthHolder.Q <Label>(name: "MinValue").text = "Min Value :" + minMaxStrength.minValue; windStrengthHolder.Q <Label>(name: "MaxValue").text = "Max Value :" + minMaxStrength.maxValue; FloatField windSpeedFloat = windComponent.Q <FloatField>(name: "WindSpeed"); windSpeedFloat.value = GetWindSpeed(); //Set Callbacks values windDirectionQuaternion.RegisterCallback <ChangeEvent <Vector4> >(ChangeWindDirection); windScaleFloat.RegisterCallback <ChangeEvent <float> >(ChangeWindScale); windStrengthSlider.RegisterCallback <ChangeEvent <Vector2> >(ChangeWindStrength); windSpeedFloat.RegisterCallback <ChangeEvent <float> >(ChangeWindSpeed); } #endregion root.Q <Button>(name: "SaveButton").clicked += SaveButton; root.Q <Button>(name: "ResetButton").clicked += ResetToInitialSceneValues; }
// ######################## UNITY EVENT FUNCTIONS ######################## // #region UNITY EVENT FUNCTIONS public void OnEnable() { // show as an utility window with a fixed size ShowUtility(); minSize = new Vector2(300, 600); maxSize = minSize; // Import UXML VisualTreeAsset visualTreeAsset = Resources.Load <VisualTreeAsset>("ColorPickerWindow_layout"); visualTreeAsset.CloneTree(rootVisualElement); // load styles rootVisualElement.styleSheets.Add(Resources.Load <StyleSheet>("ColorPickerWindow_styles")); rootVisualElement.styleSheets.Add(Resources.Load <StyleSheet>("Styles")); // get elements EnumField modeField = rootVisualElement.Q <EnumField>("modeField"); _colorComparisonSwatch = rootVisualElement.Q <ColorComparisonSwatch>(); _hlsWheel = rootVisualElement.Q <ColorWheel>(); _sliderContainer = rootVisualElement.Q("sliderContainer"); _colorSliders[0] = rootVisualElement.Q <ColorSlider>("colorSlider1"); _colorSliders[1] = rootVisualElement.Q <ColorSlider>("colorSlider2"); _colorSliders[2] = rootVisualElement.Q <ColorSlider>("colorSlider3"); _hexField = rootVisualElement.Q <TextField>("hexField"); // add alpha slider _alphaSlider = new ColorSlider(); _alphaSlider.AddToClassList("color-slider"); _alphaSlider.label = "A"; _alphaSlider.lowValue = 0; _alphaSlider.highValue = 1; // register callbacks _colorComparisonSwatch.OnColorClicked += SetColor; _hlsWheel.OnColorChanged += UpdateColorFromHslWheel; _colorSliders[0].RegisterValueChangedCallback(UpdateColorFromSlider0); _colorSliders[1].RegisterValueChangedCallback(UpdateColorFromSlider1); _colorSliders[2].RegisterValueChangedCallback(UpdateColorFromSlider2); _alphaSlider.RegisterValueChangedCallback(UpdateAlpha); _hexField.RegisterCallback <FocusOutEvent>(UpdateColorFromHex); // initialize with hsl mode SetSliderMode(SliderMode.HSL); UpdateSliders(); // initialize the mode field with the current mode and register to its callback modeField.Init(_mode); modeField.RegisterValueChangedCallback(evt => SetSliderMode((SliderMode)evt.newValue)); }
public override VisualElement CreateInspectorGUI() { rootElement.Clear(); visualTree.CloneTree(rootElement); SetHeaderImage(); SetDescription(); CreatePlayerPropertyField(); SetBuffImage(); GetBuffActiveText(); SetBuffButton(); return(rootElement); }
private void OnEnable() { VisualElement root = rootVisualElement; // load basic UIElements assets tree = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>("Assets/Editor/Editor Windows/Level Editor/LevelEditorWindow.uxml"); stylesheet = AssetDatabase.LoadAssetAtPath <StyleSheet>("Assets/Editor/Editor Windows/Level Editor/LevelEditorWindow.uss"); // load the template for the grid cell cellTemplate = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>("Assets/Editor/UXML Templates/LevelCell.uxml"); root.styleSheets.Add(stylesheet); tree.CloneTree(root); }
private VisualElement CreateSongFolderEntry(string songDir, int indexInList) { VisualElement result = songFolderListEntryAsset.CloneTree(); VisualElement warningContainer = result.Q <VisualElement>(R.UxmlNames.warningContainer); Label warningLabel = warningContainer.Q <Label>(R.UxmlNames.warningLabel); void CheckFolderExists(string path) { if (Directory.Exists(path)) { warningContainer.HideByDisplay(); } else if (File.Exists(path)) { warningContainer.ShowByDisplay(); warningLabel.text = "Not a folder."; } else { warningContainer.ShowByDisplay(); warningLabel.text = "File does not exist."; } } TextField textField = result.Q <TextField>(R.UxmlNames.pathTextField); textField.value = songDir; PathTextFieldControl pathTextFieldControl = new(textField); pathTextFieldControl.ValueChangedEventStream .Subscribe(newValueUnescaped => { settings.GameSettings.songDirs[indexInList] = newValueUnescaped; CheckFolderExists(newValueUnescaped); }); Button deleteButton = result.Q <Button>(R.UxmlNames.deleteButton); deleteButton.text = TranslationManager.GetTranslation(R.Messages.delete); deleteButton.RegisterCallbackButtonTriggered(() => { settings.GameSettings.songDirs.RemoveAt(indexInList); UpdateSongFolderList(); backButton.Focus(); }); CheckFolderExists(songDir); return(result); }
VisualTreeAsset SetUpProjectile() { VisualTreeAsset aAsset = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>("Assets/Editor/UXML Files/ProjectileEditor.uxml"); mCurrentObjectElement = aAsset.CloneTree(); mProjectileAnimList = new ReorderableList(new List <AnimationData>(), typeof(AnimationData)); mProjectileAnimList.drawHeaderCallback = (Rect aRect) => { EditorGUI.LabelField(aRect, "Move Animation Sprites"); }; mProjectileAnimList.drawElementCallback = UpdateAnimList; mProjectileAnimList.onAddCallback = AddNewAnimation; mCurrentObjectElement.Q <IMGUIContainer>("projectile_animation_sprites").onGUIHandler = ProjectileOnGUI; return(aAsset); }
public static ExcelItem CreateItem(string path) { if (mItemTreeAsset == null) { MessageBox.Error("ExcelItem描述文件null"); return(null); } var root = mItemTreeAsset.CloneTree(); var item = new ExcelItem(path, root); item.Init(); return(item); }
public void OnEnable() { starSystem = (StarSystem)target; rootElement = new VisualElement(); // Load in UXML template and USS styles, then apply them to the root element. VisualTreeAsset visualTree = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>("Assets/Scripts/Editor/Star System Editor/StarSystemEditor.uxml"); visualTree.CloneTree(rootElement); StyleSheet stylesheet = AssetDatabase.LoadAssetAtPath <StyleSheet>("Assets/Scripts/Editor/Star System Editor/StarSystemEditor.uss"); rootElement.styleSheets.Add(stylesheet); }
MeshSyncSettingsProvider() : base(PROJECT_SETTINGS_MENU_PATH, SettingsScope.Project) { m_tabs = new IMeshSyncSettingsTab[MeshSyncEditorConstants.MAX_SETTINGS_TAB]; m_tabButtons = new Button[MeshSyncEditorConstants.MAX_SETTINGS_TAB]; m_tabs[MeshSyncEditorConstants.GENERAL_SETTINGS_TAB] = new GeneralSettingsTab(); m_tabs[MeshSyncEditorConstants.DCC_TOOLS_SETTINGS_TAB] = new DCCToolsSettingsTab(); //activateHandler is called when the user clicks on the Settings item in the Settings window. activateHandler = (string searchContext, VisualElement root) => { //Main Tree VisualTreeAsset main = UIElementsEditorUtility.LoadVisualTreeAsset( Path.Combine(MeshSyncEditorConstants.PROJECT_SETTINGS_UIELEMENTS_PATH, "ProjectSettings_Main") ); main.CloneTree(root); //Tab Buttons VisualElement tabsContainer = root.Query <VisualElement>("TabsContainer"); VisualTreeAsset tabButtonTemplate = UIElementsEditorUtility.LoadVisualTreeAsset( Path.Combine(MeshSyncEditorConstants.PROJECT_SETTINGS_UIELEMENTS_PATH, "TabButtonTemplate") ); m_tabButtons[0] = CreateButton(tabButtonTemplate, "General Settings", OnGeneralSettingsTabClicked); m_tabButtons[1] = CreateButton(tabButtonTemplate, "DCC Tools", OnDCCToolsTabClicked); foreach (Button tabButton in m_tabButtons) { tabsContainer.Add(tabButton); } //Style UIElementsEditorUtility.LoadAndAddStyle( root.styleSheets, Path.Combine(MeshSyncEditorConstants.PROJECT_SETTINGS_UIELEMENTS_PATH, "ProjectSettings_Style") ); m_content = root.Query <VisualElement>("Content"); SetupTab(MeshSyncEditorConstants.GENERAL_SETTINGS_TAB); }; deactivateHandler = () => { SetupTab(MeshSyncEditorConstants.UNINITIALIZED_TAB); }; //TODO-sin: 2020-4-24 Fill in more keywords by using GetSearchKeywordsFromGUIContentProperties //or GetSearchKeywordsFromPath keywords = new HashSet <string>(new[] { "MeshSync", }); }
private void OnEnable() { VisualElement root = rootVisualElement; root.styleSheets.Add(Resources.Load <StyleSheet>("Quick_Style")); VisualTreeAsset tree = Resources.Load <VisualTreeAsset>("Quick_Main"); tree.CloneTree(root); UQueryBuilder <Button> buttons = root.Query <Button>(); buttons.ForEach(SetupButton); }
private VisualElement CreatePackageInfo(PackageInfoDto package) { var element = packageTemplate.CloneTree(); element.Q <Label>("package-displayName").text = package.displayName; element.Q <Label>("package-name").text = package.name; element.Q <Label>("package-lastVersion").text = package.version; element.Q <TextElement>("package-desc").text = package.description; element.Q <TextElement>("package-url").text = package.projectUrl; element.Q <Button>("installMain").RegisterCallback <MouseUpEvent>(e => Install(package)); return(element); }
public void OnEnable() { uxmlAsset.CloneTree(rootVisualElement); var backgrounds = rootVisualElement.Query <ScrollView>(className: "scrollview"); backgrounds.ForEach(scrollview => scrollview.Add(new Image { image = backgroundImage })); var csScrollview = rootVisualElement.Q <ScrollView>("cs-persistence-scrollview"); csScrollview.viewDataKey = "csPersistence"; }
private DocumentationPackageManagerUI(VisualTreeAsset asset) { #if UNITY_2019_1_OR_NEWER root = asset.CloneTree(); var resourcesRoot = "packages/com.unity.package-manager-doctools/Editor/Resources/"; string path = EditorGUIUtility.isProSkin ? resourcesRoot + "Styles/Dark.uss" : resourcesRoot + "Styles/Light.uss"; var styleSheet = EditorGUIUtility.Load(path) as StyleSheet; root.styleSheets.Add(styleSheet); #else root = asset.CloneTree(null); root.AddStyleSheetPath(EditorGUIUtility.isProSkin ? "Styles/Dark" : "Styles/Light"); #endif Add(root); if (!Unsupported.IsDeveloperMode()) { Verbose.visible = false; } GenerateButton.clickable.clicked += GenerateDocClick; Verbose.RegisterValueChangedCallback(evt => VerbosityToggle()); VerbosityToggle(); }
void RefreshClassListContainer() { ClearAddStyleValidationWarning(); m_ClassListContainer.Clear(); if (BuilderSharedStyles.IsSelectorElement(currentVisualElement)) { return; } var builderWindow = m_PaneWindow as Builder; if (builderWindow == null) { return; } var documentRootElement = builderWindow.documentRootElement; foreach (var className in currentVisualElement.GetClasses()) { m_ClassPillTemplate.CloneTree(m_ClassListContainer.contentContainer); var pill = m_ClassListContainer.contentContainer.ElementAt(m_ClassListContainer.childCount - 1); var pillLabel = pill.Q <Label>("class-name-label"); var pillDeleteButton = pill.Q <Button>("delete-class-button"); // Add ellipsis if the class name is too long. var classNameShortened = BuilderNameUtilities.CapStringLengthAndAddEllipsis(className, BuilderConstants.ClassNameInPillMaxLength); pillLabel.text = "." + classNameShortened; pillDeleteButton.userData = className; pillDeleteButton.clickable.clickedWithEventInfo += OnStyleClassDelete; // See if the class is in document as its own selector. var selector = BuilderSharedStyles.FindSelectorElement(documentRootElement, "." + className); pill.SetProperty(BuilderConstants.InspectorClassPillLinkedSelectorElementVEPropertyName, selector); var clickable = CreateClassPillClickableManipulator(); pill.AddManipulator(clickable); if (selector == null) { pill.AddToClassList(BuilderConstants.InspectorClassPillNotInDocumentClassName); pill.tooltip = BuilderConstants.InspectorClassPillDoubleClickToCreate; } else { pill.tooltip = BuilderConstants.InspectorClassPillDoubleClickToSelect; } } }
//---------------------------------------------------------------------------------------------------------------------- MeshSyncProjectSettingsProvider() : base(PROJECT_SETTINGS_MENU_PATH, SettingsScope.Project) { m_tabs = new IMeshSyncSettingsTab[MeshSyncEditorConstants.MAX_SETTINGS_TAB]; Button[] tabButtons = new Button[MeshSyncEditorConstants.MAX_SETTINGS_TAB]; m_tabs[MeshSyncEditorConstants.SERVER_SETTINGS_TAB] = new ServerSettingsTab(); m_tabs[MeshSyncEditorConstants.SCENE_CACHE_PLAYER_SETTINGS_TAB] = new SceneCachePlayerSettingsTab(); //activateHandler is called when the user clicks on the Settings item in the Settings window. activateHandler = (string searchContext, VisualElement root) => { //Main Tree VisualTreeAsset main = UIElementsEditorUtility.LoadVisualTreeAsset(Constants.MAIN_PROJECT_SETTINGS_PATH); main.CloneTree(root); //Tab Buttons VisualElement tabsContainer = root.Query <VisualElement>("TabsContainer"); VisualTreeAsset btnTemplate = UIElementsEditorUtility.LoadVisualTreeAsset(Constants.TAB_BUTTON_TEMPLATE_PATH); tabButtons[0] = CreateButton(btnTemplate, Contents.Server, OnServerSettingsTabClicked); tabButtons[1] = CreateButton(btnTemplate, Contents.SceneCachePlayer, OnSceneCachePlayerTabClicked); foreach (Button tabButton in tabButtons) { tabsContainer.Add(tabButton); } //Style UIElementsEditorUtility.LoadAndAddStyle(root.styleSheets, Constants.PROJECT_SETTINGS_STYLE_PATH); m_content = root.Query <VisualElement>("Content"); UpdateSelectedTabButton(tabButtons[0]); SetupTab(MeshSyncEditorConstants.SERVER_SETTINGS_TAB); }; deactivateHandler = () => { SetupTab(MeshSyncEditorConstants.UNINITIALIZED_TAB); }; //keywords HashSet <string> meshSyncKeywords = new HashSet <string>(new[] { "MeshSync", }); meshSyncKeywords.UnionWith(GetSearchKeywordsFromGUIContentProperties <MeshSyncProjectSettingsProvider.Contents>()); meshSyncKeywords.UnionWith(GetSearchKeywordsFromGUIContentProperties <ServerSettingsTab.Contents>()); meshSyncKeywords.UnionWith(GetSearchKeywordsFromGUIContentProperties <SceneCachePlayerSettingsTab.Contents>()); meshSyncKeywords.UnionWith(GetSearchKeywordsFromGUIContentProperties <MeshSyncPlayerConfigSection.Contents>()); keywords = meshSyncKeywords; }
public ShaderItemUI(Shader sh, VisualTreeAsset treeAsset, string date) { this.shader = sh; this.dateTimeStr = date; var shaderData = ShaderUtil.GetShaderData(sh); #if UNITY_2019_1_OR_NEWER || UNITY_2019_OR_NEWER element = treeAsset.CloneTree(); #else element = treeAsset.CloneTree(null); #endif element.Q <Foldout>("ShaderFold").text = sh.name; element.Q <Foldout>("ShaderFold").value = false; // shader value element.Q <ObjectField>("ShaderVal").objectType = typeof(Shader); element.Q <ObjectField>("ShaderVal").value = sh; var shaderSubShadersFold = element.Q <Foldout>("SubShaders"); shaderSubShadersFold.text = "SubShaders(" + shaderData.SubshaderCount + ")"; shaderSubShadersFold.value = false; for (int i = 0; i < shaderData.SubshaderCount; ++i) { Foldout subShaderFold = new Foldout(); var subShader = shaderData.GetSubshader(i); CreateSubShaderMenu(subShaderFold, i, subShader); shaderSubShadersFold.Add(subShaderFold); } // DumpBtn element.Q <Button>("DumpButton").clickable.clicked += () => { DumpStart(); }; }
private void CreateUiIssue(SongIssue issue) { VisualElement visualElement = editorIssueUi.CloneTree().Children().First(); EditorIssueControl editorIssueControl = injector .WithRootVisualElement(visualElement) .WithBindingForInstance(issue) .CreateAndInject <EditorIssueControl>(); noteAreaIssues.Add(visualElement); editorIssueControl.VisualElement.RegisterCallbackOneShot <GeometryChangedEvent>(evt => { PositionEditorIssueControl(editorIssueControl.VisualElement, issue.StartBeat); }); }
//adds a new card to the deck on the left, ready to be used private IEnumerator AddCardToDeck(float delay = 0f) //TODO: pass in the CardData dynamically { yield return(new WaitForSecondsRealtime(delay)); //create new card var tree = visualTreeCard.CloneTree(); var card = tree.Q <CardElement>(); GetBackupContainer().Add(card); card.Init(playersDeck.GetNextCardFromDeck()); card.Scale(0.1f); card.AnimatedScale(0.7f, 0.2f); card.MoveTo(new Vector2(10, 10)); }