void OnVariableAdded(VariableAdded evt) { if (evt.Variable.UseUI && evt.Variable.UI) { // Instantiate the UI element for the new variable if not already shown. if (!m_ShownVariables.Contains(evt.Variable)) { m_ShownVariables.Add(evt.Variable); GameObject go = Instantiate(evt.Variable.UI, m_VariablePanel); // Initialise the variable element. Variable variable = go.GetComponent <Variable>(); variable.Initialize(evt.Variable.Name, evt.Variable.InitialValue.ToString()); // Force layout rebuild to get height of variable UI. LayoutRebuilder.ForceRebuildLayoutImmediate(go.GetComponent <RectTransform>()); // Position the variable. var rectTransform = go.GetComponent <RectTransform>(); rectTransform.anchoredPosition = new Vector2(rectTransform.sizeDelta.x, m_NextY - s_TopMargin); m_NextY -= rectTransform.sizeDelta.y + s_Spacing; evt.Variable.OnUpdate += variable.OnUpdate; } } }
public override Variable RegisterVariable(Variable variable) { variable.VariableChanging += OnVariableChanging; variable.VariableChanged += OnVariableChanged; base.RegisterVariable(variable); VariableAdded?.Invoke(this, new VariableAddedEventArgs(variable)); return(variable); }
NodeGraphVariable AddVariable(NodeGraphVariableData graphVariableData) { NodeEditor.Assertions.IsFalse(Variables.Any(x => x.ID == graphVariableData.ID), "Tried to spawn a variable that has the same ID as an existing variable."); var variable = new NodeGraphVariable(graphVariableData); variable.NameChangeRequested += Variable_NameChangeRequested; Variables.Add(variable); NodeEditor.Logger.Log <NodeGraph>("Added variable '{0}' ({1})", variable.Name, variable.GetType()); VariableAdded.InvokeSafe(variable); Edited.InvokeSafe(this); return(variable); }
/// <summary> /// Method that calls the <see cref="VariableAdded"/> event. /// </summary> /// <param name="variable"></param> protected virtual void OnVariableAdded(VariableEventArgs args) => VariableAdded?.Invoke(this, args);
void Graph_VariableAdded(NodeGraphVariable variable) { VariableAdded.InvokeSafe(variable); }