变量作用域机制
在 AVGPlus 中,有三种不同作用域的变量对象,并且可以直接在脚本中访问。分别是 全局临时变量、存档变量、周目变量。
名称 | 对象变量名 | 作用域 |
---|---|---|
全局临时变量 | $data |
游戏进程存在时一直存在于内存中,游戏结束后会清除,可跨脚本使用 |
存档变量 | $archive |
会随每次执行存档时,保存到存档文件中,下次读档时加载 |
周目变量 | $persistence |
永久储存的数据(除非游戏卸载),不管存档和任意时候,都是独立的 |
1. 全局临时变量¶
全局临时变量 的对象名为 $data
, 它是一个可以跨脚本的变量,在游戏进程启动之后,会始终存在,直至游戏进程结束会被清除。它本身是个 Object, 可以赋值任意内容。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
我们可以在任意脚本中使用 $data
,所有脚本都共享同一个 $data
。它是**全局唯一的**。
伴随游戏结束,$data
的内容就会被清除,不会永久保存。
使用场合
一般用于存放需要跨脚本的临时变量,如定义一些跨脚本的公共的方法和公共的变量等,比如定义一个角色的名字(如:$data.charName="李狗蛋"
),可以在所有脚本中通过 $data.charName
特定的变量访问到这个名字。
2. 存档变量¶
存档变量 的对象名为$archive
,它的用法和全局临时变量完全一致。区别在于,它的内容会随着保存到存档文件中。每执行存档操作时,$archive
的内容就会被保存到存档文件中。同理,下次读档时,对应的内容也会被重新加载到 $archive
。
使用场合
存档变量一般用于保存一些可能随游戏故事进程变化的变量,最典型的比如说角色的 好感度,可以储存到 $archive
中。
3. 周目变量¶
周目变量 的对象名为$persistence
. 周目变量会永久随游戏保存,除非卸载游戏,否则它会一直存在。周目变量在任意字段赋值,或出现变更后,会自动把数据写到硬盘上。
使用场合
这个对象的名称应该很能说明问题啦~ 一般用来储存一些全局成就类的数据。比如部分有多周目结局的游戏,可通过该变量来储存周目的解锁状态。