invoke_script
简介
提供一套接口用于调用自定义脚本函数,可以在一个目录中创建一批脚本,脚本中定义一些函数,通过字符串去调用它们,并且在调用后进行缓存,避免每次都根据名字取查找。
目的
- 方便上层扩展,触发者不需要关心上层如何处理 ,也不关心是否有人处理
- 逻辑解耦,去除模块间的相互依赖
组件接口
invoke_script.gs
函数原型 | 函数作用 |
---|---|
void add_base_path(string path) | 设置基础路径 |
void load_all_scripts() | 加载所有函数,加载过程会跨域,如果出问题可以提前加载 |
void clear() | 清空所有缓存的函数 |
void clear_cache(string name) | 清空某个函数缓存 |
mixed assure_invoke(string name, ...) | 调用并确保目标存在,不存在就报错 |
mixed invoke(string name, ...) | 调用,不存在则忽略 |
mixed invoke_any(array names, ...) | 调用,不存在则忽略,names里的任何函数执行一个就退出,主要是用来兼容engine0调用的脚本改名了提醒项目使用的脚本更名 |
样例
public void sample()
{
// 创建好的房间对象
object room_ob = this;
invoke_script.invoke("ROOM.notity_room_created", room_ob);
}