Unity Visual Scripting 使用问题与经验总汇

可能和Bolt差不多,但本文以Visual Scripting为准。

1.Wait Until并不会再执行前面的代码,而是反复执行获取bool变量的代码;需自己拆出来写。

2.yield return null对应Wait For Next Frame,多用这个避免协程运行中的GC

3.链接自定义方法在Project Settings->Visual Scripting的Type Options里,每次修改过点击Regenerate Units更新。

4.按住Ctrl+鼠标拖拽,可以放置Group框起来;但是很难再次改变大小,需要手动删了重拖。

5.找过了,大概率没有Knot功能。

6.记得创建外部的SuperUnit而不是用内嵌的,否则每复制一个都相当于一组新的节点。

7.尝试支持自定义类型变量,但总crash。感觉变量功能对类型的支持不好,目前都是object装箱拆箱。

8.C#端外部传消息可用CustomEvent.Trigger,接收在事件里找CustomEvent即可。

9.关于状态机Transition的用法,实际上需要绑一个事件一直监听:

也可以加一个CustomEvent,通过事件触发决定跳转

10.ScriptGraph里协程的句柄不好控制,即使用StopAllCoroutine也不行,感觉开的是全局协程执行的。

重点来了——用StateGraph状态机;状态切状态,协程才可以中断。AnyState切状态,是新开的全局协程!

11.健壮性没有那么好,crash过一次;节点全丢了。。所以勤写注释。

12.StateGraph状态机的AnyState不支持放在SuperState嵌套状态里,必须放在根状态节点,但可以由根节点的AnyState触发然后传入到嵌套状态里。

13.Update、LateUpdate这类事件可以以协程形式执行,但实际上是每一帧开一个新协程。

官方论坛页:https://forum.unity.com/forums/visual-scripting.537/

文档页:https://docs.unity3d.com/bolt/1.4/manual/index.html

原文地址:https://www.cnblogs.com/hont/p/15637188.html