如何在 TS 中调用 Editor

题主要在扩展插件中调用Assets资源内的脚本.

所以根据官方例子,

在扩展插件中添加 scene-walker.js,并在其中可以直接 import 或 require Assets 目录中的脚本.

首先用JS编写了脚本,
因为在JS中未存在的变量Editor并不会提示错误
而且在我使用扩展插件调用脚本时,Editor实例已经存在,所以可以直接打印测试数据.

但是在TS中会先提示Editor不存在,并且在调用方法时,也不会调用Editor.log()进行输出

因为提示的原因所以选择TS来编写,而且也比较规范.但原谅题主对TS并不是很了解.所以有此疑惑.

assets目录下创建一个正常的TS脚本,不继承与cc.Class

export class xxx {

 public static Init():void{

      Editor.log("Init");   ->>>>>   Editor不存在  运行时并未打印在控制台上.

 }

}

  • Creator 版本:2.1.3

  • 目标平台: <–编辑器 -->

除了<在调用之前将Editor传入TS的执行方法中>这个方式,还有其他的解决方案吗?

我是忍着用js写的。整个游戏工程我都用了ts。
要不然,你把ts的编译结果放到package里面。。。

:joy: :joy:
我还是决定用TS来写吧, JS没提示 是真的难受.

调用初始化的时候,让TS脚本持有Editor对象,省的每次调用都得传

感觉这个是目前感觉还行的次级方案了.

//@ts-ignore
Editor.log(‘hello world’);
这样就不会报错了

如果只是为了解决TS报错问题,可以试试在文件上面这么写:

declare const Editor: any;

非常感谢 解决问题了.:2:

这种也可以, 非常感谢!!:2::2:

你需要.d.ts头文件,前面在写插件包的时候有找文档写过一份头文件CreatorEditor.rar (4.7 KB)

2赞

:+1::+1::+1::+1::+1:

mark

请问是如何解决调用Editor的,我这个老师不存在,用了论坛回复的办法,只能屏蔽vscode编辑时的错误,但是浏览器运行的时候又显示Editor is not defined