创建新的业务节点图

新增业务时,优先使用脚手架面板:

1
Tools/Node Graph/Create Graph Scripts

该面板可以生成 Graph Asset、Controller、Window,以及可选的 Node、NodeView、RuntimeNode 和 Debugger。

taskNodeWidnows

生成后的职责

类型 作用
{Business}GraphAsset 业务图资产类型
{Business}GraphController 导出路径、节点创建与编辑器策略
{Business}GraphWindow 业务图编辑窗口与工具栏
{Business}NodeData 节点业务数据
{Business}Node 编辑器节点和端口定义
{Business}NodeView 节点内容区 UI
{Business}RuntimeNode 运行时进入、更新、退出行为

新业务的最小实现

  1. 创建业务 Graph Asset。
  2. 创建 Controller,并设置 Runtime 导出目录。
  3. 创建带 NodeGraphWindow 特性的业务 Window。
  4. 创建 NodeData、编辑器 Node 和 NodeView。
  5. 创建带 NodeRuntime 特性的 RuntimeNode。
  6. 在业务启动入口加载导出的运行时图并调用 Start()

业务节点数据

节点数据应只保存可序列化的业务配置,不保存场景对象、运行时状态或 UI 引用。

1
2
3
4
5
6
[System.Serializable]
public class DialogueNodeData
{
public string speaker;
public string content;
}

业务端口与出口

编辑器 Node 负责声明端口,并使用稳定的 portKey 作为 Runtime 跳转出口。RuntimeNode 使用相同 key 调用:

1
runner.MoveNext("next");

建议将业务出口 key 集中定义为常量,避免散落的字符串拼写错误。

导出与加载

编辑器图资产位于:

1
Assets/NodeGraphView/Editor Default Resources/GraphData/{GraphName}.asset

业务 Controller 决定 Runtime 导出位置。Task 示例导出到:

1
Assets/Resources/TaskGraphs/{GraphName}.bytes

Runtime 使用 Resources 路径加载时不带扩展名:

1
2
GraphRuntimeManager.Instance.LoadFromResources(
"TaskGraphs/NewGraph0");