针对 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.x
resources.load('background', cc.Texture2D, () => {});
// v3.0
resources.load('background/texture', Texture2D, () => {});
// 加载 sprite frame

// v2.x
resources.load('background', cc.SpriteFrame, () => {});
// v3.0
resources.load('background/spriteFrame', SpriteFrame, () => {});