对象变量
当您单击变量定义按钮时,它将打开对象变量窗口,然后您可以使用该窗口在对象的创建事件之前生成任意数量的变量:
在此窗口中,您可以单击按钮添加将一个新变量 添加到列表。然后,您可以为变量命名,并设置其类型并调整其属性:
变量名称必须以字母开头,并且只能包含字母、数字和下划线符号“_”,最大长度为 64 个符号。 因此,有效变量为 fish、foo_bar、num1,而无效变量为 6fish、foo bar 或 *num。 给出变量名称后,您需要设置其类型,可以是以下任意类型:
值得注意的是,此功能在处理父/子实例时特别有用 - 因为您可以有一个父实例 包含一组已定义变量的对象,然后只需在子对象中修改它们(有关更多详细信息,请参阅下面的对象变量和子对象部分) - 以及当您将实例添加到房间编辑器时(请参阅 层> 实例层部分),因为您还可以为已放置在房间中的各个实例修改这些变量。
下面列出了您可以创建的不同类型的变量:
- 实数:实数是非整数的任何数字,可以是正数也可以是负数。 因此,124.5、45639.566546456、0.9、-45.5 等都是实数示例。 所有实数均存储为 64 位浮点值(双精度)。 实数(和整数) 数据类型有一个用于设置值范围的选项,可通过点击 Options
按钮访问该选项:
当您选中 然后,您可以输入起始值和结束值,并且不会在“对象变量”窗口中为变量显示固定值,而是会看到一个固定为这些值的滑块:

- 整数(Integer):整数是一个整数,可以是正数也可以是负数,例如:30004,19,0,-300。请注意,您可以设置输出整数的值范围,就像上面针对实数所解释的那样。
- 字符串(String):字符串是放在双引号内的任何内容,例如"鱼"、"Hello World"或"12345"。
- 布尔值(Boolean):布尔值为 true 或 false。在对象编辑器变量窗口中,这只显示为一个框,您可以选中 true,取消选中 false。
- 表达式:表达式是一个数学短语,可以包含普通数字、变量、字符串或GML Code函数以及一个或多个运算符。例如sqrt(85 * 6)+ 5.5就是一个表达式。
- 资源(Resource):资源只是您在资源浏览器中定义的任何一个资源。选择此资源类型后,您可以单击打开资源浏览器
按钮打开资源浏览器并选择所需的资源。 - 列表(List):选择列表类型的输入意味着您可以创建一组值(可以是字符串、实数、表达式等),然后您可以选择一个或多个值作为要返回的变量。 要定义列表中的项目,您需要先将它们添加到 Options 中(点击
按钮):
您将能够选择该项目作为变量的默认值 从下拉菜单中打开主窗口:
请注意,如果您在 List Options 中勾选了多选,那么该变量将成为所有选定选项的数组:

- 颜色(Colour):颜色类型用于定义要存储在变量中的颜色值。您可以输入一个实数 (从 0 到 16777216,其 Alpha 值为 255%) 或十六进制值 (格式为 $RRGGBBAA),也可以双击色样上的
以打开 拾色器 并在其中定义颜色。
对象变量和子对象
对象变量的一个重要功能是它们由您在资源浏览器中拥有的任何子对象继承(有关详细信息,请参见父对象一节),这意味着如果愿意,您可以选择覆盖或更改其中的任何一个或全部。
当您创建具有为其定义的变量的另一个对象资源的子对象时,这些变量将显示在对象变量窗口中,如下所示:
您可以在上图中看到父对象有四个对象变量,在下图中也显示了这些变量,只是呈灰色显示,并带有从父对象继承的图标,以指示它们已被继承。然后,如果您单击
覆盖变量按钮
,则可以编辑这些继承的变量,这样您就可以调整范围滑块或值,或者从列表中选择不同的项目,等等。请注意,当您编辑父变量时,您只能更改已定义的值,而不能更改名称,也不能更改变量选项。还要注意的是,您还可以向子对象添加新的对象变量(在上面的示例图像中,您可以看到"字符类型"是仅用于该子对象的新对象变量)。
如果您编辑了继承的对象变量,则可以单击删除
按钮来删除编辑,但不能删除变量。该变量仍将从父级继承,但将再次使用父默认值。如果需要完全删除该变量,则必须从父对象中执行此操作。