void UpdateParentView() { var container = new VisualElement(); var headerLabel = new Label("Parent Hierarchy"); headerLabel.AddToClassList("Header"); container.Add(headerLabel); // Create a hierarchy queue Queue <Object> parents = new Queue <Object>(); MixtureVariant currentVariant = variant.parentVariant; while (currentVariant != null) { parents.Enqueue(currentVariant); currentVariant = currentVariant.parentVariant; } parents.Enqueue(graph); // UIElements breadcrumbs bar var parentBar = new ToolbarBreadcrumbs(); parentBar.AddToClassList("Indent"); parentBar.AddToClassList("VariantBreadcrumbs"); foreach (var obj in parents.Reverse()) { var v = obj as MixtureVariant; var g = obj as MixtureGraph; parentBar.PushItem(obj.name, () => { Selection.activeObject = v?.mainOutputTexture ?? g?.mainOutputTexture ?? obj; }); } // Add new variant button: parentBar.PushItem("+", () => { MixtureAssetCallbacks.CreateMixtureVariant(null, variant); }); container.Add(parentBar); root.Add(container); }
void CreateMixtureVariant() => MixtureAssetCallbacks.CreateMixtureVariant(graph, null);