persistent

可以读取此变量来查找实例是否标记为持久性,或者它可用于将实例的持久性设置为true(持久性)或false(非持久性)。持久化实例是从一个房间转到另一个房间,这意味着(例如)它只需要在游戏开始时创建一次,并且它将出现在以后的所有房间中。应小心坚持,因为很容易失去对持久实例的跟踪,这可能导致游戏开发后期出现问题。

在房间中创建启用持久性的实例时,此变量将设置为true,并将指定一个图层或深度(取决于用于创建对象实例的函数)。更改房间时,如果下列房间没有与所分配的图层具有相同名称或深度的图层,则将为贯穿这些房间的实例创建新的图层。如果在创建实例时指定了命名层,则新层的名称也与原始层相同,而如果为实例指定了深度,则新层将命名为"_layer_XXX",其中"XXX"是用于给层指定唯一名称的十六进制值。这些层将从房间末端的房间移除。关于层和持久实例,需要注意的是,如果您在创建时为实例分配了命名层,并且以下房间中有另一个层具有相同名称,则不管层的深度如何,持久实例都将被分配给具有相同名称的层。 最后,如果持久实例移动到层深度与实例创建深度相同的房间,则不会将其分配给此层,而是在相同深度创建新层(遵循前面说明的命名约定)。

持久对象仍会触发其Game StartGame EndRoom StartRoom End事件,但是,如果您重新启动游戏(例如,使用game_restart()函数),所有持久对象将被删除,且仅当游戏再次创建时才存在。另外请注意,如果您停用了持久对象,它将不再从一个房间传递到另一个房间,除非在房间结束事件被触发之前重新激活。

 

语法:

persistent;

 

返回:

Boolean

 

例子:

if (!persistent)
{
    persistent = true;
}

上面的代码将检查实例以查看持久性是否标记为false,如果实例不持久,则持久性标志设置为true