变量
变量有三种生命周期:临时、实体和上下文:
- 临时变量(例如
temp.moo = 1;)是可读写的,并且在定义它们的范围内有效。出于性能原因,它们的生存周期对当前执行的表达式是全局的,并且可能在为表达式定义它们的最外层作用域之外返回一个有效值 - 实体变量(例如
variable.moo = 1;)是可读写的,它们的值将会存储在实体上。请注意,退出和重新加载世界将重新初始化这些变量,同样,如果实体被销毁,其上的任何变量都将丢失 - 上下文变量(例如
context.moo)是只读的,对它们运行的表达式有效。游戏定义了这些变量,每个变量的详细信息将在表达式所在的区域的文档中提供
公共变量
一般来说,实体变量是该实体的私有变量,不能被其他实体访问,要将变量的访问权限公开给其他实体,需要在实体的资源文件中调整该变量的public设置,我们也建议对变量进行初始化:
{
"format_version": "1.10.0",
"minecraft:client_entity": {
"description": {
"scripts": {
"variables": {
"variable.oink": "public" // 将变量设置为公共变量
},
"initialize": [
"variable.oink = 0;" // 初始化变量
],
},
}
}
}