Example #1
0
 public override void OnBodyGUI()
 {
     if (_dataSelectorNode == null)
     {
         _dataSelectorNode = (DataSelectorNode)target;
     }
     serializedObject.Update();
     if (_dataSelectorNode.SerializableInfos.Count > 0)
     {
         string[] choices = _dataSelectorNode.SerializableInfos.Select(info => info.Name).ToArray();
         //BUG-fred ArgumentException: Getting control 2's position in a group with only 2 controls when doing mouseUp
         _dataSelectorNode.ChoiceIndex = EditorGUILayout.Popup(_dataSelectorNode.ChoiceIndex, choices);
         _dataSelectorNode.SelectedSerializableInfo = _dataSelectorNode.SerializableInfos.ElementAt(_dataSelectorNode.ChoiceIndex);
         NodePort dataPort = _dataSelectorNode.GetPort(nameof(_dataSelectorNode.Data));
         NodeEditorGUILayout.AddPortField(dataPort);
         NodePort nodePort = _dataSelectorNode.GetPort(nameof(_dataSelectorNode.Output));
         nodePort.ValueType = _dataSelectorNode.SelectedSerializableInfo.Type;
         NodeEditorGUILayout.AddPortField(nodePort);
     }
     else
     {
         NodeEditorGUILayout.PropertyField(serializedObject.FindProperty(nameof(_dataSelectorNode.Data)));
     }
     serializedObject.ApplyModifiedProperties();
 }
Example #2
0
 public override void OnBodyGUI()
 {
     if (_dataSelectorNode == null)
     {
         _dataSelectorNode = (DataSelectorNode)target;
     }
     serializedObject.Update();
     if (_dataSelectorNode.SerializableInfos.Count > 0)
     {
         string[] choices     = _dataSelectorNode.SerializableInfos.Select(info => info.Name).ToArray();
         int      choiceIndex = EditorGUILayout.Popup(_dataSelectorNode.ChoiceIndex, choices);
         if (choiceIndex != _dataSelectorNode.ChoiceIndex)
         {
             UpdateChoice(choiceIndex);
         }
         _dataSelectorNode.SelectedSerializableInfo = _dataSelectorNode.SerializableInfos.ElementAt(_dataSelectorNode.ChoiceIndex);
         NodePort dataPort = _dataSelectorNode.GetPort(nameof(_dataSelectorNode.Data));
         NodeEditorGUILayout.AddPortField(dataPort);
         NodePort outputPort = _dataSelectorNode.GetPort(nameof(_dataSelectorNode.Output));
         outputPort.ValueType = _dataSelectorNode.SelectedSerializableInfo.Type;
         NodeEditorGUILayout.AddPortField(outputPort);
     }
     else
     {
         NodeEditorGUILayout.PropertyField(serializedObject.FindProperty(nameof(_dataSelectorNode.Data)));
     }
     serializedObject.ApplyModifiedProperties();
 }