Skip to content

Commit 8b1f2b5

Browse files
committed
update README: note this is a fork, document install URL and changes
1 parent 34e089e commit 8b1f2b5

1 file changed

Lines changed: 45 additions & 11 deletions

File tree

README.md

Lines changed: 45 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,12 @@
11
# NodeGraphProcessor
2+
3+
> **This is a fork of [alelievr/NodeGraphProcessor](https://github.com/alelievr/NodeGraphProcessor).**
4+
> It exists to port the package to Unity 6.5+ and pick up a handful of upstream fixes and internal
5+
> improvements. See [Changes in this fork](#changes-in-this-fork) below for the full list. The
6+
> package identity was renamed from `com.alelievr.node-graph-processor` to
7+
> `com.dyonng.node-graph-processor` (folder: `com.dyonng.NodeGraphProcessor`) — see
8+
> [Installation](#installation) for how to pull this fork into a project instead of the original.
9+
210
Node graph editor framework focused on data processing using Unity UIElements, GraphView and C# 4.7
311

412
[![Discord](https://img.shields.io/discord/823720615965622323.svg)](https://discord.gg/XuMd3Z5Rym)
@@ -18,7 +26,6 @@ using System.Collections;
1826
using System.Collections.Generic;
1927
using UnityEngine;
2028
using GraphProcessor;
21-
using System.Linq;
2229

2330
[System.Serializable, NodeMenuItem("Operations/Sub")] // Add the node in the node creation context menu
2431
public class SubNode : BaseNode
@@ -43,8 +50,10 @@ public class SubNode : BaseNode
4350

4451
## Unity Compatible versions
4552

46-
This project requires at least Unity **2020.2** with a scripting runtime version of 4.x in player settings.
47-
The current Unity version used for the project is **2020.2.0f1**, if you want to install NodeGraphProcessor in an older unity project, you can install it via Open UPM (minimum version: Unity **2019.3**).
53+
This fork requires at least Unity **6000.5** (6.5) — it relies on `Object.GetEntityId()`, which
54+
replaced the now-deprecated `GetInstanceID()` and isn't available before 6.5. If you need to
55+
support older Unity versions, use the [upstream project](https://github.com/alelievr/NodeGraphProcessor)
56+
instead (Unity 2020.2+, or 2019.3+ via OpenUPM).
4857

4958
## Installation
5059

@@ -56,25 +65,50 @@ To install using the package manager:
5665

5766
- download this repo
5867
- inside the package manager click the '+' button at the bottom to add a package from disk
59-
- then select the package.json file located in `Assets/NodeGraphProcessor`
68+
- then select the package.json file located in `Assets/com.dyonng.NodeGraphProcessor`
6069
- package is installed :)
6170

62-
### Install via OpenUPM
71+
### Install via Git
6372

64-
The package is available on the [openupm registry](https://openupm.com). It's recommended to install it via [openupm-cli](https://github.com/openupm/openupm-cli).
73+
In the Package Manager, use `Add package from git URL` and paste:
6574

6675
```
67-
openupm add com.alelievr.node-graph-processor
76+
https://github.com/dyonng/NodeGraphProcessor.git?path=Assets/com.dyonng.NodeGraphProcessor#v1.4.0
6877
```
6978

70-
### Install via Git
71-
72-
Alternatively, you can use the [git address feature in the package manager](https://forum.unity.com/threads/git-support-on-package-manager.573673/) on the branch [#upm](https://github.com/alelievr/NodeGraphProcessor/tree/upm), it only contains the package but it may be out of sync compared to master.
79+
The `?path=` points Unity at the package subfolder, and `#v1.4.0` pins to a released tag so your
80+
install doesn't shift under you when the branch moves. Drop the `#v1.4.0` to track `master`
81+
directly instead (not recommended for shared projects).
7382

74-
Note that you'll not have access to the examples provided in this repo because the package only include the core of NodeGraphProcessor.
83+
Note that you'll not have access to the examples provided in this repo because the package only include the core of NodeGraphProcessor — see Install Manually above if you want the `Assets/Examples` content too.
7584

7685
</details>
7786

87+
## Changes in this fork
88+
89+
- **Ported to Unity 6.5 (6000.5)** — fixed compile errors from the `GetInstanceID()`
90+
`GetEntityId()` migration and other Unity 6 API changes.
91+
- **Package identity renamed** from `com.alelievr.node-graph-processor` /
92+
`com.alelievr.NodeGraphProcessor` to `com.dyonng.node-graph-processor` /
93+
`com.dyonng.NodeGraphProcessor` (folder, `package.json`, assembly names, `InternalsVisibleTo`,
94+
and the example graph assets' serialized type references were all updated together so existing
95+
graphs still deserialize correctly).
96+
- **Cherry-picked open upstream PRs**: node-view crash/UX fixes (bad node-view rebind and a crash
97+
in `SyncSerializedPropertyPathes` on delete-with-connections, list-item clicks no longer trigger
98+
node drag), a node-rename focus-timing fix, and a reflection fix so inherited
99+
`[CustomPortTypeBehavior]` methods on base classes are found.
100+
- **Removed all LINQ usage** across the package (Runtime + Editor, ~130 call sites in 23 files),
101+
replaced with explicit loops to cut GC churn — LINQ's iterators, closures, and boxed enumerators
102+
were a meaningful allocation source in hot paths like port syncing and graph traversal.
103+
- **Bug fixes found along the way**: `PortData` was being compared by reference instead of value
104+
(`Equals`), causing spurious port-view rebuilds on every sync; `ParameterNode` and
105+
`BaseGraphView` leaked event subscriptions on enable/disable and dispose; `RelayNode` could throw
106+
on an empty port list; a node-deletion path never removed its view from internal tracking lists.
107+
- **Performance work**: eliminated a redundant duplicate graph-traversal build on every single edge
108+
edit, batched `SerializedObject`/property-path rebinding on multi-element delete (was rebuilding
109+
once per deleted element), removed several boxed-enumerator and per-call allocation hot spots in
110+
port syncing and edge-dragging, and converted a few iterator methods to eager list builds for
111+
better cache locality.
78112

79113
## Community
80114

0 commit comments

Comments
 (0)