void UpdateValueAttribute(BehaviourAttribute attribute, int attributeId)
    {
        var previousVariable = attribute.Variable.GetFloat();

        attribute.Variable.Set(EditorGUILayout.FloatField(ConstellationBehaviour.Attributes[attributeId].Name, ConstellationBehaviour.Attributes[attributeId].Variable.GetFloat()));
        if (previousVariable != attribute.Variable.GetFloat() && Application.isPlaying)
        {
        }
    }
    void UpdateWordAttribute(BehaviourAttribute attribute, int attributeId)
    {
        var newString = EditorGUILayout.TextField(ConstellationComponent.Attributes[attributeId].Name, ConstellationComponent.Attributes[attributeId].Variable.GetString());

        if (newString != attribute.Variable.GetString())
        {
            attribute.Variable.Set(newString);
            if (ConstellationComponent.constellation != null)
            {
                Node <INode> nodeToUpdate = ConstellationComponent.constellation.GetNodeByGUID(attribute.NodeGUID);
                if (nodeToUpdate != null)
                {
                    nodeToUpdate.Receive(attribute.Variable, null);
                }
            }
        }
    }
    void UpdateObjectAttribute(BehaviourAttribute attribute, int attributeId)
    {
#pragma warning disable 0618
        Object newObject = (EditorGUILayout.ObjectField(ConstellationComponent.Attributes[attributeId].Name, attribute.UnityObject, typeof(Object)));

#pragma warning disable CS0253 // Possible unintended reference comparison; right hand side needs cast
        if (newObject != attribute.Variable.GetObject())
#pragma warning restore CS0253 // Possible unintended reference comparison; right hand side needs cast
        {
            attribute.UnityObject = newObject;
            attribute.Variable.Set(newObject);
            if (ConstellationComponent.constellation != null)
            {
                Node <INode> nodeToUpdate = ConstellationComponent.constellation.GetNodeByGUID(attribute.NodeGUID);
                if (nodeToUpdate != null)
                {
                    nodeToUpdate.Receive(attribute.Variable, null);
                }
            }
        }
#pragma warning restore 0618
    }