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.记得创建外部的SuperUnit(SubGraph)而不是用内嵌的,否则每复制一个都相当于一组新的节点。

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

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

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

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

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

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

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

11.Not boolean节点在VirtualScripting里叫做Negate。

12.用引脚直接前后连接的协程循环会有栈溢出问题,而用While Loop节点组合的协程循环则不会。

13.等待一定秒数之类的异步逻辑可以用Timer节点。

14.自定义Unit中获得宿主GameObject:

public class Foobar : Unit
{
protected override void Definition()
{
ValueOutput<int>("hello", (flow) =>
{
var go = (flow.stack.rootObject as MonoBehaviour).gameObject;
Debug.Log(go, go);
return 1;
});
}
}

15.非继承MonoBehaviour或者UnityEngine.Object的类兼容性不好,体现在运行后声明的变量就没了,需要自己做一些操作。

16.异步Unit节点模板,目前未发现bug:

public class AsyncNodeTest : WaitUnit
{
protected override void Definition()
{
base.Definition();
} protected override IEnumerator Await(Flow flow)
{
yield return new WaitForSeconds(1f);
yield return exit;
}
}

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

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

Unity Visual Scripting 使用随记的更多相关文章

  1. C# 脚本与Unity Visual Scripting 交互,第一步(使用C# 脚本触发Script Graph的事件)(Custom Scripting Event)

    写在前面 感谢Unity 川哥的帮助,解决了单独调用GameObject的需求 首先 需要在Unity 中创建一个自定义事件脚本(注释非常重要) using System.Collections; u ...

  2. Unity接入AbMob踩坑记

    之前是配置好的环境,不知道怎么突然就不正常了. 一直弹出下面的报错: Error running CocoaPods. Please ensure you have at least version ...

  3. Unity打包IOS踩坑记

    1. Xcode不显示模拟器 之前一直用真机调试,就没注意模拟器.今天要上传版本要用到模拟器截图,发现竟然Xcode的运行选项竟然没有显示模拟器. 也是网上找了各种方法,修改各种设置,清了各种文件夹都 ...

  4. BEST FREE UNITY ASSETS – OVER 200 CURATED QUALITY ASSETS

    http://www.procedural-worlds.com/blog/best-free-unity-assets-categorised-mega-list/ BEST FREE UNITY ...

  5. Unity3D开发必备神器(Visual Studio Tools for Unity)

    Unity3D开发必备神器(Visual Studio Tools for Unity) 开发Unity3D程序你用的什么IDE呢? 1.MonoDevelop 2.VS 可能你的回答是这样的,我用的 ...

  6. 转一篇关于Unity的PlayMaker

    这篇文章转自http://va.lent.in/should-you-use-playmaker-in-production/ 此文作者大概深受其苦,吐槽了playmaker的多个蛋疼的地方,这其实说 ...

  7. 从Unity引擎过度到Unreal4引擎(最终版)

    原文地址:http://demo.netfoucs.com/u011707076/article/details/44036839 前言 寒假回家到现在已经有十多天了,这些天回家不是睡就是吃....哎 ...

  8. Unity开发概览(HoloLens开发系列)

    本文翻译自:Unity development overview 要开始使用Unity创建全息应用,点此安装包含Unity HoloLens技术预览的开发工具.Unity HoloLens技术预览基于 ...

  9. Unity编译Android的原理解析和apk打包分析

    作者介绍:张坤 最近由于想在Scene的脚本组件中,调用Android的Activity的相关接口,就需要弄明白Scene和Activity的实际对应关系,并对Unity调用Android的部分原理进 ...

  10. .NET和UNITY版本问题

    亲测:unity5.5之前:通过VS工程属性查看.NET版本为3.5, 对应unity中没有可查看的项,只有一个Api Compatibility level 是.net subset2.0,看名字, ...

随机推荐

  1. 13 CSS 的position属性

    13 CSS 的position属性 就像photoshop中的图层功能会把一整张图片分层一个个图层一样,网页布局中的每一个元素也可以看成是一个个类似图层的层模型.层布局模型就是把网页中的每一个元素看 ...

  2. Docker 解决 `denied: requested access to the resource is denied`

    背景 由于不可描述的原因,相对于以前,最近在更加频繁的迁移服务器,简单的 Shell 脚本已经不能满足需求了,于是将所有的项目 Docker 化. 部分不含敏感配置的项目准备放到 DockerHub ...

  3. 小师妹学JavaIO之:文件写入那些事

    目录 简介 字符输出和字节输出 格式化输出 输出其他对象 在特定的位置写入 给文件加锁 总结 简介 小师妹又对F师兄提了一大堆奇奇怪怪的需求,要格式化输出,要特定的编码输出,要自己定位输出,什么?还要 ...

  4. OpenHarmony Liteos_A内核之iperf3移植心得

    一.iperf3工作原理 iperf3主要的功能是测试基于特定路径的带宽,在客户端和服务器端建立连接(三次握手)后,客户端发送一定大小的数据报并记下发送的时间,或者客户端在一定的时间内发送数据并记下发 ...

  5. Qt调用摄像头一,基础版

    本示例,为纯Qt调用摄像头,功能比较简单,打开摄像头,设置参数,拍照 涉及到的功能有: 获取摄像头列表 获取摄像头分辨率 获取摄像头帧率 获取摄像头支持的视频模式 设置摄像头参数 拍照 此版本的缺点是 ...

  6. ssm 创建bean的三种方式和spring依赖注入的三种方式

    <!--创建bean的第一种方式:使用默认无参构造函数 在默认情况下: 它会根据默认无参构造函数来创建类对象.如果 bean 中没有默认无参构造函数,将会创建失败--> <bean ...

  7. .net core的依赖注入学习

    依赖注入(Dependency Injection,DI),简称DI,它可以降低各模块之间的耦合 首先需要安装两个Nuget包: Microsoft.Extensions.DependencyInje ...

  8. Go命令行工具cobra

    关于 Cobra 是 Go 的 CLI 框架.它包含一个用于创建功能强大的现代 CLI 应用程序的库,以及一个用于快速生成基于 Cobra 的应用程序和命令文件的工具. Cobra 由 Go 项目成员 ...

  9. MySQL—一条查询SQL语句的完整执行流程

    MySQL-一条查询SQL语句的完整执行流程 表结构和数据如下: 我们分析的sql语句如下: select tb_id,tb_name,tb_address from tb_user where tb ...

  10. API 开发的后盾:平台工程提供强力动态支持

    过去几年,开发团队一直在发展传统的 DevOps.一些开发人员认为,CloudOps 或 DeploymentOps 等新实践的兴起将会导致回到孤岛问题.其他人则不愿意在承担所有其他职责之外构建.部署 ...