void UpdateExposedParameters() { parameters.Clear(); bool header = true; bool showUpdateButton = false; foreach (var param in graph.exposedParameters) { if (param.settings.isHidden) { continue; } if (header) { var headerLabel = new Label("Exposed Parameters"); headerLabel.AddToClassList("Header"); parameters.Add(headerLabel); header = false; showUpdateButton = true; } VisualElement prop = new VisualElement(); prop.AddToClassList("Indent"); prop.style.display = DisplayStyle.Flex; Type paramType = Type.GetType(param.type); var field = FieldFactory.CreateField(paramType, param.serializedValue.value, (newValue) => { Undo.RegisterCompleteObjectUndo(graph, "Changed Parameter " + param.name + " to " + newValue); param.serializedValue.value = newValue; }, param.name); prop.Add(field); parameters.Add(prop); } if (showUpdateButton) { var updateButton = new Button(() => { MixtureGraphProcessor.RunOnce(graph); graph.SaveAllTextures(false); }) { text = "Update" }; updateButton.AddToClassList("Indent"); parameters.Add(updateButton); } }
protected void UpdateExposedParameters() { if (root == null) { return; } if (parameters == null || !root.Contains(parameters)) { parameters = new VisualElement() { name = "ExposedParameters" }; root.Add(parameters); } parameters.Clear(); bool header = true; bool showUpdateButton = false; foreach (var param in graph.exposedParameters) { if (param.settings.isHidden) { continue; } if (header) { var headerLabel = new Label("Exposed Parameters"); headerLabel.AddToClassList("Header"); parameters.Add(headerLabel); header = false; showUpdateButton = true; } VisualElement prop = new VisualElement(); prop.AddToClassList("Indent"); prop.style.display = DisplayStyle.Flex; var p = exposedParameterFactory.GetParameterValueField(param, (newValue) => { param.value = newValue; graph.NotifyExposedParameterValueChanged(param); }); prop.Add(p); parameters.Add(prop); } if (showUpdateButton) { var updateButton = new Button(() => { MixtureGraphProcessor.RunOnce(graph); graph.SaveAllTextures(false); graph.UpdateLinkedVariants(); }) { text = "Update Texture(s)" }; updateButton.AddToClassList("Indent"); updateButton.AddToClassList("UpdateTextureButton"); parameters.Add(updateButton); } }