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

news2024/11/17 3:31:55

在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 引擎,但可能会增加沟通成本,导致脚本难以复用。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/972694.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

管理类联考——数学——汇总篇——知识点突破——数据分析——排列组合

角度——🐴 角度——👩 排列组合的基本步骤(固定解题体系) 先取后排:即先取出元素,后排列元素,切勿边取边排. 逐次进行:按照一定的顺序逐次进行排列组合. 实验结束:整个…

vscode保存格式化自动去掉分号、逗号、双引号

之前每次写完代码都是双引号还有分号,看着很难受,就像修改一下,让它变成单引号,并且不加上引号:如下形式,看着简洁清晰明了 修改方式:更改 settings.json 文件 快捷键“Ctrl Shift P”打开命令…

UmeTrack: Unified multi-view end-to-end hand tracking for VR 复现踩坑记录

在 github 上找到了开源代码:https://github.com/facebookresearch/UmeTrack/tree/main 环境配置 运行第三行,报错,缺少torch。改成先运行第四行,成功。 再运行第三行,报错,required to install pyproj…

uniapp 集成蓝牙打印功能(个人测试佳博打印机)

uniapp 集成蓝牙打印功能(个人测试京博打印机) uniapp 集成蓝牙打印功能集成佳博内置的接口 uniapp 集成蓝牙打印功能 大家好今天分析的是uniapp 集成蓝牙打印功能,个人开发是app,应该是支持H5(没试过) 集成佳博内置的接口 下载dome地址&…

空间复杂度和时间复杂度

😜作 者:是江迪呀✒️本文关键词:时间复杂度、空间复杂度、算法☀️每日 一言:车到山前必有路,船到码头自然直! 一、前言 时间复杂度和空间复杂度是算法和数据结构领域中两个重要的概念&#…

服务器(I/O)之多路转接

五种IO模型 1、阻塞等待:在内核将数据准备好之前,系统调用会一直等待。所有的套接字,默认都是阻塞方式。 2、非阻塞等待:如果内核没有将数据准备好,系统调用仍然会返回,并且会返回EWUOLDBLOCK或者EAGAIN错…

springboot邮件发送和接收验证码

springboot邮件篇 要在Internet上提供电子邮件功能,必须有专门的电子邮件服务器。例如现在Internet很多提供邮件服务的厂商:新浪、搜狐、163、QQ邮箱等,他们都有自己的邮件服务器。这些服务器类似于现实生活中的邮局,它主要负责接…

【C语言】辗转相除法求最大公约数(详解)

辗转相除法求最大公约数 辗转相除法(又称欧几里德算法)是一种用于求解两个整数的最大公约数的方法。本文将使用C语言来实现辗转相除法,并对其原理进行解释。 辗转相除法的原理 辗转相除法的原理非常简单。假设有两个整数a和b,其…

Vue+Element-ui+SpringBoot搭建后端汽车租赁管理系统

最近在做项目,花了一周的时间搭建了一个十分完备的汽车租赁后端管理系统。页面采用纯Vue2Element-ui搭建,后端采用SpringbootMybatis搭建,数据库采用Mysql。包括了登录验证,根据不同权限进入不同界面、数据增删改查、表格分页、表…

iOS实时监控与报警器

在现代信息化社会中,即使我们不在电脑前面也能随时获取到最新的数据。而苹果公司提供的iOS推送通知功能为我们带来了一种全新的方式——通过手机接收实时监控和报警信息。 首先让我们了解一下iOS推送通知。它是一个强大且灵活可定制化程度高、适用于各类应用场景&a…

(二十一)大数据实战——Flume数据采集之复制和多路复用案例实战

前言 本节内容我们完成Flume数据采集的一个多路复用案例,使用三台服务器,一台服务器负责采集本地日志数据,通过使用Replicating ChannelSelector选择器,将采集到的数据分发到另外俩台服务器,一台服务器将数据存储到hd…

vue3 封装千分位分隔符自定义指令

toLocaleString作用:在没有指定区域的基本使用时,返回使用默认的语言环境和默认选项格式化的字符串。可点击进入MDN查看 // 千分位分隔符指令 import { Directive, DirectiveBinding } from vueconst thousandSeparator: Directive {mounted(el: any, …

window系统 bat脚本开启和关闭防火墙

前言 手动去关闭和开启防火墙太麻烦 命令 开始防火墙 netsh advfirewall set allprofiles state on关闭防火墙 netsh advfirewall set allprofiles state off

拦截器和异常处理器

拦截器和异常处理器 拦截器 拦截器(Interceptor)&#xff0c;主要完成请求参数的解析、将页面表单参数赋给值栈中相应属性、执行功能检验、程序异常调试等工作。 准备 创建模块 如下为完整的项目结构 web.xml <web-app xmlns"http://xmlns.jcp.org/xml/ns/javaee&qu…

【Linux】高级IO和多路转接 | select/poll/epoll

多路转接和高级IO 咳咳&#xff0c;写的时候出了点问题&#xff0c;标点符号全乱了&#xff08;批量替换了几次&#xff09;&#xff0c;干脆就把全文的逗号和句号都改成英文的了&#xff08;不然代码块里面的代码都是中文标点就跑不动了&#xff09; 1.高级IO 1.1 五种IO模型…

论文阅读《Nougat:Neural Optical Understanding for Academic Documents》

摘要 科学知识主要存储在书籍和科学期刊中&#xff0c;通常以PDF的形式。然而PDF格式会导致语义信息的损失&#xff0c;特别是对于数学表达式。我们提出了Nougat&#xff0c;这是一种视觉transformer模型&#xff0c;它执行OCR任务&#xff0c;用于将科学文档处理成标记语言&a…

【算法】分治法的基本思想和二分搜索的应用

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 更多算法分析与设计知识专栏&#xff1a;算法分析&#x1f525; 给大家跳…

手写Mybatis:第9章-细化XML语句构建器,完善静态SQL解析

文章目录 一、目标&#xff1a;XML语句构建器二、设计&#xff1a;XML语句构建器三、实现&#xff1a;XML语句构建器3.0 引入依赖3.1 工程结构3.2 XML语句构建器关系图3.3 I/O资源扫描3.4 SQL源码3.4.1 SQL对象3.4.2 SQL源码接口3.4.3 原始SQL源码实现类3.4.4 静态SQL源码实现类…

Shopify上线新插件,与TikTok Shop销售集成

近日&#xff0c;Shopify推出一款TikTokShop集成插件&#xff0c;简化商家通过TikTokShop销售的流程&#xff0c;此举是对TikTokShop即将关闭半闭环模式的回应。 不久前&#xff0c;TikTok官方宣布将于9月12日关闭半闭环模式&#xff0c;转而专注于TikTokShop全闭环销售&#…

mysql-1:认识mysql

文章目录 数据库概述什么是数据库什么是关系型数据库 MySQL的概述MySQL是什么MySQL发展历程 SQL的概述什么是SQLSQL发展的简要历史&#xff1a;SQL语言分类 数据库概述 什么是数据库 数据库就是[存储数据的仓库]&#xff0c;其本质是一个[文件系统]&#xff0c;数据按照特定的…