Exemple #1
0
        /// <summary>
        /// Setup of the base framework. Enough to manage and calculate canvases.
        /// </summary>
        private static void setupBaseFramework()
        {
            CheckEditorPath();

            // Init Resource system. Can be called anywhere else, too, if it's needed before.
            ResourceManager.SetDefaultResourcePath(editorPath + "Resources/");

            // Run fetching algorithms searching the script assemblies for Custom Nodes / Connection Types / NodeCanvas Types
            ConnectionPortStyles.FetchConnectionPortStyles();
            NodeTypes.FetchNodeTypes();
            NodeCanvasManager.FetchCanvasTypes();
            ConnectionPortManager.FetchNodeConnectionDeclarations();
            ImportExportManager.FetchIOFormats();

            // Setup Callback system
            NodeEditorCallbacks.SetupReceivers();
            NodeEditorCallbacks.IssueOnEditorStartUp();

            // Init input
            NodeEditorInputSystem.SetupInput();

                #if UNITY_EDITOR
            UnityEditor.EditorApplication.update -= Update;
            UnityEditor.EditorApplication.update += Update;
                #endif

            initiatedBase = true;
        }
Exemple #2
0
 /// <summary>
 /// Checks and fetches the connection style declaration specified by the styleID
 /// </summary>
 protected void CheckConnectionStyle()
 {
     if (_connectionStyle == null || !_connectionStyle.isValid())
     {
         _connectionStyle = ConnectionPortStyles.GetPortStyle(styleID, styleBaseClass);
         if (_connectionStyle == null || !_connectionStyle.isValid())
         {
             color = NodeEditorGUI.RandomColorHSV(styleID.GetHashCode(), 0, 1, 0.6f, 0.8f, 0.8f, 1.4f);
         }
         else
         {
             color = _connectionStyle.Color;
         }
     }
 }
Exemple #3
0
        /// <summary>
        /// Setup of the base framework. Enough to manage and calculate canvases.
        /// </summary>
        private static void setupBaseFramework()
        {
            // Run fetching algorithms searching the script assemblies for Custom Nodes / Connection Types / NodeCanvas Types
            ConnectionPortStyles.CheckPortStyles();

            // Setup Callback system
            NodeEditorCallbacks.SetupReceivers();
            NodeEditorCallbacks.IssueOnEditorStartUp();

#if UNITY_EDITOR
            UnityEditor.EditorApplication.update -= Update;
            UnityEditor.EditorApplication.update += Update;
#endif

            initiatedBase = true;
        }
        public override bool IsCompatibleWith(ConnectionPort port)
        {
            if (!(Direction == Direction.None && port.direction == Direction.None) &&
                !(Direction == Direction.In && port.direction == Direction.Out) &&
                !(Direction == Direction.Out && port.direction == Direction.In))
            {
                return(false);
            }
            ValueConnectionKnob valueKnob = port as ValueConnectionKnob;

            if (valueKnob == null)
            {
                return(false);
            }
            Type knobType = ConnectionPortStyles.GetValueType(StyleID);

            return(knobType.IsAssignableFrom(valueKnob.valueType));
        }
        /// <summary>
        /// Checks and fetches the connection style declaration specified by the styleID
        /// </summary>
        protected void CheckConnectionStyle()
        {
            if (_connectionStyle == null || !_connectionStyle.isValid())
            {
                _connectionStyle = ConnectionPortStyles.GetPortStyle(styleID, styleBaseClass);
                if (_connectionStyle == null || !_connectionStyle.isValid())
                {                 // Generate consistent color for a type - using string because it delivers greater variety of colors than type hashcode
#if UNITY_5_4_OR_NEWER
                    UnityEngine.Random.InitState(styleID.GetHashCode());
#endif
                    color = UnityEngine.Random.ColorHSV(0, 1, 0.6f, 0.8f, 0.8f, 1.4f);
                }
                else
                {
                    color = _connectionStyle.Color;
                }
            }
        }
Exemple #6
0
        public static void InitSystem()
        {
            _inst = AssetDatabase.LoadAssetAtPath <NodeSystemSetting>(ASSET_PATH);
            bool hasExist = _inst != null;

            if (!hasExist)
            {
                _inst = CreateInstance <NodeSystemSetting>();
                AssetDatabase.CreateAsset(_inst, ASSET_PATH);
            }

            ConnectionPortStyles.InitSystem(out _inst.portStyles, out _inst.valueTypes);
            NodeTypes.InitSystem(out _inst.nodeDatas);
            NodeCanvasManager.InitSystem(out _inst.canvasDatas);
            ConnectionPortManager.InitSystem(out _inst.nodePortDec);
            ConnectionPortManager.InitSystem(out _inst.nodePortDec);
            ImportExportManager.InitSystem(out _inst.ioFormats);

            NodeEditorInputSystem.InitSystem(out _inst.eventHandlers, out _inst.hotkeyHandlers, out _inst.contextEntries, out _inst.contextFillers);
        }
 protected void Setup(Type type)
 {
     StyleID   = type.FullName;
     ValueType = type;
     ConnectionPortStyles.GetValueConnectionType(type);
 }