针对 Cocos Creator 2.x 用户
节点上 UI 相关接口变更如下:
与坐标变换计算相关的接口(例如:size 和 anchor)变更如下:
需要先获取节点上的 UITransform 组件,再使用对应的接口,例如:
const uiTrans = node.getComponent(UITransform)!;uiTrans.anchorX = 0.5;uiTrans.setContentSize(size);
其余接口变更如下:
color:需要先获取节点上的渲染组件(例如:Sprite 组件),再使用对应的接口。
opacity:如果节点上有渲染组件,直接设置渲染组件的 color。如果没有渲染组件,则可以通过添加 UIOpacity 组件,并设置相关属性。
skew:该接口已被移除。
group:变更为 layer。
zIndex:变更为 UITransform 中的 priority。
注意:从 v3.1 开始,
priority属性已弃用,若需要调整节点树的顺序请使用setSiblingIndex方法。
CCSpriteFrame:
移除接口:copyWithZone、copy、clone 和 ensureLoadTexture。
变更接口:
setFlipX 和 isFlipX -> flipUVX
setFlipY 和 isFlipY -> flipUVY
getTexture 和 setTexture -> texture(此处的类型是 Texture2D/RenderTexture)。
其余 get 和 set 对应的方法在 3.0 中都直接对应同名属性(例如:getOffset -> offset)。
CCTexture2D:
变更接口:genMipmaps -> mipmaps、initWithElement -> image。
initWithData 整个方法被移除,类似的使用是将原先要传入的 ArrayBufferView 数据,传给新建的 ImageAsset,然后再用 ImageAsset 传给新建的 Texture2D,从而获得一份图片资源。
cc.Action:相关接口全部移除。
物理:
2D 变更组件:cc.Collider -> Collider2D、cc.BoxCollider -> BoxCollider2D、cc.RigidBody -> RigidBody2D 等。
3D 变更组件:cc.Collider3D -> Collider、cc.BoxCollider3D -> BoxCollider、cc.RigidBody3D -> RigidBody 等。
tween:
cc.repeatForever -> Tween.repeatForever、cc.reverseTime -> Tween.reverseTime、cc.show -> Tween.show 等。动画:
addClip -> createState、getClips -> clips、playAdditive -> crossFade、getAnimationState -> getState 等。相机:
移除接口:findCamera、alignWithScreen、main、cameras、 zoomRatio 和 containsNode。
变更接口:backgroundColor -> clearColor、cullingMask -> visibility、depth -> clearDepth、getScreenToWorldPoint -> screenToWorld、getWorldToScreenPoint -> worldToScreen、getRay -> screenPointToRay 等。
音频:
getLoop 和 setLoop -> loop、getVolume 和 setVolume -> volume、getCurrentTime 和 setCurrentTime -> currentTime、src -> clip。材质:
所有相关改动都需要获得 MeshRenderer 或其子类身上的 材质实例 来完成。
移除接口:setBlend、setDepth、setStencilEnabled、setStencil、setCullMode 和 define,其中除了 define 是调用 recompileShaders 完成更新,其余的都是调用 overridePipelineStates 完成更新。
sys 下的平台变量变更如下:
| Cocos Creator 2.x | Cocos Creator 3.0 |
|---|---|
BAIDU_GAME | BAIDU_MINI_GAME |
VIVO_GAME | VIVO_MINI_GAME |
OPPO_GAME | OPPO_MINI_GAME |
HUAWEI_GAME | HUAWEI_QUICK_GAME |
XIAOMI_GAME | XIAOMI_QUICK_GAME |
JKW_GAME | COCOSPLAY |
ALIPAY_GAME | ALIPAY_MINI_GAME |
BYTEDANCE_GAME | BYTEDANCE_MINI_GAME |
| Cocos Creator 2.x | Cocos Creator 3.0 |
|---|---|
CC_BUILD | BUILD |
CC_TEST | TEST |
CC_EDITOR | EDITOR |
CC_PREVIEW | PREVIEW |
CC_DEV | DEV |
CC_DEBUG | DEBUG |
CC_JSB | JSB |
CC_WECHATGAME | WECHATGAME |
CC_RUNTIME | RUNTIME_BASED |
CC_SUPPORT_JIT | SUPPORT_JIT |
动态加载资源:
在 v3.0 中使用 bundle.load 或 resources.load 动态加载 sprite-frame 或 texture 时,需要将路径指定到具体的子资源:
// 加载 texture// v2.xresources.load('background', cc.Texture2D, () => {});// v3.0resources.load('background/texture', Texture2D, () => {});
// 加载 sprite frame// v2.xresources.load('background', cc.SpriteFrame, () => {});// v3.0resources.load('background/spriteFrame', SpriteFrame, () => {}); 下一篇:专升本C语言——第十章