Пример #1
0
        public void SetSerializeTarget(NoduxLinkGraph graph)
        {
            this._serializedGraph = new SerializedNoduxLinkGraph(graph);
            var title = SelectionUtil.GetSceneGameObjectPath(graph);

            _windowDelegate.SetGraphName(title);
        }
Пример #2
0
        public static NoduxGraphNodeView Load(
            SerializedNoduxLinkGraph serializedObject,
            GraphNodeData inspectorNode,
            int index
            )
        {
            var nodeView = new NoduxGraphNodeView()
            {
                title = inspectorNode.Name,
                name  = inspectorNode.Name,
                Data  = inspectorNode.Node,
                Guid  = inspectorNode.Guid
            };

            var inputPort  = GenerateInputPort(nodeView);
            var outputPort = GenerateOutputPort(nodeView);

            var property = serializedObject.GetNode(index);

            INodeFieldRenderer.Render(nodeView.extensionContainer, property, inspectorNode.Node);

            nodeView.styleSheets.Add(Resources.Load <StyleSheet>("NoduxGraphNode"));
            nodeView.RefreshPorts();
            nodeView.RefreshExpandedState();
            nodeView.SetPosition(new Rect(inspectorNode.Position, DefaultNodeSize));
            return(nodeView);
        }
Пример #3
0
        public static NoduxGraphNodeView Create(
            SerializedNoduxLinkGraph serializedObject,
            INode nodeData,
            Vector2 position)
        {
            var type          = nodeData.GetType();
            var name          = type.Name;
            var inspectorNode = new GraphNodeData()
            {
                Guid     = Guid.NewGuid().ToString(),
                Name     = name,
                Position = position,
                Node     = nodeData,
            };

            var nodeView = new NoduxGraphNodeView()
            {
                title = inspectorNode.Name,
                name  = inspectorNode.Name,
                Data  = inspectorNode.Node,
                Guid  = inspectorNode.Guid
            };

            var inputPort  = GenerateInputPort(nodeView);
            var outputPort = GenerateOutputPort(nodeView);

            var index    = serializedObject.AddNode(inspectorNode);
            var property = serializedObject.GetNode(index);

            INodeFieldRenderer.Render(nodeView.extensionContainer, property, inspectorNode.Node);

            nodeView.styleSheets.Add(Resources.Load <StyleSheet>("NoduxGraphNode"));
            nodeView.RefreshPorts();
            nodeView.RefreshExpandedState();
            nodeView.SetPosition(new Rect(inspectorNode.Position, DefaultNodeSize));
            return(nodeView);
        }
Пример #4
0
        public void OnHierarchyChange()
        {
            var graphSceneName = _serializedGraph?.GraphSceneName;

            if (graphSceneName == null)
            {
                return;
            }

            var found = false;

            for (var i = 0; i < EditorSceneManager.sceneCount; i++)
            {
                var scene = EditorSceneManager.GetSceneAt(i);

                if (graphSceneName == scene.name)
                {
                    if (scene.isLoaded)
                    {
                        return;
                    }
                    found = true;
                    break;
                }
            }

            // XXX: it may be prefab edit. avoid clear
            if (!found)
            {
                return;
            }

            NoduxGraphOperation.ClearGraph(this);
            _internalGameObject = null;
            _serializedGraph    = null;
        }