调用Lua的简易触发器
From Valve Developer Community
< Dota 2 创意工坊工具集 | 脚本编写
- 步骤 1: 在确认你选择了"toolstrigger.vmat"材质之后,使用方块工具(⇧ Shift+B)创建一个方块,这个方块将会成为一个触发区域。
- 步骤 2: 选择你所创建的方块,并点击 Tools(工具) > Tie To Entity(绑定到实体) (Ctrl+T). 这将会将你所创建的方块转换为触发实体。
- 步骤 3: 选择触发实体,将它的类(class)改为"trigger_hero",这个触发实体意味着它将会在一个玩家进入或者离开触发区域的时候被触发,当然,还有很多触发类型,不过在本例中我们尽量做得简单一些。
- 步骤 4: 为你的触发实体设置一个名字,同时设置它所指向的Lua程序文件,里面包含着你实体所要调用的函数。例如:如果你想从
scripts/vscripts/my_file.lua
调用一个函数,你需要设置为Entity Scripts: my_file.lua
-
警告: 当你将实体的指向Lua文件设置为 Entity Scripts: my_file.lua,游戏在开始运行的时候,将会调用
my_file.lua
中的Activate
函数(如果有这么一个函数的话),所以,除非你想让addon_game_mode.lua
中的Activate
函数被多次调用,否则不要将指向文件设置为addon_game_mode.lua
。
- 步骤 5: 在选中了触发实体之后,按 Alt+↵ Enter 键来打开实体属性面板,然后选择输出(Output)选项卡。
- 步骤 6: 点击 "Add" (添加)按钮,添加一个名为 "OnStartTouch"(当开始接触)的输出,将这个触发实体设置为目标(Target),输入(Input)设置为 "CallScriptFunction",参数(parameter)为你所要调用的lua文件中的函数名。
- Step 7: 添加一个同样的输出,将名称改为 "OnEndTouch"(当结束接触),将参数(parameter)改为另一个函数。
在Lua中的函数实例:
function OnStartTouch(trigger) print(trigger.activator) print(trigger.caller) end function OnEndTouch(trigger) print(trigger.activator) print(trigger.caller) end
由AMHC团队汉化 | 汉化问题反馈