Unity3d可视化脚本框架如何在场景后工作?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity3d可视化脚本框架如何在场景后工作?相关的知识,希望对你有一定的参考价值。

我想知道在unity3d中使用可视化脚本工具时会发生什么。

假设我想制作一个FSM:

第一种方法是我不使用这样的工具。在这种情况下,我应该在源代码(C#)中执行所有操作,这意味着创建所有必需的类并手动连接整个状态机。

第二种方法是当我使用像BoltNodeCanvas这样的工具时。我仍然需要编写State类,但这次,通过基于节点的图形编辑器可视化地完成它们的连接。

问题是,这些工具如何将该图转换为Unity可以使用的东西?他们是否使用像T4 Templating Engine这样的模板引擎根据图形生成C#代码?或者他们做了别的什么?

答案

他们可以生成一些C#代码或将图形定义保存到文件中,为游戏添加运行时执行引擎并在游戏运行时解释这些引擎。他们也可能采取混合方法或进行一些性能优化。因此,无论哪种方式都可行,您应该参考工具的设计文档来确保。

至于博尔特,this在开发者的官方博客上发布,暗示当前的稳定版本不会生成任何C#代码。但显然团队正在积极开发支持代码生成的新版本。

我们目前正在积极研究Bolt 2,这是一个主要的新版本,包括大规模的大修和新功能,如C#生成,类,垂直流,补间,泛型,全新外观等等。

至于NodeCanvas,我不确定它是否生成任何C#代码,但从资产商店的包内容来看,看起来它的工作方式与Bolt类似。

另一答案

你必须了解lexer and parser才能完全理解它。

当你以非图形的方式写东西时,计算机会以机器可读的格式转换那段代码或代码,因为计算机甚至无法区分ab。它将它转换为binaryhexa(后来甚至变成了binary)。

现在的问题仍然是视觉脚本如何工作?

好的,开发人员有自己的词法分析器和解析器,他们遍历这些可视化组件并从中创建代码,然后根据语言进行解释或编译。

如你想了解Unity,它基于C#,它将被编译。

以上是关于Unity3d可视化脚本框架如何在场景后工作?的主要内容,如果未能解决你的问题,请参考以下文章

Unity3D--武器可视化窗口(支持移动和电脑设备)

Unity3d如何写一个用可视化的按钮控制物体的显示和隐藏的脚本?

Unity3D--武器可视化窗口(支持移动和电脑设备)

Unity3D--武器可视化窗口(支持移动和电脑设备)

如何用PS制作Unity3D场景资源

如何评价cocos creator,与unity比的优劣势