技术干货|Cocos Creator神技之自定义宏剔除无用代码

背景

28870f9565a62a08720ea1d3f3f26027.jpeg

将一些常用的东西都归纳总结起来,形成自己的“框架”,方便后续项目的复用。

这在项目开发中,是司空见惯的操作,也是技术积累的主要方式。

但是随着时间的迁移,这个框架会越来越“臃肿”,并非所有项目都能使用整个框架的功能。

那我们有什么办法解决这个问题呢?

解决办法

针对这种情况,通常有两种比较流行的做法

1、通过引用关系剔除“无用”资源

无用的意思是编辑器检测到没有“引用”,比如 Cocos Creator (后面简称 CC) 中对非动态引用的资源剔除方案,比如 AndroidStudio(后面简称 AS)的shrinkResources配置。

PS1: 因为 Cocos Creator 打包后的资源都不是通过 Android Studio 直接引用的,所以这个字段在 Cocos Creator 发布后的安卓工程中应该要配置为 false )。

值得注意的是,AS 中的代码混淆(minifyEnabled),不但会混淆方法,而且也会将无用的代码剔除,所以如果是通过反射调用的代码,我们也要进行混淆剔除。

PS2: 比如在 CocosCreator 中用 callStaticMethod 方法通过反射方式  js调用 java 代码,那么我们要么不启用混淆,要么将混淆的方法写到proguard-rules.pro文件中.

2、通过宏来剔除代码

语言宏,在 C++、OC 语言中比较常见,比如在 XCode 中,可通过Preprocessor Macros设置宏。

Cocos Creator 中也提供了宏配置方案,用于剔除不必要的代码块。

Cocos Creator 中的宏配置

CC 选择的宏配置方式,与 webpack 是一致的。在Cocos Creator 3.x 以前,只有官方内置的宏(主要是平台宏),这是无法满足我们的项目需求的。

在 Cocos Creator 3.x 中,引擎组开放了自定义宏的方式,使我们拥有了对项目代码的剔除能力。这也是 Cocos Creator 3.x 相对于 2.x 又一个亮点。

e0b310466c60e422728e50e646e4d029.png

接下来我们看看如何使用宏。

1、添加宏

从顶部菜单->项目打开项目设置,选择宏配置。

在打开的面板中,可以看到末尾有一个添加自定义宏按钮。

我们自定义一个宏为 CUSTOM_TEST,如果要启用该宏,打钩即可。

2、使用宏

在代码中,我们直接使用if else 进行判断,编辑器会在编译时自动剔除相关代码。如下:

import { _decorator, Component, Node } from 'cc';
import { CUSTOM_TEST } from 'cc/userland/macro';
const { ccclass, property } = _decorator;

@ccclass('Test')
export class Test extends Component {
    start() {

        if (CUSTOM_TEST) {
            // TODO 宏开启要做的事
        } else {
            // TODO 宏关闭要做的事
        }
    }

}

通过开关 CUSTOM_TEST 宏,分别打出两个包,查看包内内容即可看到差异。

结尾

本次分享的功能是 Cocos Creator 的基本功能,非常简单。只是感觉很多人还没用过甚至不知道,所以分享出来,希望对大家有所帮助。

关于作者

d8495fc081082ce1c96c352f322e0f37.jpeg
  • 网络常用昵称:dream93

  • 坐标:长沙

  • 简介:原来做 APP 开发,后来入行游戏行业后,一直使用 Cocos Creator。喜欢活跃在各类技术交流社区。目前在一家研发一体的小游戏公司研究各种工具链,移植轮子,造轮子。希望自己的分享能够帮助到有需要的人。

  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值