예제 #1
0
        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);
 }
예제 #3
0
        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);
        }
예제 #4
0
 /// <summary>
 /// Method that calls the <see cref="VariableAdded"/> event.
 /// </summary>
 /// <param name="variable"></param>
 protected virtual void OnVariableAdded(VariableEventArgs args) => VariableAdded?.Invoke(this, args);
예제 #5
0
 void Graph_VariableAdded(NodeGraphVariable variable)
 {
     VariableAdded.InvokeSafe(variable);
 }