Ejemplo n.º 1
0
        // ===================================================================
        // EDITOR ENTRY POINT
        // -------------------------------------------------------------------
        protected override void OnPortSpecificGUI()
        {
            // -- Edit the value of the port. --
            EditPortValue();

            // -- Edit port variable type. --
            if (vsObject.IsInDataPort)
            {
                if (iCS_Types.IsA <UnityEngine.Object>(vsObject.RuntimeType))
                {
                    InUnityObjectVariableType variableType = ConvertEnum(vsObject.PortSpec, InUnityObjectVariableType.PublicVariable);
                    variableType = (InUnityObjectVariableType)EditorGUILayout.EnumPopup("Variable Type", variableType);
                    SetPortSpec(ConvertEnum(variableType, PortSpecification.Default));
                }
                else
                {
                    InVariableType variableType = ConvertEnum(vsObject.PortSpec, InVariableType.PublicVariable);
                    variableType = (InVariableType)EditorGUILayout.EnumPopup("Variable Type", variableType);
                    SetPortSpec(ConvertEnum(variableType, PortSpecification.Default));
                }
            }
            else if (vsObject.IsOutDataPort)
            {
                OutVariableType variableType = ConvertEnum(vsObject.PortSpec, OutVariableType.LocalVariable);
                variableType = (OutVariableType)EditorGUILayout.EnumPopup("Variable Type", variableType);
                SetPortSpec(ConvertEnum(variableType, PortSpecification.Default));
            }

            // -- Show port value type. --
            EditPortValueType();
        }
        // ===================================================================
        // EDITOR ENTRY POINT
        // -------------------------------------------------------------------
        protected override void OnPortSpecificGUI()
        {
            // -- Port type selection. --
            if (vsObject.IsFixDataPort)
            {
                // -- Edit port variable type. --
                EditorGUI.BeginDisabledGroup(true);
                EditorGUILayout.EnumPopup("Variable Type", vsObject.PortSpec);
                EditorGUI.EndDisabledGroup();
            }
            else
            {
                // -- Edit port variable type. --
                if (vsObject.IsInDataPort)
                {
                    if (iCS_Types.IsA <UnityEngine.Object>(vsObject.RuntimeType))
                    {
                        InUnityObjectVariableType variableType = ConvertEnum(vsObject.PortSpec, InUnityObjectVariableType.PublicVariable);
                        variableType = (InUnityObjectVariableType)EditorGUILayout.EnumPopup("Variable Type", variableType);
                        SetPortSpec(ConvertEnum(variableType, PortSpecification.Default));
                    }
                    else
                    {
                        InVariableType variableType = ConvertEnum(vsObject.PortSpec, InVariableType.PublicVariable);
                        variableType = (InVariableType)EditorGUILayout.EnumPopup("Variable Type", variableType);
                        SetPortSpec(ConvertEnum(variableType, PortSpecification.Default));
                    }
                }
                else if (vsObject.IsOutDataPort)
                {
                    var             producerPort = vsObject.SegmentProducerPort;
                    OutVariableType variableType = ConvertEnum(producerPort.PortSpec, OutVariableType.PublicVariable);
                    variableType = (OutVariableType)EditorGUILayout.EnumPopup("Variable Type", variableType);
                    SetPortSpec(ConvertEnum(variableType, PortSpecification.Default));
                }

                // -- Edit the value of the port. --
                EditPortValue();
            }

            // -- Show port value type. --
            EditPortValueType();
        }