Modbox可视化脚本语言

2020-10-18 07:10:40

MBScript游戏创建工具Modbox的脚本系统。它没有使用现有的文本脚本语言(如Lua/Javascript),而是出于以下几个原因而设计的:

以允许在没有键盘的情况下进行拖放编辑。在VR\AR中,使用移动设备上的触摸,或使用游戏手柄。

从一开始就设计用于在线工作。所有代码都会自动在线运行,因此设计人员永远不必考虑联网代码。

对MBScript代码所做的所有更改也会实时在线同步到其他播放器,并且可以在播放时进行编辑。

使用与构建Modbox相同的C#类型系统。文字系统用于在编辑可视化脚本时显示正确的选项。

与基于节点的可视脚本(如蓝图/PlayMaker)不同,MBScript可以随时从可视模式切换到文本模式。Modbox附带一个类似VSCode的集成文本编辑器(摩纳哥)。

可以在基于节点的布线系统之间复制和粘贴代码,该布线系统使用MBScript。

它基于事件-事件是世界上任何实体上的任何变量变化或内部事件-因此MBScript代码可以很容易地被其他脚本/MOD挂钩。

这里创建了一个MBScript资源,以便在碰撞速度超过最小破损速度数字变量的情况下使实体的骰子处于碰撞状态。(#39;Min Speed to Break';Number Variable Variable';Min Speed to Break';Number变量)。它还会打印与其发生冲突的图元的名称。

可以使用编辑实体桌面窗口或编辑VR工具创建MBScript资源。每个资源都创建一个新的实体组件实体组件-实体组件位于实体上,并设置其行为和其他属性,如物理/外观。新组件可以采用MBScript或C#编程类型。MBScript资源可以包含在实体预制中-预制是从一个或多个其他实体中创建的实体资源。然后,预制件可以在线共享/在不同的创作之间共享。(ModboxSDK中还使用了Unity的预制系统,虽然功能不同,但功能相同)。

可以随时编辑/运行MBScript(在编辑模式下运行对于创建编辑器工具/操作非常有用。在播放模式下编辑是测试更改的一种简单方法。)。

MBScript还用于创建游戏管理器-这是自动添加到世界中的MBScript资源,可由其他脚本(如单例)轻松访问。

MBScript代码在事件上运行,这允许基于实体或世界上发生的任何事件(例如变量更改值,或者世界事件像玩家加入一样发生)来运行代码。

';上的';行添加事件行,以便在事件上运行代码。然后,您可以添加其他代码行类型来设置值/执行操作:

ForEach-在列表上运行代码。“对这一套中的每一样东西都这样做。可以运行‘ForEach Entity in the world’将其材质更改为Wood‘。

在一段设定的时间后运行代码。还有其他几种行类型:‘local’表示临时变量,Return表示停止运行代码并从事件返回,Repeat表示循环执行设定的次数。

添加代码行后,您可以使用下拉菜单选择变量或设置值。

行尾的‘+’可以用来继续该行的另一个操作。因此,因为“CONTAINS”返回True/False,所以您可以点击“+”按钮并选择“IsFalse”来反转返回值:

您可以继续添加这样的操作。这里选择了实体比例的‘Y’部分,并将其设置为相同的Y值加上一个随机值:

实体及其变量上的组件(如主组件中的名称,或物理组件中的质量)。

要更改变量值,可以使用SET行将其设置为新值(使用";将X设置为Y";)。直接对变量执行操作也很有用:

ForEach;行可用于迭代列表-就像世界上的所有实体列表一样。

可以通过移动拖动手柄来拖动代码行。可以一次选择和移动多行。还可以拖动变量和值以复制它们。

右键单击可用于复制和粘贴MBScript(仅将其作为文本复制到剪贴板)

您可以随时切换到文本模式进行编辑,并自动完成变量名和即时错误更新。

下面是切换到文本模式并进行编辑的同一脚本,检查实体上是否设置了基元组件,如果设置了,则打印实体的物理材质资产物理材质资产-物理材质资产实体的物理属性-包括其质量、物理声音类型和关于损坏/碰撞效果的值: