我想知道在unity3d中使用可视化脚本工具会发生什么。
假设我想做一个FSM:
第一种方法是当我不使用这样的工具时。在这种情况下,我应该在源代码(C#)中做所有事情,这意味着创建所有必要的类并手动连接整个状态机。
第二种方法是当我使用像螺栓或NodeCanvas这样的工具时。我仍然需要编写State类,但这一次,通过基于节点的图形编辑器将它们连接起来。
问题是,这些工具是如何将图形转换成某种统一可以使用的东西的?他们是否使用像C#这样的模板引擎根据图形生成T4模板引擎代码?或者他们还做了别的什么?
发布于 2020-03-14 12:02:47
统一有编辑器/播放模式/运行时模式。在编辑器模式下,绘图您的设计将保存在文件中。一些工具使用自定义格式二进制文件、json或其他。例如,LogicForge使用脚本对象来完全兼容团结依赖关系和序列化管理。图形可以在编辑器和/或播放模式下设计。逻辑伪造支持两者,因为在游戏模式中,您可以立即看到您的设计正在做什么。节点可以表示原子函数或复杂组件。如果可视化工具让您有机会设计自己的节点,并且在设计中自动创建任何MonoBehaviour脚本的节点,这是很好的。节点可以是动态的,也可以是静态的,已经编码了。动态节点使用反射来创建函数、播放模式/运行时。它们使用缓存和IL创建的代理程序进行优化。可以在更改图形时生成代码,但需要等待长时间的重新编译,或者根据请求生成代码。工具可以选择紧凑的设计,创建代码和更复杂的节点从设计。
图形资产可以附加到GameObject并随场景一起加载,也可以作为资源运行时加载,然后实施读取序列化数据并在游戏对象上创建组件。
有些工具结合了FSM,这样您就可以根据条件在不同的图形设计/逻辑之间切换。Logic有基于通用事件的FSM和动画可玩混合器(您不需要使用Mecanim)
https://stackoverflow.com/questions/55661578
复制相似问题