CocosCreator3.8研究笔记(五)CocosCreator 脚本说明及使用(下)


在Cocos Creator中,脚本代码文件分为模块和插件两种方式:

  • 模块一般就是项目的脚本,包含项目中创建的代码、引擎模块、第三方模块

  • 插件脚本,是指从 Cocos Creator 属性检查器中导入的插件,一般是引入第三方引入库文件,目前 Cocos Creator 只支持 javaScript 脚本插件。Cocos Creator会向插件脚本内容中,插入一些代码,适配Creator,并且会屏蔽全局变量 model 、exports 、define 。

上一篇文章主要介绍了脚本模块,感兴趣的朋友前往查看:CocosCreator3.8研究笔记(四)CocosCreator 脚本说明及使用(上)


这篇文章主要介绍CocosCreator中的插件脚本的使用和注意事项。


1、导入插件脚本

当脚本资源导入到 资源管理器 后,在 属性检查器 中设置了 导入为插件,此脚本资源便称为 插件脚本

插件脚本通常用于引入第三方库,目前仅支持 JavaScript 插件脚本。


在这里插入图片描述


在这里插入图片描述


2、模拟全局变量

很多第三方 JavaScript 库以全局变量的方式提供库的功能,这些库往往会写入全局变量 windowglobalselfthis 中。


但这些全局变量不一定是跨平台的,为了方便,Creator 在导入插件脚本时,提供了 模拟全局变量 选项。


在这里插入图片描述


开启后,Creator 将插入必要的代码以模拟这些全局变量,其效果类似于:

(function() {
    const window = globalThis;
    const global = globalThis;
    const self = globalThis;

    (function() {
        /* 原始代码 */
    }).call(this);

}).call(this);

3、控制插件脚本在某些环境下执行

选项影响平台备注
允许 Web 平台加载浏览器、网页预览、编辑器默认启用,禁用时会连带 允许编辑器加载 一起禁用
允许编辑器加载编辑器默认禁用,如果编辑器中的其它普通脚本加载过程中会依赖当前脚本,则需要 手动开启 这个选项。 开启后,脚本内不在任何函数内声明的局部变量 不会 暴露成全局变量,所以全局变量需要用 window.abc = 0 的方式定义才能生效。
允许 Native 平台加载原生平台、模拟器预览默认启用

在导入检查器中,开发者可以指定依赖关系以确保脚本的执行顺序。


4、插件脚本使用注意事项

  • 当JavaScript脚本导入为插件后, Creator 不会修改插件脚本的内容,但可能会插入一些代码以适配 Creator,Creator 将屏蔽全局变量 moduleexportsdefine

  • 插件脚本几乎会原封不动地拷贝到构建目录,插件脚本的可用性与跨平台性不受 Creator 保障。

    例如:很多 npm 模块都直接或间接依赖于 node.js,这样原生或网页平台不能使用。

    例如:网页中使用大量的前端插件, jQuery 等,需要依赖于浏览器的 DOM API,这样不能用于原生平台中。

  • 插件脚本与非插件脚本无法以导入形式交互,一般以全局变量的方式来通讯。

    例如:开发者知道插件目标平台实际支持 CommonJS,也不能在非插件脚本中强行通过 require 相对路径进行使用。

  • 谨慎使用全局变量,当要用全局变量时,应该清楚自己在做什么,不推荐滥用全局变量,即使要用也最好保证全局变量为 只读 状态。

  • 添加全局变量时,不要和系统已有的全局变量重名。

  • 可以在插件脚本中自由封装或者扩展 Cocos Creator 引擎,但可能会增加沟通成本,导致脚本难以复用。


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

w风雨无阻w

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值