如何快速掌握uesave:游戏存档编辑终极指南
2026/6/11 7:15:56
原文
每个行为树都只有一份单独的数据作为资源被加载。
每个使用行为树的对象(Agent)依据这个共享的资源创建独立的实例数据,例如对于Sequence节点,实例数据中只是存储更新到哪个子树,至于Sequence节点的配置信息等则被共享。
Workspace::Load或Agent::btloadWorkspace::UnLoad或Agent::btunloadWorkspace::CreateBehaviorTreeTask用来根据加载的行为树资源创建实例数据,而它配套的是Workspace::DestroyBehaviorTreeTaskWorkspace::CreateBehaviorTreeTask和Workspace::DestroyBehaviorTreeTaskWorkspace::Load或Agent::btload加载可能会用到的行为树Agent::btsetcurrent指定该Agent当前的行为树,后续Agent::btexec更新的就是当前行为树,除非再次调用Agent::btsetcurrent修改当前行为树Workspace::UnLoad或Agent::btunload,或Workspace::UnLoadAll卸载行为树资源。而行为树实例是在Agent::btsetcurrent的时候被创建的,释放Agent的时候被Agent负责释放Workspace.Load和Agent.btload 我在所有的tutorials中都没有看到过Agent::btunload这个函数被调用过,什么时候需要调用这个btunload?
是否在同一个agent实例多次加载不同的行为树前需要先btunload一下,
而在销毁agent的时候无需做这个btunload的操作,agent::destroy会自动进行btunload?
对的。一般情况,不需要显示的调用btunload。