调用引擎 API 和项目脚本

    • 遍历场景中的节点,获取或改动数据
    • 调用项目中的其他脚本完成工作

    首先在 package.json 里添加 scene-script 字段,该字段的值是一个脚本文件的路径,相对于扩展包目录:

    该路径将指向 packages/foobar/scene-walker.js,接下来我们看看如何编写场景脚本。

    需要用这样的形式定义:

    接下来在扩展包程序的主进程和渲染进程中,都可以使用下面的接口来向 scene-walker.js 发送消息(假设扩展包名是 foobar):

    这样就可以在扩展包中获取到场景里的 Canvas 根节点有多少子节点,当然还可以用来对场景节点进行更多的查询和操作。

    在发送消息时 接受的参数输入和其他 IPC 消息发送接口一致,也可以指定更多传参和 timeout 超时时限。详情请看 IPC 工作流程

    除了通过 cc.find 在场景脚本中获取特定节点,并操作该节点和挂载的组件以外,我们还可以引用项目中的非组件模块,或者通过全局变量访问插件脚本。

    注意,要使用和项目脚本相同的模块引用机制,在场景脚本里必须使用 cc.require 的写法。

    引用插件脚本

    直接使用 window.globalVar 来访问插件脚本里声明的全局变量和方法即可。