• 产品手册
  • 编辑器功能手册
  • 触发器相关
  • 触发器变量作用域

触发器变量作用域

作用域是指在程序中定义变量时,该变量所能被访问到的范围。作用域规定了变量的可见性和生命周期。

作用域的一个重要概念是变量的隐藏。当在局部作用域中定义一个与全局作用域中同名的变量时,局部作用域中的变量会“隐藏”全局作用域中的变量。这意味着在局部作用域内部,访问该变量时会使用局部作用域中的值,而不是全局作用域中的值。只有离开局部作用域后,才能再次访问到全局作用域中的变量。

作用域的存在可以确保变量的命名不会冲突,并且提供了一定程度的封装和隔离性,使得程序更加可靠和可维护。

变量在触发器中的类型

以作用域来划分: 全局变量 函数局部变量 触发局部变量 子触发器局部变量 组变量 【项目变量】:之后随着项目级触发器功能引入项目级作用域 以类型来划分: 对象型变量 单位、单位组、玩家组、单位命令 非对象类型 字符串、实数、整数、布尔值

变量作用域演示 1

此次变量使用以下 4 种变量

全局字符串

全局单位类型

局部字符串

局部单位类型

  1. 首先打印每个类型的初始值

TVAD1

2.其次通过子触发器修改这 4 个变量的值并打印

TVAD2

TVAD3

3.通过另一个子触发器来打印修改是否应用到全局

TVAD4

变量作用域演示 2

此次变量使用以下 2 种变量 全局单位组

局部单位组

1.首先打印每个类型的初始值

TVAD5

TVAD6

2.其次通过子触发器给单位组各自增加单位数量并打印

TVAD7

TVAD8

TVAD9

3.通过其他子触发器打印单位组数量.

TVAD10

TVAD11

变量作用域总结

子触发器内部对于赋值运算只会在子触发器内部生效,不会影响外部

对象型变量如:单位组、玩家组等,对单位组进行操作会同步影响到外部,对单位的单位属性修改也是同理

【后期版本若出现局部变量与子触发器变量重名情况,则子触发器只能引用到内部的同名变量】

TVAD12

TVAD13

其中可以看到局部变量与子触发器内部都有同名变量:局部字符串 但当子触发器内部想修改外部同名变量时是无法选中的