如果自定义更多的宏

现在用于区分平台的宏就一个CC_WECHATGAME,有人知道怎么添加更多的宏吗?
平台多了,不区分代码一直膨胀。

注意,我说的不是cc.sys.下的平台标记,cc.sys下的并不能在编译时屏蔽代码。

CC_WECHATGAME这个宏要咋用???
if (CC_WECHATGAME)
{
cc.log(“11111111111111”)
}
else
{
cc.log(“222222222222222”)
}
我这样写的。。。
2.2.1版本构建出来的微信小游戏发现 1和2都在代码里。。。
:12:

cc.sys.platform === cc.sys.WECHAT_GAME

OS_IOS
OS_ANDROID
OS_WINDOWS
OS_MARMALADE
OS_LINUX
OS_BADA
OS_BLACKBERRY
OS_OSX
OS_WP8
OS_WINRT
OS_UNKNOWN
UNKNOWN
WIN32
LINUX
MACOS
ANDROID
IPHONE
IPAD
BLACKBERRY
NACL
EMSCRIPTEN
TIZEN
WINRT
WP8
MOBILE_BROWSER
DESKTOP_BROWSER
EDITOR_PAGE
EDITOR_CORE
WECHAT_GAME
QQ_PLAY
FB_PLAYABLE_ADS
BAIDU_GAME
VIVO_GAME
OPPO_GAME
HUAWEI_GAME
XIAOMI_GAME
JKW_GAME
ALIPAY_GAME
BROWSER_TYPE_WECHAT
BROWSER_TYPE_WECHAT_GAME
BROWSER_TYPE_WECHAT_GAME_SUB
BROWSER_TYPE_BAIDU_GAME
BROWSER_TYPE_BAIDU_GAME_SUB
BROWSER_TYPE_XIAOMI_GAME
BROWSER_TYPE_ALIPAY_GAME
BROWSER_TYPE_QQ_PLAY
BROWSER_TYPE_ANDROID
BROWSER_TYPE_IE
BROWSER_TYPE_EDGE
BROWSER_TYPE_QQ
BROWSER_TYPE_MOBILE_QQ
BROWSER_TYPE_UC
BROWSER_TYPE_UCBS
BROWSER_TYPE_360
BROWSER_TYPE_BAIDU_APP
BROWSER_TYPE_BAIDU
BROWSER_TYPE_MAXTHON
BROWSER_TYPE_OPERA
BROWSER_TYPE_OUPENG
BROWSER_TYPE_MIUI
BROWSER_TYPE_FIREFOX
BROWSER_TYPE_SAFARI
BROWSER_TYPE_CHROME
BROWSER_TYPE_LIEBAO
BROWSER_TYPE_QZONE
BROWSER_TYPE_SOUGOU
BROWSER_TYPE_UNKNOWN

来源:https://docs.cocos.com/creator/api/zh/classes/sys.html

解决了吗,我也在思考这个问题,多个平台时很有用,而且能把其他平台的代码给去掉

构建过程,代码在压缩编译的时候,能把判定永远走不到的分支删除吗

祖传之法不可变。

脚本语言你还要JS怎样

我目前的解决方法:写个工具将代码里的平台判断代码如 cc.sys.platform === cc.sys.WECHAT_GAME 替换成true或false,这样代码就会变成 if(false){代码},显然这里的【代码】是铁定无法运行到的。
然后用terser再压一遍,terser就会把铁定无法运行到的代码剔除掉。
cocos本身的宏也是这个原理(terser可以定义宏)

1赞

egret(白鹭) 是可以自定义宏的。现在cocos官方有支持,或者有打算支持么?