V3.5.1 adds two far-reaching experimental features without affecting the stability of the original functionality of V3.5.0. The first is the Smart Material Conversion which permit to import DCC default materials from FBX, restoring the materials and appearance created by artist in various DCC tools. The second is a series of built-in Surface Shader material resources, which will be the cornerstone of material customization in the future. In addition, we have shipped with this version a series of critical fixes, experience optimizations, and numerous documentation optimizations. We strongly recommend that all 3.x users upgrade.
Important Updates
Experimental: FBX Smart Material Conversion
FBX Smart Material Conversion is a feature in the model importer that assists in converting materials. It maps some of the standard materials exported from various DCC tools directly to Cocos Creator's built-in materials, restoring as much as possible the material effects seen by the artist in the DCC tools. This feature supports some of the standard materials in mainstream DCC tools: 3ds Max, Blender, Maya, C4D.
You can compare the effect of the Standard Surface material in Maya after importing it into Cocos Creator:
Appearence in Maya tools
Appearence in Cocos Creator after turning on FBX Smart Material Conversion
We will also continue to optimize the model and material import experience in 3.6, so stay tuned.
Experimental: New Surface Shader
Since version 3.0, many developers have experienced the problem of materials not working properly during the upgrade process and need to migrate. The root cause of this problem is that the engine's lighting model and surface material calculations are being adjusted along the way, which affects all related material effect codes and also affects the compatibility of these materials when reused by users.
In order to improve the compatibility of the material system, we have added a series of Surface Shader resources that abstract the lighting model and surface material calculations in the engine, so that future developers can use these built-in headers and functions to greatly simplify the effect resources they write. At the same time, due to the abstraction, cross-version compatibility will also be more secure.
In v3.5.0, we updated the API documentation page with a new version, which was well received by developers with some important feedbacks. In v3.5.1, we continued to do a lot of documentation checks, with nearly 40 PRs to further complete some remaining API documentation and fix some documentation errors. We hope to bring developers a better and better documentation experience.
Important fixes
1. Fix the problem of slow preview speed on browsers
2. Fix the problem that the preview is not available on Mobile Safari.
3. Fix the problem that some materials cannot be upgraded automatically from 3.4.2 or lower version
4. Fix the possible error and performance problem of 3D particle system when switching states
5. Fix the light and shadow effects of deferred pipeline.
Detailed Updates
[FEATURE] Add smart material conversion for FBX importer
We added the Marionette animation system in v3.4 for complex character animation. It supports state machine editing and weighted blending. In v3.5, we added several crucial new features to the Marionette animation system. Layer and skeleton masks are the most important updates because they allow the developer to separate animation blending for different character parts.
Improvement for 2D-only projects
For 2D users and 2D projects, we have improved the user experience in the editor. It's been a very popular request for 2.x users when they consider upgrading. We have progressively improved things and will continue to do so. In v3.5, you can see the following changes:
All scenes created in 2D projects will only contain a default canvas and a 2D camera (ortho projection).
The scene view is in 2D mode by default.
Some inspector is adjusted for 2D editing.
All 3D modules are not selected by default, and there won’t be 3D features in the additional component panel and node creation panel.
If you want 3D features back, you can just select 3D modules back in the project settings.
Frame Pacing Library (Swappy)
For quite a while, we have been working with Google to bring a better Android development experience to our developers.We are proud to announce Frame Pacing Library has been integrated into v3.5. It's part of the Android Game Development Kit (AGDK). It helps OpenGL and Vulkan games achieve smooth rendering and correct frame pacing on Android. You can activate Frame Pacing in the Android build panel.
Geometry Renderer
A new simple geometry render API is introduced in v3.5. It's designed for simple debug rendering using prebuilt primitive geometry types. It supports lines, boxes, spheres, polygons, etc. You can draw them in wireframe or solid mesh. All drawing geometries are in world space with a configurable transform. Furthermore, some geometries can be affected by real-time lighting.
Detailed functionalities are shown in the following chart.
Material editing improvement
We have put a lot of effort into visual effect upgrades in the past versions. Meanwhile, we have also started to invest in improving the DCC workflow. We are starting to ship some improvements in v3.5.0, and you will see much more coming in future releases. Here are what you can expect in this version:
You will no longer need to dump material and modify it into a new one, you can directly modify the imported material of the FBX/GLTF.
While you edit the material, you can now use undo / redo to reverse or rewind actions.
When switching effects during editing, the same properties (e.g. 'mainTexture') will be cached and retained.
Flatten tool in the terrain editor
Terrain editor now has new brush modes Flatten and SetHeight with a height parameter. It's for more effortless sculpting fixed height planes in the terrain editor.
Platform Abstraction Layer
In v3.5, we assembled all platform-related low-level adaptations into Platform Abstraction Layer, including system info, window adaptation, audio, input, etc. The distribution of system-level events is also unified. This is a low-level refactorization, developer-level API hasn't been affected, but it will allow Cocos to adapt to new environments more easily.
Various performance optimization
We continue to improve performance in v3.5, here are the most visible ones.
The performance of spine and dragonbones on native platforms has been improved by reusing the same buffers between native and JS instead of copying them in previous versions.
Optimized memory occupation of RealCurve, CurveRange.
Optimized decorator performance for particle system instantiation.
Improved WebSocket power consumption on Android by using okhttp for implementation.
Improved Label and Graphics render performance on native with less invocation from native to js.
API documentation redesign
We are genuinely sorry that the previous API documentation usage experience is relatively poor, making the user's learning curve steeper. In v3.5, we are using a new generator to make it more clear and more reliable. It's just a start, and we will continue to improve the content of API documentation in the following months.
To better support open source community, we have merged our engine native repository into engine repository, and it has been transferred to cocos/cocos-engine. Since now, we will be more open by maintaining public issues and public projects. If you are using customized engine, you must pay attention to this change, from v3.5, you only need to clone one engine repository. All customizations in typescript engine can be rebased to v3.5, but previous customizations in native engine must be reapplied manually through diffs. You can refer to the engine customization documentation.
From version 3.5.0,please do not set an using node as the target of sp.Skeleton’s (or dragonBones.ArmatureDisplay) sockets directly, otherwise the transform parameters (Position, Rotation and Scale) will be overritten. The correct way is creating an empty node as the target node, and setting components which to be attached to Skeleton component as children of the target node. For more details and examples please read the Spine Attachment documentation.
Instead of global configuration of shadow bias, now we support individual shadow bias configuration for models, this allows detailed control of shadow effect on simple or complex surfaces. If you have any custom effect, please refer to the upgrade documentation for enabling it.
The effect syntax for Macro Tags and Functional Macros have been upgraded to avoid the occupation of standard glsl define, old effects in project will be upgrade automatically, but if you are using external effects without meta or writing a new one, you have to pay attention.
New syntax for Macro Tag: `#pragma define-meta`
New syntax for Funtional Macro: `#pragma define`
Known issues
On iOS 15.4, Apple enabled experimental feature "WebGL via Metal" by default, it's causing some games to have serious rendering issue (graphics not refreshing, strange artifact etc). It's been tracked in the issue, the temporary workaround is to disable `ENABLE_WEBGL_ANTIALIAS` macro in project settings (only disable it for iOS build is suggested). It will probably be fixed in future iOS versions.
Cocos Creator v2.4.9 focused on fixing some 2.x related problems recently discovered, focusing on improving the stability of the editor and engine. And solved some of the obstacles affecting games publish on the native mobile platform. It is recommended that all 2.x users upgrade. This version has not broken the compatibility of projects and plugins, please refer to the upgrade instructions of 2.4.7 to update.We will continue to deliver critical bug fixes in 2022, as planned at the time of the 3.0 general release. These fixes will only be optimized around stability and usability, so it is no longer recommended for new users or new projects to choose 2.4, please use the 3.x version for development.
Stack Changes
Upgrade okhttp to 3.12.14 to avoid compatibility issues when publishing to Google Play [#4264].
Upgrade OpenSSL to 1.1.1g to avoid compilation problems with NDK 22 [#4282].
Editor
Fixed an issue that the building process may get stuck on some Mac devices.
Fixed an issue that the compiling process fails with app bundle option checked when building package for Android platform.
Fixed an issue that some error occurs when building package for Google Play Instant.
Fixed an issue that the scale of the parent node of Main Camera can not be animated in Animation Editor.
Fixed an issue that some error occurs when returning to a scene with 3D particles from the Prefab editing mode.
Fixed an issue that the simulator cannot be open after setting custom resolution with float point number in Preferences.
Fixed an issue that some part of panel is obscured after moving panel in some cases.
Fixed an issue that rendering artifact occurs after switching skins of Spine component in editor [#10343].
Engine
Adapt the high performance mode of WeChat mini-games [#10160]
Fixed an issue that the rendering data remains after calling reset API of particle system component[#10088], thanks to caogtaa
AudioEngine added isPlaying API [#9372], thanks to 大城小胖
Optimized the rendering of MotionStreak component [#9693]
Native
Remove some function called on iOS platform to avoid Apple Review Rejection[#4275]
Fixed an issue that the game crashs when switching to night mode on Android phone toolbar [#4276]
Fixed an issue that the JNI error occurs after calling callStaticMethod several times [#4162]
Fixed an issue that nodes added with addUserNode of TiledMap component are displayed inconsistently between native and web platform[#4274]
Fixed an issue that game crushs when getting the data property of event object when the event of DragonBones component emmited on native platform [#4273], thanks to LincolnLiuXinbing
Fixed an issue that SpotLight component can't cast shadows [#4257], thanks to haha-yu
Fixed an issue that EditBox component will hide the keyboard when sliding to select words [#4170]
Fixed an issue that Video Player component can't play videos within subdirectory of the data folder [#4045]
Fixed an issue that game crashs when using Mask component on some devices [#4279]
In v3.4.1, we improved the data submission and batching strategy of 2D rendering components. Since these are basic changes, it caused some problems with Tiledmap and Graphics. Also, the performance of Spine and Dragonbones on the Android browser has not been improved, these problems have been resolved in the v3.4.2 version.
In addition, under the active testing and feedback from the community, we have also fixed some editor-related experience problems, such as memory leaks caused by script recompilation, and resource copying problems when large projects are built on the iOS platform. Thanks again to the community developers.
Developers currently using v3.4 to v3.4.2 should upgrade to get a better stability and development experience.
Important updates
Version notice
Recently, we have conducted extensive exchanges with the majority of users on forums and offline, and received many pertinent suggestions and criticisms. In response to some product usability issues that have been reported by users recently, we have planned version 3.5 to deal with it as soon as possible, and the public beta will be launched soon. 3.5 will iterate in small steps on the basis of 3.4, improve the usability and ease of use of the product, and ensure stability and compatibility as much as possible.
In the remaining releases for this year, the engine team will also focus on the business needs and pain points of developers, do their best to take care of the needs of various types of projects, and benefit all users. In particular, some projects encountered problems such as heat generation, native performance, package body, editor stability and workflow, which will be mainly solved this year.
Release Notes
Engine
Shared vertex buffer accessor for Spine and DragonBones [10077]
Fix skeletal animation sample() does not work as intended [10006]
Fix DragonBones node can’t be moved in editor [10031]
In v3.4.1, we focused on fixing problems reported by users after the release of v3.4.0 and improving the overall stability. At the same time, in order to help v2.x developers to upgrade to v3, we adjusted the batch strategy of 2D rendering components, which has greatly improved the overall performance of 2D rendering. Compared with v3.3, the improvement rate ranges from 20% - 70%.
For the performance test results, we also compared the v2.x version. Take a look at the comparison charts below, the performance of most of the tests has been close to or the same as that of 2.x, and a small number of tests have exceeded it.
Legend explanation: All tests are done on low-end and mid-range computers. The four intervals of each icon are Android Web, iOS Web, Android WeChat, and iOS WeChat. In addition, the overall performance improvement on the native platform will also be greatly optimized in the native version of 3.6 [GitHub PR].
In addition, in order to allow WebGL 2.0 to be enabled on WeChat mini-games in the future, we have also modified the build options of the WeChat platform and added an experimental option: support to enable WebGL 2.0 following the configuration of the project module, and to turn off the reduced package by default. If you choose to follow the configuration of the project module, and the WebGL 2.0 rendering backend is checked in the project module, then the future and other WeChat environments that support WebGL 2.0 can be successfully enabled.
Important updates
Refactored 2D batching strategy, RenderData holds static VertexBuffer memory to optimize 2D rendering performance on all platforms
Optimized the state management of 2D rendering components: UV and Color now fill immediately to avoid polluting the VB state
Material.copy now supports modification parameters from override material
Enable WebGL 2.0 on WeChat to prepare for future WeChat versions that support WebGL 2.0
Slightly optimized the performance of the particle system
Fixed the response speed problem when the editor has too many startup scripts
Fixed the problem that an error will be reported when compiling the simulator
Limit the maximum device pixel ratio of the web platform to 2, and fixed the performance degradation caused by it
Fixed event dispatch priority so that UI listeners always take precedence over input event listeners
Fixed the problem of performance degradation in shadow collection logic
Fixed the problem of abnormal exit when restart is called for the second time in iOS/macOS
Fixed the problem that the game logic stops when the Android platform enters the background
Fixed the problem of independent use of SkeletalAnimation sample API
Fixed the problem of using animation crossFade API
Fixed the color setting problem of TiledLayer
Fixed the problem that multiple camera outputs are overwritten when rendering to the same RenderTexture
Fixed some memory fragmentation issues on the native platform
Fixed the problem that Label spacingX property is not serialized
Fixed the problem that the profiler disappears after restarting in debug mode
Fixed the problem that burst does not behave correctly after replaying after pause
Fixed the problem that the UseHDR button has the opposite effect when switching scenes
Fixed iOS & Mac Safari does not support USE_REFLECTION_DENOISE
Fixed the problem of performance degradation introduced by getSystemInfoSync on Cocos Play and WeChat platform
Fixed the problem that Sphere Light doesn’t work correctly on Android Web
Fixed the crash when three Cocos games are running at the same time in the debug mode on the windows platform
Known legacy issues
Slider cannot be smoothly dragged in ScrollView: solution planned in v3.4.2
SkeletalAnimation cannot have a valid setTime call without calling play [#10006]
Cocos Creator v2.4.8 focused on fixing some 2.x related problems recently discovered, focusing on improving the editor’s experience and the stability of the engine. It is recommended that all 2.x users upgrade. This version has not broken the compatibility of projects and plugins, please refer to the upgrade instructions of 2.4.7 to update.
We will continue to deliver critical bug fixes in 2022, as planned at the time of the 3.0 general release. These fixes will only be optimized around stability and usability, so it is no longer recommended for new users or new projects to choose 2.4, please use the 3.x version for development.
Fixed an issue where the cursor would not be automatically restored after clicking the middle mouse button in the scene panel on Windows.
Fixed a calculation error when the parent node’s Scale is 0 when moving the node hierarchy in the editor.
Fixed the problem that when naming nodes in the hierarchy manager, the behavior of selecting text with the mouse would change to dragging nodes.
Fixed an issue where the number of resources doubled when searching for resources when the resource manager panel was popped up and then embedded in the main window.
Fixed the error caused by exiting after setting the Active of the node where the Sprite or RichText is located to False when editing animations.
Fixed the problem that the preview script may fail to compile when the number of project scripts is very large (does not affect the build result).
Fix compilation failure caused by setting Android API to 31 [#4147].
Engine
Allow receiving touch events on the PC web platform for listening to Touch events on some touch-enabled PCs [#9898].
Fix the problem that there is only one hidden child node under ScrollView, which may cause stack overflow [#9914].
Fix the problem that the scene does not refresh when editing LabelShadow color [#9909].
Fix Tween.stopAllByTag only stop the animation of the first matching tag [#9902].
Native
Fix the problem that WebSocket messages are truncated [#3789].
Fix the problem that the Android JNI call may cause the game to crash [#4147].
Fix the issue that calling Skeleton.setSkeletonData causes Node’s click event not to trigger [#366].
Cocos Creator v3.4 is the final version we released this year for Creator. Stability is our most important goal! The development and testing cycle of this version is longer than any previous version, and it has been publicly tested in the community for a month. Thank you to all the developers who participated in the test!
In v3.4, not only important functions such as the Marionette animation system have been added, but also a lot of work has been done in terms of product experience, stability, performance optimization, and infrastructure levels. In addition, we listened to the community and fixed a number of problems that have received a lot of feedback. Our devoted engine team believe 3.4 version will become a great milestone in terms of game development user experience!
Highlights
Animation System Marionette
The all new animation system is the most important feature in 3.4. We named it Marionette, which means 'puppet', which both captures the essence of the animation system and also by itself, a long-standing traditional Chinese art form. It has appeared since the Tang Dynasty and has been circulating for thousands of years, and it is still an important opera form till this day in the Minnan region (where our company is located!). With Marionette, we also hope that developers can precisely control the game characters and enhance the game’s narrative ability.
In version 3.4, Marionette supports the key features of an animation system, including state machines, sub-state machines, animation node graphs, trigger variables, multidimensional blending, etc. Of course, more new features are already under development, such as animation levels and masks, humanoid bones and IK support. To help you learn the Marionette animation system, we have also prepared detailed documents, a [Demo](https://github.com/cocos-creator/MarionetteDemo) and video tutorials.
Editor experience optimization
In terms of editor experience, we have done a lot of fixes and enhancement for user experience. Features and experience optimizations include:
The animation editor supports Bezier curve presets now, select the curve segment and click on the curve preset to apply.
Added smart alignment for Rect Gizmo
Customized macros are supported now
Added wrap mode and filter controls for RenderTexture
Added Octree space accleration structure, optimized frustum culling performance that can be activate in the inspector
Lighting Model And Rendering Optimization
Starting from v3.0, Creator has been elevating and polishing its rendering capabilities. In v3.4, in order to improve the rendering quality of the engine, we brought a series of important upgrades. In particular, the enhancement of the lighting model will make the rendering more refined for our engine.
Automatic generation of environment map for diffuse reflection
manually set ambient light vs automatically generate diffuse map
upport HDR and LDR rendering switch (located in the scene node, under Skybox configuration).
HDR on vs HDR off
BL sampling noise reduction( USE REFLECTION DENOISE option under "stardard material")
Denoise on vs Denoise off
Render pipeline enhancement
In terms of rendering pipeline, FrameGraph is an infrastructure introduced in v3.1. After several iterations, in v3.4 we formally docked both the Forward and Deferred pipelines with FrameGraph. Below is a simplified deferred pipeline FrameGraph:
Currently, the engine’s deferred pipeline contains a total of 2 calculation passes and 7 rendering passes. Although it is not complicated, it can already highlight the role of FrameGraph. On the one hand, it simplifies the code organization of the pipeline layer and reduces maintenance costs; on the other hand, it also reduces the cost of developers when customizing pipelines. Based on FrameGraph, the Huawei HMS CG Kit team continued to contribute Clustered Light Culling to the deferred pipeline in v3.4 to optimize the calculation performance of dynamic light sources. It can support hundreds of dynamic light sources on the same screen on the mobile side (Kirin 990 chip in Sponza scene Running 1000 dynamic light sources can reach 40 fps).
In addition, the Subpass in the rendering pipeline is also implemented based on FrameGraph. The second major advantage of FrameGraph is the deferred mode for rendering (different from the deferred rendering pipeline). The engine can analyze the rendering process and optimize it before executing the complete rendering process. Currently, mobile GPUs share system memory with CPUs. One of the hotspots of power consumption is the reading and writing of video memory. Subpass optimization is to make full use of the GPU’s Tiled cache to reduce the power consumption of video memory read and write. When the write and read resources of two adjacent rendering Subpass are the same in-frame resource and will not be referenced by other passes, this Resources can be read and written directly through the Tiled cache without wasting any memory bandwidth, which can significantly reduce power consumption. This automatic derivation of resources and rendering processes is exactly the advantage that FrameGraph brings.
Important Fix and performance optimization
Stability is the primary goal of the v3.4 version, so we have also fixed some flaws that have been troubling for a long time, pushing the stability of the engine to a new height. Here are some of the more important fixes:
Fixed the serious problem that using Active during animation editing may cause data loss.
Fixed the problem that the MissingScript component will appear when some abnormal errors are reported in the scene, which causes the scene to fail to start.
Fixed the crash caused by repeatedly exiting and entering iOS.
Fixed the crash caused by material compilation on some chips in the back end of GLES3.
Fixed the black screen problem of Vulkan backend on some low-end machines (by issuing barriers and image layout conversion more accurately).
Fixed the crash of Vulkan backend on some low-end machines (by modifying some shader usages to workaround some problematic drivers).
Fixed the problem of Vulkan backend crashing or incorrect resolution when rotating or splitting screens.
Fixed a crash when using a large number of high-resolution textures in the Vulkan backend.
Fixed the black screen issue on Chrome on a few devices.
Fixed the problem that PrefabInstance in mountedChlidren may cause data errors.
Fixed the fileId conflict that may occur when copying Prefab, which will cause data loss and error.
Fixed the problem that the deleted element data is referenced in Prefab, which causes a lot of redundant data to be serialized.
Fixed the issue that Undo may cause some override data in the prefab to be lost.
Fixed the problem that data errors may occur when the terrain is restored.
Fixed the problem that the GPU memory referenced by Label is not released after switching scenes at runtime.
Fixed the memory leak problem of InstanceBuffer and BatchedBuffer due to holding aglobal Map.
Fixed a large number of problems caused by the failure of global precision designation on some small game platforms, such as the shadow sampling problem.
Fixed the problem that the native platform did not pass the correct baked parameter in the case of scene baking.
Fixed the random model flickering issue under GLES (by using glMapBufferRange instead of glBufferSubData).
Fixed the screen glitching issue on devices that do not support floating-point mapping when there are NaNs in the model's joint weights (by equally dividing all NaN weights in the importer).
Fixed the crash of large-scale data synchronization after the native-side pre-baked animation Instancing is processed.
Fixed the problem that multiple plugins with the same name and registered resources will cause script compilation to fail.
Fixed the problem that the content of the remote resource package cannot be updated after the native platform is rebuilt feedback from the forum.
Fixed the problem that the original code is still entered into the apk after the original selection encryption is built feedback from the forum.
After repairing the automatic atlas using compressed textures, modify the atlas configuration to rebuild and still use the cache.
In addition to fixing important issues, the overall performance of the engine has also been improved, such as 2D rendering and batch efficiency, physical performance, iOS Web 3D scene performance, and Android partial scenes. Here are some test results of 2D rendering:
Known Defects and Potential Compatibility Issues
Build Template Upgrade
Due to the adjustment of the relevant logic of web platform screen adaptation, we have changed the web-related index.html template, which includes preview templates and building web platform templates. We have done related compatibility processing inside the engine cocos-creator/engine#9830
This process will ensure that there is a fixed div structure inside index.html:
If GameDiv/Cocos3dGameContainer is missing, it will be automatically filled during runtime.
Note: this div structure is a private structure managed internally by the engine. We hope to keep this structure intact and not customized. If other web tags are added to this structure, it may cause some uncertain compatibility issues.
IBL sampling noise reduction
The newly added IBL sampling noise reduction algorithm currently has some problems with the compatibility of the iOS Web environment. Since it was found that it was not merged in the version later, the support for iOS Web will be completed in the follow-up 3.4.1
Delayed pipeline defects
Currently, the deferred pipeline is still in the process of high-speed iteration, and there are still some problems with function and platform compatibility. It is not recommended to use it in actual projects for the time being. Some of the current known issues include some particle blending modes that cannot be rendered, builtin-toon materials are not supported temporarily, some low-end platforms and devices have compatibility issues, spotlight shadows are not supported, and 2D & 3D camera mixing issues.
Fix List
Features
[Animation] Added Marionette animation system, supporting state switching, sub-state machine, Blend Tree and other necessary functions for character animation
[Animation] The animation editor supports standard Bezier curve easing presets
[Animation] Curve key frame supports Broken disconnection and separate control of left and right joysticks
[Scene] Supports automatic generation of environment map convolution map for diffuse reflection calculation
[Scene] Added smart alignment function of Rect Gizmo
[Scene] Added GPU Occlusion Query culling (default disabled), you can turn it on through root.pipeline.setOcclusionQueryEnabled(true); to support developer custom macro configuration, document
[Scene] Newly added native platform memory leak detection system (closed by default), you can pass #define USE_MEMORY_LEAK_DETECTOR 1 to turned it on,document
[Builder] Build support for external developers to register custom texture compression processing tools
[Builder] Added “Skip Xcode project update” option for Mac / iOS platform building to avoid overwriting changes to project files
[Builder] Combine the GLES options of Android and Windows, and it is not allowed to select GLES2 separately
[Particle] Support particle emitter elimination, offline automatic calculation, and manual adjustment (RenderCulling module)
[Particle] Support the unity of particle orientation and node orientation
[Asset] Support RenderTexture’s wrap mode, filter and other parameters
[Asset] RenderTexture adds readPixels interface
[Prefab] supports batch disassociation
[Asset] Added “Auto” option for animation baking rate of FBX importer
[Asset] New option for FBX importer: give priority to file time range
[Asset] The packable property on the SpriteFrame resource panel will affect the automatic atlas construction process in addition to the automatic image collection, and will not participate in the construction of the assembled image after it is closed
[Asset] Terrain module supports automatic LOD
[Graphics] Support IBL sampling and noise reduction (check USE REFLECTION DENOISE in standard material)
[Graphics] More accurate Gamma Correction
[Renderer] Support HDR and LDR rendering switch (in the scene node Skybox configuration)
[Renderer] Both forward and deferred rendering pipelines are reconstructed based on FrameGraph and subpass
[Renderer] gfx encapsulates the swapchain public interface and supports multi-window applications
[PAL] Support preventSwallow property on EventMouse and EventTouch, support event penetrating dispatch: event.preventSwallow = true
[PAL] Support sys.hasFeature() interface to query whether platform features are supported
Improvements
[Scripting] Upgrade the v8 engine that the native depends on to v9.1.269
[Renderer] Performance optimization of multi-light source collection
[Renderer] Optimize the RT performance of GLES/WebGL
[Renderer] Optimize the use of native memory/video memory (by calling framegraph gc periodically)
[Graphics] Fixed the calculation of lighting and shadows of translucent objects
[Graphics] Optimize the fog effect and transfer the calculation to Fragment Shader to ensure the correct fog effect transition
[Graphics] Disable multi-light source lighting for translucent objects
[Scene] Add axis text to the world axis
[Scene] Terrain editor adds selection mode
[Physics] Optimized the package of PhysX on the native platform
[Physics] PhysX now supports M1 devices
[PAL] Optimize the orientation adaptation of the web end, focusing on the direction selected by the construction panel, ignoring the browser direction
[PAL] On the Web and small game terminals, immediately dispatch input events to solve some user interaction permissions issues
[PAL] New App default icons have been replaced for all platforms and emulators
[PAL] Now the iOS platform construction will introduce the corresponding default Launchscreen image according to the horizontal screen or vertical screen option (if the change does not take effect in time, you need to restart the device to clear the cache)
[Asset] Fixed the problem that the last frame of FBX animation import is lost
[Asset] Fixed the problem that the resource change notification may be lost when the extension is capitalized
[Asset] Solve the problem that the add event may not be sent for newly added resources, which may cause the assets panel to wait all the time
[Builder] The address of the build configuration server is changed to be recorded in settings.json to facilitate dynamic updates
[Builder] When creating a new automatic atlas, the elimination option in the Bundle will be turned on by default (the optimization requirements are from this forum topic 1
[Extension] The developer panel of the plug-in manager allows to import plug-ins other than the current project or global catalog.
To do their job well, a worker must first sharpen their tools. After a long period of preparation and testing, version 2.4.7 is finally released. Thank you to all the friends who gave us valuable feedback! In this update, we have concentrated on fixing some 2.x-related issues that we have discovered recently, focusing on improving the stability of the editor, and we recommend that all 2.x users upgrade.
According to the plan when the 3.0 version was officially released on February 7 of this year, 2.4 as the LTS version will continue to provide bug fixes this year. At the same time next year, we will continue to pay attention to 2.4 key issues and major platform adaptation issues, and update the version from time to time to support the safe operation of online projects.
Once again, to answer questions about the 3.x upgrade:
New projects are no longer recommended based on 2.4, please use the 3.x version for development, we will continue to optimize the 3.x development experience, pay attention to the package and efficiency of lightweight games, and support 2D, 3D and other different types of game development.
If the current 2.x project has reached the mid-development stage or is about to go online, there is no need to upgrade to 3.x.
If the current 2.x project is still in the early stages of development, you can evaluate whether you need to upgrade to 3.x. If you are sure to upgrade, you can use the 2.x resource import tool provided by Creator. This tool will support the perfect import of old project resources and the auxiliary import of codes. Code-assisted import will convert js into ts, add component type declarations, attribute declarations and function declarations. The references of components in the scene will be preserved, and the code inside the function will be imported in the form of comments, which can reduce the developer’s upgrade Difficulty. For detailed upgrade instructions, please refer to Upgrade Guide. If developers encounter difficulties during the upgrade, please feel free to give us feedback and we will try our best to assist.
Stack Changes
Upgrade the Electron version of the editor to 13.1.4. It solves the problem of WebGL crash that frequently occurs for some users on Windows, and also supports the native ARM instruction set of M1 (Apple Silicon). It is recommended that all M1 users upgrade to obtain better performance. Affected by the Electron update, a small number of editor plug-ins may be affected. Please refer to the upgrade instructions for details.
Upgrade the Gradle version of the Android project to version 4.2.2. See the upgrade instructions for details.
Editor
Fix the problem that the scene data may be overwritten by clicking Save when Prefab is opened
Fixed the problem that the memory will continue to grow if there is no scene switching operation when refreshing the script in the editor, thanks to isilent
Fixed the problem that MD5 of some files may be changed after repeated construction
FixSome third-party plug-in ui-section headers in ui-section in 2.4.5 are incompatible with the syntax of the class registration
Adjust the resource compression operation during the build to after copying the build template and the beforeFinish event.
Fix the problem that if you modify the script after the build and bind the node and then build again, the bound content may be empty during runtime
Fixed the problem of the wrong node selection on the keyboard up and down after searching in the explorer
Fix the problem that dragging the panel after selecting all audio-clip, sprite-frame, and texture in the explorer will report a resize error
Fix the problem that the selected node cannot be deleted after the scene is focused
Fixed the problem that the automatic synchronization pop-up window status of the prefab could not be saved
Fix the problem that using undo and resetting node attributes is invalid after the color and other attributes on the node are changed
Fixed the problem of errors when opening the editor when there are parentheses in the resource path or project path
Fix the problem that clicking on the hyperlink in Markdown is invalid
Fix the problem that the data changes after Prefab is not modified and saved
Engine
Fix the problem of pre-loading pictures that did not download the auto atlas
Fix the problem that the transparency cascade calculation of the node is incorrect after modifying the parent node [#9322]
Fixed the problem that the Scroll View did not trigger the event correctly when it reached the horizontal and vertical boundaries at the same time. Thanks to zty8023ys[#9445]
Fix the problem that the Mask component is invalid when adjusting the node size at runtime [#9444]
Fix the redrawing problem of Graphics Bezier curve, thanks caogtaa[#9194]
Fix EditBox in PhoneNumber mode, the mouse wheel causes the number to be negative, thanks wanghaha1991[#9138]
Upgrade Tips
As Cocos Creator 3.0 version has been officially released, v2.4.x will be used as the LTS (long-term support) version, providing continuous updates for the next two years! In 2021, 2.4 will continue to be updated to provide bug fixes and new mini-game platform support to ensure the successful launch of your project; in 2022, we will continue to provide developers with the key to 2.4 Bug fixes to ensure the smooth operation of online games! therefore:
Existing 2.x projects can continue to develop without compulsory upgrade to 3.0.
For new projects, it is recommended to use version 3.0 for development. We will continue to optimize the development experience and operating efficiency of 3.0 to support the smooth launch of heavy games of different categories such as 2D and 3D.
Upgrading a project from a previous version of Cocos Creator is irreversible. Please backup the old version of the project before upgrading.
Most projects can usually be upgraded automatically, but because the project is inevitably unique, developers should try and evaluate the new version of the engine in advance according to the needs of the project. In addition, due to stability considerations, it is recommended that projects that are about to go online or already online should be carefully upgraded. The following is the upgrade instructions. If developers encounter difficulties during the upgrade, please give us feedback and we will try our best to assist.
Adjusted the directory structure after the project is built and adjusted the API of BuildResults. If you use the editor plug-in to get the editor’s build results, please refer to Customized Project Build Process Upgrade Guide
The cc.RawAsset that was deprecated since 1.10 has been officially removed, please use cc.Asset instead. Since 2.4 is no longer compatible with the legacy usage of the RawAsset type in the original 1.x project, it is recommended that all projects to be upgraded to 2.4, especially those upgraded from version 1.9, be edited in any 1.10 ~ 2.3 version. All warnings or errors output when the compiler compiles the code are processed correctly, and then upgraded to 2.4.
cc.Color.fromHex is deprecated, please use cc.Color.fromHEX interface
Upgrade from < 2.3.3 version
The CCTexture2D and CCTexture2DRGB methods in the Effect have been abandoned.
Vec3.FRONT has been abandoned, please use Vec3.FORWARD instead.
Upgrade from < v2.3.0 version
Since v2.3.0, Android and Android Instant use the same build template, please note:
If the code is used solely by the Android platform, please put it in the app/src directory, and the third-party library used by itself, please put it in the app/libs directory.
If the code and third-party libraries used by Android Instant are separate, please put them in the game/src, game/libs directories.
For code and third-party libraries shared by Android and Android Instant, please place them in the src and libs directories under the proj.android-studio root directory, respectively.
proj.android-studio under the root directory jni/CocosAndroid.mk, jni/CocosApplication.mk, mainly used to configure engine-related configuration, developer configuration, it is recommended that Android be placed in app/jni/Android.mk and app/jni/Application.mk, Android Instant, please put in game/jni/Android.mk and game/jni/Application.mk.
When Cocos Creator compiles for Android, it will execute assembleRelease/Debug by default, and when compiling for Android Instant, it will execute instant: assembleRelease/Debug.
In addition, when Cocos Creator compiles for Android, it will execute assembleRelease/Debug by default, and when compiling Android Instant, it will execute in stant:assembleRelease/Debug.
If you have customized the pause logic when switching between audio background and background, please remove it after upgrading to 2.3.0 Currently Cocos Creator games automatically pause and resume audio internally when switching between front and back on all platforms. If the developer has customized this block before, and listens for and performs audio operations like cc.audioEngine.pause() and resume(), it may conflict with the engine’s default behavior. If you encounter related audio issues, simply remove the corresponding custom code.
Upgrade from version v2.0 – v2.3.0
Starting from 2.3.0, the Canvas component is no longer responsible for setting the Canvas node size to the screen size. This behavior will be implemented in conjunction with the Widget component. To ensure compatibility, after the 2.0 project is upgraded, the node where Canvas is located will automatically add Widget components. (No problem upgrading from a 1.0 project)
Upgrade from < v2.2.0
Starting from 2.2.0, we have strengthened the memory management mechanism, and now require users to dynamically create cc.Node which is independent of the scene node tree through code must be released through destroy(), otherwise the engine cannot know when to recycle this type The memory of the node will cause a memory leak.
In addition, the nodes that are manually removed from the scene need to be unified when they are not needed.
// Assuming testNode is a node in the scene, if it was manually
// removed from the scene before, such as
testNode.parent = null;
// or
testNode.removeFromParent(true);
// or
parentNode.removeChild(testNode);
// If testNode will be used again in the future, there is no need to
// manually destroy the node otherwise it should be called manually
testNode.destroy();
If a node is managed via cc.NodePool, it is not affected.
The main function of this version is to allow native applications built by the engine to support iOS 10+. In order to support iOS 10+, the engine code removed the dependency on C++17.
Some functions of the engine depend on C++17, and some functions require using the Android API. For the convenience of developers, the function configuration interface of the editor prompts for these dependencies. For example, when Android uses the delayed pipeline, Android API 21+ is required. If the configuration chooses to use the delayed pipeline, the editor will prompt the required Android API version:
Of course, we also provide a complete document explaining the requirements of each functional module for the Android API and C++ versions. For more information, please refer to the native options documentation.
Key update list
Cocos Store download has improved performance
Native GPU Instancing material switching causes rendering failure
Fix the problem that muti cannot be modified in the Two Curve mode of the curve component
Fix the problem that the override may be lost when saving immediately after undo in the prefab modification mode
Fix the UITransform component or Canvas node problem when adding UI nodes when editing prefab resources
Known Issues
Topon and Tradplus Service plugins will have exceptions when building the IOS platform, which we will fix with a hot update in the near future.
Upgrading
Cocos Creator 3.x version has been officially released, version 2.4 will be used as the LTS (long-term support) version, providing continuous updates for the next two years! In 2021, 2.4 will continue to update the version, providing bug fixes and new mini-game platform support to ensure that your project is successfully launched; in 2022, we will continue to provide developers with the key to 2.4 Bug fixes to ensure the smooth operation of online games! Therefore:
Existing 2.x projects can continue to develop without a compulsory upgrade to 3.0.
For new projects, it is recommended to use version 3.0 for development. We will continue to optimize the development experience and operating efficiency of 3.0 to support the smooth launch of heavy games of different categories such as 2D and 3D.
Upgrade from version <3.1.0
Starting from v3.1, the priority attribute of the UITransform component has been deprecated. If you need to adjust the order of the node tree, please use the setSiblingIndex method. Prior to v3.1, nodes that were created by code and depended on the priority attribute may have inconsistencies in the performance of the node tree. Please adjust them manually.
RenderTexture will be inconsistent between positive and negative on different platforms. In order to solve this problem, Creator has added the SAMPLE_FROM_RT macro to the effect. When using RenderTexture, you need to set the SAMPLE_FROM_RT macro to true, and each backend will be uniformly adapted to The correct effect.
Upgrade from version <2.4.5
Cocos Creator 3.x version has been officially released, and version 2.4 will be used as the LTS (long-term support) version, providing continuous updates for the next two years! In 2021, 2.4 will continue to be updated to provide bug fixes and new mini-game platform support to ensure the successful launch of your project; in 2022, we will continue to provide developers with 2.4 key issue fixes to ensure that games that have already been launched Smooth operation! therefore:
Existing 2.x projects can continue to develop with peace of mind, without a compulsory upgrade to 3.0.
If you want to upgrade an existing 2.x project to 3.x due to project requirements, you can use the 2.x resource import tool provided by Creator. This tool will support the perfect import of old project resources and the auxiliary import of codes. Code-assisted import will convert js into ts, add component type declarations, attribute declarations, and function declarations. The references of components in the scene will be preserved, and the code inside the function will be imported in the form of comments, which can reduce the developer’s upgrade Difficulty. For detailed upgrade instructions, please refer to the Upgrade Guide.
For new projects, it is recommended to use version 3.0 for development. We will continue to optimize the development experience and operating efficiency of 3.0 to support the smooth launch of heavy games of different categories such as 2D and 3D.
The upgrade operation of Cocos Creator to the project is irreversible. Please submit or backup the old version of the project before upgrading. Most projects can usually be upgraded automatically, but because the project is inevitably unique, developers should try and evaluate the new version of the engine in advance according to the needs of the project. In addition, for stability considerations, it is recommended that projects that are about to go online or already online should be carefully upgraded. For detailed upgrade instructions, please refer to the Upgrade Guide. Those who encounter difficulties in upgrading, welcome to give us feedback and we will try our best to assist.
Optimize the display of the physical laboratory options on the WeChat byte panel. When creating a new WeChat build task, the Wasm physics system will be enabled by default. After it is turned on, it will override the physical backend selection set by the project
Fix several animation editor operation problems, including:
Some types of animations are not correctly interpolated
The curve data is not copied when copying the track
Cannot continuously operate the selected keyframe attribute track
Wrong position of adding keyframe when scroll bar exists
After selecting multiple keyframes, clicking on the keyframe moves abnormally
Fix the failure of pasting keyframe data across nodes and attributes
Fixed and improved particle curve related controls: including the Bursts property cannot be added normally, the curve containing the Constant mode is displayed abnormally, the display of Two Curve is optimized, and the curve is displayed incorrectly after removing the keyframe.
Fixed the problem that joint-texture-layout is invalid when building on the command line (it will cause loading failure at runtime)
Fix the problem that the FileId of Component in the created object is the same
Fix that when the auto atlas and renderTexture resources are in the same folder, they cannot be previewed and built normally
Customized engine settings are stored according to the editor version
Fixed the problem that the script in Prefab was not updated in time after modification
Fix the problem of creating ui node in Prefab edit mode
Fix the problem that the resource is deleted when editing the Prefab resource, and the save will not be automatically transferred to save at this time
Fix the issue of select all and copy functions related to the root node on Hierarchy
Fixed an issue where Hierarchy called the db interface and reported an error when switching scenes
Fixed the problem that the file name of the custom script template cannot be a pure number
Fixed the issue of db reporting errors when deleting assets in batches in the assets panel
Support the mechanism to filter the suffix of the input name when creating a new resource in the assets panel
Fix the problem that the resource that failed to import will report an error every time the focus returns to the editor
Fix the problem that the old private node in the scene will cause a warning
Fix the problem that the scene resource upgrade will add a blank line at the end
In version 3.3, the focus continues to be optimizing the loading performance and running performance of the WeChat mini-game platform. After all internal projects are upgraded, the WeChat cloud testing starts with a performance score that can reach more than 80 points.
We continue to leverage the native binding layer to a new level, we have implemented a native version of render scene, lighting, model and other render objects, the render objects collection process is also completely running with native implementation, which further improved the performance of the native platform.
There is also a side benefit. Due to the upward migration of the binding level, some underlying data sharing mechanisms have been lifted, such as Pass, SubModel, etc. This makes the implementation of the upper layer of the JS engine, especially the data related to the UI and 2D rendering batches more simplified, and the data structure of some high-frequency operations is restored from TypedArray to direct properties, which makes the performance of the Web and small game platforms also visible improvements .
Optimized Scene editing experience
Optimize the roaming mode of the scene camera, and add an acceleration switch.
2. Add a scene light switch (open by default).
3. Increase the display of the maximum and minimum coordinates of the model.
4. Increase the snap function of Transform Gizmo (when you move, rotate, zoom Gizmo, hold down the Ctrl key, you can increase the value according to the set step length.
5. Optimize the experience of using large projects: reduce the memory usage of the editor, avoid crashes, and optimize lag.
New Animation Editor and Animation Data upgrade
Currently, the Animation Editor has built-in curve editing, which matches the time axis, and supports the editing of the time curve between any key frames.
Animation Data has also bee upgraded to introduce a new basic curve class, refactoring AnimationClip, and unifying the curve data used by animation and particle systems. These works are prepared for the subsequent improvement of the animation system. In the subsequent version, we will support advanced functions such as animation state machine editing and Blend Tree animation fusion.
In addition, the Animation Editor also:
Supports the animation display editing after the animation root node is hidden.
Optimizes the occlusion relationship between the key frame of the Animation Editor and the small red line, the size of the key frame, the selected color, etc…
The Animation Editor supports holding down shift + mouse wheel scrolling to move the timeline.
Platform support and Build system optimizations
Windows x64 build option have been added, and the win32 platform will be gradually deprecated in the future.
In the Build panel, there are many new optimizations:
The iOS build configuration option supports developer id configuration related to the target iOS version and signature.
After constructing md5Cache, you can add md5 suffix to the script to ensure that the version is updated; (feedback from the forum.)
As some versions of WeChat already support astc, the compressed texture configuration of the small game platform astc is currently open.
Preferences-Build a new option to open the build log.
Build an interstitial configuration panel, which supports direct drag and drop of pictures in the file system to place.
Command-line construction supports the input logDest to specify the log output path.
Due to the limitation of the number of exit codes on the Mac, the command line to build the exit code has been modified.
After the native platform is built, the game name cannot be modified a second time.
Shadow effects and settings optimization
In previous versions, the configuration of shadows has always been a feature that confuses developers. We have a complete plan and are gradually improving shadow support. v3.3 will first simplify the configuration of shadows, optimize soft shadow algorithms, and repair shadows. Part of the effect problem. Configuration adjustments include:
Shadow color is migrated to the grayscale adjustment option of Shadow saturation, which will automatically migrate the alpha channel of the old version.
The soft shadow options are changed from the previous X9, X25, etc. to Soft and Soft2X.
The size of the simplified shadow map is set to High, Medium, Low.
Remove the SelfShadow option, now self-shadow calculation will be turned on by default.
v3.1
v3.3
Perfect Physics system
As v3.1 supports the PhysX physics backend, the selection and use of multiple sets of physics engines has also become our focus of use experience. In v3.3, we not only strengthened the physical functions, but also unified the different physical backends as much as possible.
Support CCD continuous collision detection function
Increase the minimum volume control of the collision body to avoid a series of problems caused by node zero scaling.
Supports more flexible configuration options for the PhysX physical packed byte platform.
Support the global control in Bullet physics to allow automatic sleep.
Support Bullet physics in ray detection filter trigger collision body.
Fix local inertia with no additional status of rigid body in Bullet physics.
Other
After the audio system removed the playback control interface on all AudioClip resources in v3.1, the developers were quite dissatisfied. In v3.3, we added the playback control interface back to the AudioClip resource by marking it as obsolete. We still hope that all developers can switch to using the AudioSource component to play audio, which is essential for future audio system enhancements.
Input events were dispatched before they were received. If the event response logic is complex, it may affect the frame callback and cause the frame rate to be unstable. v3.3 has been adjusted to the inter-frame recording event queue, and the events are processed in the main loop. Queue.
The View and Screen interfaces have been simplified, some platform-related interfaces have been discarded, and some of the View’s window control functions have been unified on the Screen.
Key update list
Editor
New version of animation time curve editing and animation editor experience optimization.
The curve editor of each module is unified: particles, animation, etc…
Optimize the editing operation of the particle curve, add a button to reset the coordinate movement range, and support directly right-click to edit the position of the key frame point.
Support HDR file import, the engine internal processing RGBE codec.
Editor performance and experience optimization.
When the Image resource is changed to SpriteFrame type, the Clamp configuration of texture is automatically modified to CLAMP_TO_EDGE to avoid the problem of edge blending and black edges.
Support for editing animation events directly on the property panel with animation model.
Fix the resource leakage problem in the editor and reduce the memory usage.
Turn on ASTC compression texture configuration for WeChat mini game platform.
Optimize the performance of the hierarchy panel, add prefab nodes to directly enter the editing function of prefab resources.
Optimize the performance of the console panel and fix the problem that a large amount of log data slows down the startup speed.
Color picker supports color gamma correction preview.
Inspector supports grouped display of component attributes, using @group decorator
The inspector edit node adds the world coordinate of the copy node.
Supports a single grayscale image or a combination of channels of the rgb channel that displays the baking results.
Support custom script templates, and some preset variables can be used when generating scripts.
Support the installation directory with Chinese on Windows platform.
iOS build and fill configuration options: target iOS version, signature-related developer id.
Simplify the discarded part of the view and screen interfaces, and implement them in the platform adaptation layer (PAL).
Obsolete view.adjustViewportMeta and view.isAutoFullScreenEnabled.
Obsolete view.enableAutoFullScreen, please use screen.requestFullScreen.
Obsolete cc.winSize, please use view.getVisibleSize
Discard screen.autoFullScreen, please use screen.requestFullScreen.
Discard screen.disableAutoFullScreen.
Fix the memory leak that may be caused by removing the Spine animation (thanks to Github PR from @hailua54).
Infrastructure
Native rendering scene module: optimize the performance of the native platform.
Use controllable off-screen FrameBuffer for content rendering.
Support MSAA anti-aliasing based on the off-screen FrameBuffer (enable the project macro Enable Antialias): Note that if the project macro is enabled before, the performance loss of the native platform will increase after the upgrade to 3.3, which is normal.
Built-in Frame Graph rendering customization layer, subsequent versions will be connected to the rendering pipeline, and the customization interface will be opened to users.
Support Subpass in Vulkan & Metal backend.
Add the ability to debug with iOS Simulator on Apple devices with M1 CPU, you need to refer to Document Usage.
The binding generator is fully compatible with python 2.7/3.x (64 bit).
Breaking changes
Building compressed textures no longer has a default png image. If you use a project with this feature, please add a default image for the existing compressed texture configuration in the project configuration (from Forum Feedback.)
Currently supports direct import of HDR textures. If you used an RGBE formatted .png before, please replace with the original .hdr textures.
We fixed an FBX resource import problem: If the FBX model contains multiple animations, the second and subsequent animations incorrectly include all the animation data of the previous segment.Note: If animation segmentation has been configured, it may need to be adjusted. However, we have not received feedback from external developers on this issue.
Known Issues
The native platform Bullet back-end ray detection performance has decreased. We will fix this problem in the next minor version. You can temporarily switch to the PhysX back-end for use or reduce the number of rays per frame.
The startSpeed, startRotation, gravityModifier properties of 3D particles may display abnormally in Curve mode. This problem will be fixed in the next minor version.
Upgrading
Cocos Creator 3.x version has been officially released, version 2.4 will be used as the LTS (long-term support) version, providing continuous updates for the next two years! In 2021, 2.4 will continue to update the version, providing bug fixes and new mini-game platform support to ensure that your project is successfully launched; in 2022, we will continue to provide developers with the key to 2.4 Bug fixes to ensure the smooth operation of online games! Therefore:
Existing 2.x projects can continue to develop without a compulsory upgrade to 3.0.
For new projects, it is recommended to use version 3.0 for development. We will continue to optimize the development experience and operating efficiency of 3.0 to support the smooth launch of heavy games of different categories such as 2D and 3D.
Upgrade from version <3.1.0
Starting from v3.1, the priority attribute of the UITransform component has been deprecated. If you need to adjust the order of the node tree, please use the setSiblingIndex method. Prior to v3.1, nodes that were created by code and depended on the priority attribute may have inconsistencies in the performance of the node tree. Please adjust them manually.
RenderTexture will be inconsistent between positive and negative on different platforms. In order to solve this problem, Creator has added the SAMPLE_FROM_RT macro to the effect. When using RenderTexture, you need to set the SAMPLE_FROM_RT macro to true, and each backend will be uniformly adapted to The correct effect.
Upgrade from version <2.4.5
Cocos Creator 3.x version has been officially released, and version 2.4 will be used as the LTS (long-term support) version, providing continuous updates for the next two years! In 2021, 2.4 will continue to be updated to provide bug fixes and new mini-game platform support to ensure the successful launch of your project; in 2022, we will continue to provide developers with 2.4 key issue fixes to ensure that games that have already been launched Smooth operation! therefore:
Existing 2.x projects can continue to develop with peace of mind, without a compulsory upgrade to 3.0.
If you want to upgrade an existing 2.x project to 3.x due to project requirements, you can use the 2.x resource import tool provided by Creator. This tool will support the perfect import of old project resources and the auxiliary import of codes. Code-assisted import will convert js into ts, add component type declarations, attribute declarations, and function declarations. The references of components in the scene will be preserved, and the code inside the function will be imported in the form of comments, which can reduce the developer’s upgrade Difficulty. For detailed upgrade instructions, please refer to the Upgrade Guide.
For new projects, it is recommended to use version 3.0 for development. We will continue to optimize the development experience and operating efficiency of 3.0 to support the smooth launch of heavy games of different categories such as 2D and 3D.
The upgrade operation of Cocos Creator to the project is irreversible. Please submit or backup the old version of the project before upgrading. Most projects can usually be upgraded automatically, but because the project is inevitably unique, developers should try and evaluate the new version of the engine in advance according to the needs of the project. In addition, for stability considerations, it is recommended that projects that are about to go online or already online should be carefully upgraded. For detailed upgrade instructions, please refer to the Upgrade Guide. Those who encounter difficulties in upgrading, welcome to give us feedback and we will try our best to assist.
Cocos Creator v3.2.1 is the result of merging v3.1.2 into v3.2.1, and continues to bring a more stable experience on the major version branch. Both v3.2 users and v3.1.x users can upgrade without pain.
Release Notes
Web & mini-game 2D rendering performance optimization
Optimize the startup performance of mini-games
Optimize the runtime performance of animation components
Optimize the PCF shadow blur effect, which is more friendly to low-precision ShadowMap
Optimize bullet physics engine performance
Added automatic resource scanning switch, large projects can manually refresh the resource manager to improve the editor experience
TS strict mode is not turned on by default when creating a project (manually recommended)
Solve the memory leak caused by Mask
Solve the memory leak caused by MeshRenderer setting material
Enhance the fault tolerance of FBX model import
Compatible with obsolete AudioClip playback interface
Important
Fixed the issue of the Empty template creation project
Fixed the problem of multiple PASS switching in the material editor and some attribute display loss
Fixed JointTextureLayout panel cannot be scrolled
Fixed the issue that the setting window of SplashScreen could not be closed
Fixed the problem that the script on the root node of the prefab is lost in the native environment
Fixed rendering errors caused by repeated loading of Morph models
Fixed crash when TTF font is missing
Animation editor fix
Fixed the problem that the keyframe of the animation editor node could not be deleted directly
After the animation editor is selected, press Ctrl to add keyframes and then copy and paste, zoom, and arrange keyframes are abnormal
Fixed the problem that the scroll bar does not appear when the attribute list of the animation editor exceeds the limit. After the sample is modified, the current time display is not updated in real-time
Environment and light and shadow
Fixed the texture error after IBL is turned on
Fixed the problem that the skybox could not be displayed for the first time setting
Fixed GPU pre-baked skeletal animation failure after opening ShadowMap shadow
Particle module repair
Fixed the issue that the particle material cannot be displayed when the node is not enabled
Fixed the particle start speed effect problem and the gravity effect problem when rotating
Fixed that the cache is still used in the build after the modification of the automatic atlas configuration feedback from the forum
Fixed the git ignore configuration problem of Android ABI without default value and native folder feedback from forum
Tiled map fixes
Fix the display error of Tilesets under multi-atlas
Fix the error of TiledLayer getTiledTileAt function
2D skeletal animation
Fixed the problem of editor update color, Spine and DB transparency does not take effect
Fixed the problem that Spine on web and native uses blend mode to display incorrectly
Fixed the issue that the Spine hanging node did not take effect after the editor set the scale
In addition, the v3.3.0 version has entered late testing. This version has some very important updates that should be known in advance:
Further increase the proportion of nativization, implement rendering scenes in the native layer, optimize performance, and lay a solid foundation for the future upper-layer nativization and scene management
Optimized rendering pipeline to reduce IO pressure
Optimize the experience of using large projects: reduce the memory usage of the editor, avoid crashes, and optimize lag
Optimize the standard lighting model
Animation data reconstruction and upgrade: prepare for the animation system upgrade and animation state machine
The physical behavior of each back-end is unified
Delayed rendering pipeline optimization: light source clipping, SSPR, etc.
This update fixes some known issues. Cocos Creator will continue to optimize performance to bring developers a better experience! The following is the detailed update content.
Important updates
Optimize the loading speed of editor resources. After the resources are imported for the first time, the editor will be opened again afterward. The time required is only less than 50% of the previous version, which greatly optimizes the startup speed and improves development efficiency
Optimize the stuttering problem when the editor is built. We moved the engine compilation process to the worker, which will not block the execution of the main process, and the developer can continue the development work while building
Optimize the performance of the sequence frame animation on the iOS platform, which can increase the performance by up to three times on the old iPhone 6s Plus model [#8528]
Add the scene list to the preview toolbar, you can quickly select the preview scene without switching to the corresponding scene, improving work efficiency
Editor
Fixed the problem that the Hash value of the Zip file is inconsistent after each build
Fixed the problem that dragging nodes with subclasses to the properties of the parent class is invalid
Fixed the problem that the node on the hierarchy panel cannot be located by clicking the attribute option on the attribute panel
Fixed an issue where the small Gizmos square was offset outside the node when the light node was moving
Fixed the problem that the Explorer did not enter the selected state after renaming and pressing Enter
Fixed the problem that the modification of numTilesX and numTilesY in the 3D particle Texture Animation module did not take effect immediately.
Fixed the problem that the 3D particle Rotation module could not set separateAxes, and the modified XY rotation was invalid.
Fixed the problem that the modification does not take effect immediately when using the curve in the 3D particle size module.
Added VideoClip type, the video resource is automatically recognized as VideoClip format after import
Fixed the problem of noise in compressed textures, thanks to Xiaopang Dacheng
Fixed the problem that the depthWrite value of the built-in Unlit material is incorrect
Fixed the problem that the rich text component causes the open scene data to change [#8903]
Engine
Fixed the problem of incorrect calculation of material hash value due to uniform order [#8823]
Fixed the issue that sp.Skeleton.clearTrack does not reset the initial posture [#8801]
Fixed the problem of incorrect calculation of cc.Color.fromHex[#8762]
Added Node.setSelfGroupIndex interface for setting self grouping [#8614], thanks to Xiaopang Dacheng
Fixed the problem that the Mark component uses the wizard to check the delay loading error after checking [#8264]
Fixed the issue of event loss caused by triggering other events in event callback [#8276]
Fixed the problem that the game content cannot be pushed up after opening the soft keyboard multiple times [#8374]
Fixed the problem that touch nodes, and then hide nodes, all touch events are invalid after releasing the touch point [#8969]
Added Animation.hasAnimationState API to determine whether there is an AnimationState, thank you Xiaopang Dacheng
Mini Game
Fixed the problem of reporting errors when calling cc.assetManager.cacheManager.clearLRU[#234]
Breaking Change
-cc.sys.isNative is changed to false on the fast game platform
Upgrade Tips
As Cocos Creator 3.0 version has been officially released, v2.4.x will be used as the LTS (long-term support) version, providing continuous updates for the next two years! In 2021, 2.4 will continue to be updated to provide bug fixes and new mini-game platform support to ensure the successful launch of your project; in 2022, we will continue to provide developers with the key to 2.4 Bug fixes to ensure the smooth operation of online games! therefore:
Existing 2.x projects can continue to develop without a compulsory upgrade to 3.0.
For new projects, it is recommended to use version 3.0 for development. We will continue to optimize the development experience and operating efficiency of 3.0 to support the smooth launch of heavy games of different categories such as 2D and 3D.
Upgrading a project from a previous version of Cocos Creator is irreversible. Please backup the old version of the project before upgrading.
Most projects can usually be upgraded automatically, but because the project is inevitably unique, developers should try and evaluate the new version of the engine in advance according to the needs of the project. In addition, due to stability considerations, it is recommended that projects that are about to go online or already online should be carefully upgraded. The following is the upgrade instructions. If developers encounter difficulties during the upgrade, please give us feedback and we will try our best to assist.
Adjusted the directory structure after the project is built and adjusted the API of BuildResults. If you use the editor plug-in to get the editor’s build results, please refer to Customized Project Build Process Upgrade Guide
The cc.RawAsset that was deprecated since 1.10 has been officially removed, please use cc.Asset instead. Since 2.4 is no longer compatible with the legacy usage of the RawAsset type in the original 1.x project, it is recommended that all projects be upgraded to 2.4, especially those upgrading from version 1.9, be edited in any 1.10 ~ 2.3 version. All warnings or errors output when the compiler compiles the code is processed correctly and then upgraded to 2.4.
cc.Color.fromHex is deprecated, please use cc.Color.fromHEX interface
Upgrade from < 2.3.3 version
The CCTexture2D and CCTexture2DRGB methods in the Effect have been abandoned.
Vec3.FRONT has been abandoned, please use Vec3.FORWARD instead.
Upgrade from < v2.3.0 version
Since v2.3.0, Android and Android Instant use the same build template, please note:
If the code is used solely by the Android platform, please put it in the app/src directory, and the third-party library used by itself, please put it in the app/libs directory.
If the code and third-party libraries used by Android Instant are separate, please put them in the game/src, game/libs directories.
For code and third-party libraries shared by Android and Android Instant, please place them in the src and libs directories under the proj.android-studio root directory, respectively.
proj.android-studio under the root directory jni/CocosAndroid.mk, jni/CocosApplication.mk, mainly used to configure engine-related configuration, developer configuration, it is recommended that Android be placed in app/jni/Android.mk and app/jni/Application.mk, Android Instant, please put in game/jni/Android.mk and game/jni/Application.mk.
When Cocos Creator compiles for Android, it will execute assembleRelease/Debug by default, and when compiling for Android Instant, it will execute instant: assembleRelease/Debug.
In addition, when Cocos Creator compiles for Android, it will execute assembleRelease/Debug by default, and when compiling Android Instant, it will execute in stant:assembleRelease/Debug.
If you have customized the pause logic when switching between audio background and background, please remove it after upgrading to 2.3.0 Currently Cocos Creator games automatically pause and resume audio internally when switching between front and back on all platforms. If the developer has customized this block before, and listens for and performs audio operations like cc.audioEngine.pause() and resume(), it may conflict with the engine’s default behavior. If you encounter related audio issues, simply remove the corresponding custom code.
Upgrade from version v2.0 – v2.3.0
Starting from 2.3.0, the Canvas component is no longer responsible for setting the Canvas node size to the screen size. This behavior will be implemented in conjunction with the Widget component. To ensure compatibility, after the 2.0 project is upgraded, the node where Canvas is located will automatically add Widget components. (No problem upgrading from a 1.0 project)
Upgrade from < v2.2.0
Starting from 2.2.0, we have strengthened the memory management mechanism, and now require users to dynamically create cc.Node which is independent of the scene node tree through code must be released through destroy(), otherwise the engine cannot know when to recycle this type The memory of the node will cause a memory leak.
In addition, the nodes that are manually removed from the scene need to be unified when they are not needed.
// Assuming testNode is a node in the scene, if it was manually
// removed from the scene before, such as
testNode.parent = null;
// or
testNode.removeFromParent(true);
// or
parentNode.removeChild(testNode);
// If testNode will be used again in the future, there is no need to
// manually destroy the node otherwise it should be called manually
testNode.destroy();
If a node is managed via cc.NodePool, it is not affected.
Cocos Creator 3.1.2 mainly fixes the stability problems of v3.1 and optimizes the editor workflow. All developers are welcome to use and experience! Please make a backup of relevant files before upgrading! The following is the detailed update content.
v3.1.2 is a version that optimizes experience and performance on v3.1.1. The update content of this version is not included in v3.2. Later, the v3.1.2 update will be merged into v3.2.1 and v3.3.0!
Since 3.1.0, the engine group has actually been advancing three version lines in parallel, v3.2.0, v3.1.x, v3.3.0, of which v3.2 has a requirement for the release of Hongmeng 2.0, so the release date is set early Now, for stability, the main reason is to increase the Hongmeng platform support on the basis of v3.1.1. After that, we continue to receive feedback from developers about 3.1. In order to more effectively solve the pain points encountered by developers and lower the upgrade threshold for developers, we have decided to continue to optimize the experience and performance on v3.1.2 Performance, delivered to developers. At present, Cocos Creator v3.x, as a new 3D engine, is still far from the expectations of developers. We hope to give developers stronger confidence through this practical action of continuous delivery. At the same time, thank you to all the v3.x pioneers for their support, it is your feedback that makes the engine more and more perfect!
Release Notes
Web & mini-game 2D rendering performance optimization
Optimize the startup performance of mini-games
Optimize the runtime performance of animation components
Optimize the PCF shadow blur effect, which is more friendly to low-precision ShadowMap
Optimize bullet physics engine performance
Added automatic resource scanning switch, large projects can manually refresh the resource manager to improve the editor experience
TS strict mode is not turned on by default when creating a project (manually recommended)
Solve the memory leak caused by Mask
Solve the memory leak caused by MeshRenderer setting material
Enhance the fault tolerance of FBX model import
Compatible with obsolete AudioClip playback interface
Important
Fixed the issue of the Empty template creation project
Fixed the problem of multiple PASS switching in the material editor and some attribute display loss
Fixed JointTextureLayout panel cannot be scrolled
Fixed the issue that the setting window of SplashScreen could not be closed
Fixed the problem that the script on the root node of the prefab is lost in the native environment
Fixed rendering errors caused by repeated loading of Morph models
Fixed crash when TTF font is missing
Animation editor fix
Fixed the problem that the keyframe of the animation editor node could not be deleted directly
After the animation editor is selected, press Ctrl to add keyframes and then copy and paste, zoom, and arrange keyframes are abnormal
Fixed the problem that the scroll bar does not appear when the attribute list of the animation editor exceeds the limit. After the sample is modified, the current time display is not updated in real-time
Environment and light and shadow
Fixed the texture error after IBL is turned on
Fixed the problem that the skybox could not be displayed for the first time setting
Fixed GPU pre-baked skeletal animation failure after opening ShadowMap shadow
Particle module repair
Fixed the issue that the particle material cannot be displayed when the node is not enabled
Fixed the particle start speed effect problem and the gravity effect problem when rotating
Fixed that the cache is still used in the build after the modification of the automatic atlas configuration feedback from the forum
Fixed the git ignore configuration problem of Android ABI without default value and native folder feedback from forum
Tiled map fixes
Fix the display error of Tilesets under multi-atlas
Fix the error of TiledLayer getTiledTileAt function
2D skeletal animation
Fixed the problem of editor update color, Spine and DB transparency does not take effect
Fixed the problem that Spine on web and native uses blend mode to display incorrectly
Fixed the issue that the Spine hanging node did not take effect after the editor set the scale
In addition, the v3.3.0 version has entered late testing. This version has some very important updates that should be known in advance:
Further increase the proportion of nativization, implement rendering scenes in the native layer, optimize performance, and lay a solid foundation for the future upper-layer nativization and scene management
Optimized rendering pipeline to reduce IO pressure
Optimize the experience of using large projects: reduce the memory usage of the editor, avoid crashes, and optimize lag
Optimize the standard lighting model
Animation data reconstruction and upgrade: prepare for the animation system upgrade and animation state machine
The physical behavior of each back-end is unified
Delayed rendering pipeline optimization: light source clipping, SSPR, etc.
In addition, various demos are also in production, such as the Parkour Demo that has been put on the Store.
The API documentation page is also being redesigned.
In short, we attach great importance to the voice of the community and will try our best to improve the 2D & 3D development experience of Cocos Creator v3.x step by step.
Cocos Creator 3.2 officially supports HarmonyOS, becoming the world’s first game engine that supports HarmonyOS. At the same time, Creator has conducted in-depth cooperation with the Bytedance platform to support the use of PhysX provided by the platform in byte games with experimental features! All developers are welcome to use and experience!
What’s new!
Support building HarmonyOS applications
In version 3.2, Creator supports one-click packaging of games into HarmonyOS applications. After configuring the HarmonyOS SDK and NDK paths, select HarmonyOS one-click packaging in the build panel. For detailed operations, please refer to the publishing HarmonyOS applications documentation.
ByteDance games support the use of PhysX capabilities provided by the platform
Cocos Creator and the ByteDance platform have conducted in-depth collaboration, with the experimental feature in v3.2 to support the use of PhysX physics capabilities provided by the ByteDance platform in ByteDance Mini Games, optimizing the performance of physics calculations, and having a nearly 100% performance improvement compared to Bullet physics
Multithreading can be enabled in the build panel:
Upgrading
Cocos Creator 3.x version has been officially released, version 2.4 will be used as the LTS (long-term support) version, providing continuous updates for the next two years! In 2021, 2.4 will continue to update the version, providing bug fixes and new mini-game platform support to ensure that your project is successfully launched; in 2022, we will continue to provide developers with the key to 2.4 Bug fixes to ensure the smooth operation of online games! Therefore:
Existing 2.x projects can continue to develop without compulsory upgrade to 3.0.
For new projects, it is recommended to use version 3.0 for development. We will continue to optimize the development experience and operating efficiency of 3.0 to support the smooth launch of heavy games of different categories such as 2D and 3D.
Upgrade from version < 3.1.0
Starting from v3.1, the priority attribute of the UITransform component has been deprecated. If you need to adjust the order of the node tree, please use the setSiblingIndex method. Prior to v3.1, nodes that were created by code and depended on the priority attribute may have inconsistencies in the performance of the node tree. Please adjust them manually.
RenderTexture will be inconsistent between positive and negative on different platforms. In order to solve this problem, Creator has added the SAMPLE_FROM_RT macro to the effect. When using RenderTexture, you need to set the SAMPLE_FROM_RT macro to true, and each backend will be uniformly adapted to The correct effect.
Upgrade from version < 2.4.5
Cocos Creator 3.x version has been officially released, and version 2.4 will be used as the LTS (long-term support) version, providing continuous updates for the next two years! In 2021, 2.4 will continue to be updated to provide bug fixes and new mini-game platform support to ensure the successful launch of your project; in 2022, we will continue to provide developers with 2.4 key issue fixes to ensure that games that have already been launched Smooth operation! therefore:
Existing 2.x projects can continue to develop with peace of mind, without compulsory upgrade to 3.0.
If you want to upgrade an existing 2.x project to 3.x due to project requirements, you can use the 2.x resource import tool provided by Creator. This tool will support the perfect import of old project resources and the auxiliary import of codes. Code-assisted import will convert js into ts, add component type declarations, attribute declarations and function declarations. The references of components in the scene will be preserved, and the code inside the function will be imported in the form of comments, which can reduce the developer’s upgrade Difficulty. For detailed upgrade instructions, please refer to the Upgrade Guide.
For new projects, it is recommended to use version 3.0 for development. We will continue to optimize the development experience and operating efficiency of 3.0 to support the smooth launch of heavy games of different categories such as 2D and 3D.
The upgrade operation of Cocos Creator to the project is irreversible. Please submit or backup the old version of the project before upgrading. Most projects can usually be upgraded automatically, but because the project is inevitably unique, developers should try and evaluate the new version of the engine in advance according to the needs of the project. In addition, for stability considerations, it is recommended that projects that are about to go online or already online should be carefully upgraded. For detailed upgrade instructions, please refer to the Upgrade Guide. Those who encounter difficulties in upgrading, welcome to give us feedback and we will try our best to assist.
Cocos Creator 3.1.1 mainly fixes the stability problems of v3.1 and optimizes the editor workflow. All developers are welcome to use and experience! Please make a backup of relevant files before upgrading! The following is the detailed update content.
Improvements
Added the ability to create Prefab resources in the Explorer panel
Added a new level manager panel that can be set in batches (Alt + click) to lock the node function (after being locked, it cannot be selected in the scene editor panel)
When the property in the property inspector is a non-null type, but has a null value, a new creation function is added
Bug Fixes
[EDITOR] Fixed the issue that may report errors when building the Android platform.
[EDITOR] Fixed the problem that the command line build using default values could not be successful.
[EDITOR] Fixed the problem of some boolean parameter conversion errors when building the command line.
[EDITOR] Fixed the invalid modification of Target Api Level when building Android platform.
[EDITOR] Fixed the problem that the PNG format image is generated incorrectly when the ETC1 RGB Separate A format and the PNG format are selected at the same time for the compressed texture.
[EDITOR] Fixed the issue that after adding skeletal animation events, it cannot be deleted all.
[EDITOR] Fixed the selection problem of component track in animation editor.
[EDITOR] Fixed the problem that the nodes or components in the nested Prefab referenced in the Prefab will be lost after saving.
[EDITOR] Fix the problem that the nodes or components in the Prefab will be lost after saving in the newly added components in the Prefab instance.
[EDITOR] Fixed the problem that the collapsed state of the property inspector interface record is invalid.
[EDITOR] Fixed the issue of whether to modify the child nodes together after editing the layer property of the node in the property inspector panel.
[EDITOR] Fixed the problem that the array in the property inspector panel does not recognize the dragged resource.
[EDITOR] Fixed the problem that when the SpriteFrame resource is dragged to the level manager panel to create a node, the layer property of the node is not UI_2D.
[EDITOR] Fixed the problem that there is no selected record for the last-level resource in the resource preview panel.
[EDITOR] Fixed the problem that the resource manager panel cannot accurately scroll to the internal resources in the folded folder.
[EDITOR] Fix the problem that the Joint Texture Layout panel cannot be scrolled.
[ENGINE] Fix the problem of incorrect effect of SafeArea component [#8654].
[ENGINE] Fixed the problem that the time scale of stop is not reset to 0 after calling pause on the audio of the Xiaomi Kuai game platform [#8636].
[ENGINE] Fix the issue that the audio of Huawei Quick Game Platform gets currentTime as string type [#8656].
[ENGINE] Fixed the problem that the touch event callback of the LianShang game platform will cause the stuck on the low-end machine [#8661].
[ENGINE] Fix the problem that touch events are unavailable on the iPad browser [#8673].
[ENGINE] Fix the problem that the gravity sensor of QQ browser, WeChat mini game iOS terminal, Baidu mini game cannot be turned on or is incorrect [#8632].
[ENGINE] Fix the problem of CacheManager.clearLRU call error [#8663].
[ENGINE] Fix the problem that the SubContextView node cannot be rendered due to the modification of the node layer [#8677].
Known Issues
There is a problem with the keyboard and mouse adaptation of the WeChat PC. We will fix this problem in the next version, or you can manually merge this PR fix: [#8626]
You need to manually call the Sprite.updateMaterial function after setting the RenderTexture in Sprite, otherwise it may cause image flipping problems on some platforms
Checking UseIBL on the scene skybox option may cause the cc_environment binding to be lost. This problem will be fixed in the next version
Upgrading
Cocos Creator 3.x version has been officially released, version 2.4 will be used as the LTS (long-term support) version, providing continuous updates for the next two years! In 2021, 2.4 will continue to update the version, providing bug fixes and new mini-game platform support to ensure that your project is successfully launched; in 2022, we will continue to provide developers with the key to 2.4 Bug fixes to ensure the smooth operation of online games! Therefore:
Existing 2.x projects can continue to develop without compulsory upgrade to 3.0.
For new projects, it is recommended to use version 3.0 for development. We will continue to optimize the development experience and operating efficiency of 3.0 to support the smooth launch of heavy games of different categories such as 2D and 3D.
Upgrade from version <3.1.0
Starting from v3.1, the priority attribute of the UITransform component has been deprecated. If you need to adjust the order of the node tree, please use the setSiblingIndex method. Prior to v3.1, nodes that were created by code and depended on the priority attribute may have inconsistencies in the performance of the node tree. Please adjust them manually.
RenderTexture will be inconsistent between positive and negative on different platforms. In order to solve this problem, Creator has added the SAMPLE_FROM_RT macro to the effect. When using RenderTexture, you need to set the SAMPLE_FROM_RT macro to true, and each backend will be uniformly adapted to The correct effect.
Upgrade from version <2.4.5
Cocos Creator 3.x version has been officially released, and version 2.4 will be used as the LTS (long-term support) version, providing continuous updates for the next two years! In 2021, 2.4 will continue to be updated to provide bug fixes and new mini-game platform support to ensure the successful launch of your project; in 2022, we will continue to provide developers with 2.4 key issue fixes to ensure that games that have already been launched Smooth operation! therefore:
Existing 2.x projects can continue to develop with peace of mind, without compulsory upgrade to 3.0.
If you want to upgrade an existing 2.x project to 3.x due to project requirements, you can use the 2.x resource import tool provided by Creator. This tool will support the perfect import of old project resources and the auxiliary import of codes. Code-assisted import will convert js into ts, add component type declarations, attribute declarations and function declarations. The references of components in the scene will be preserved, and the code inside the function will be imported in the form of comments, which can reduce the developer’s upgrade Difficulty. For detailed upgrade instructions, please refer to the Upgrade Guide.
For new projects, it is recommended to use version 3.0 for development. We will continue to optimize the development experience and operating efficiency of 3.0 to support the smooth launch of heavy games of different categories such as 2D and 3D.
The upgrade operation of Cocos Creator to the project is irreversible. Please submit or backup the old version of the project before upgrading. Most projects can usually be upgraded automatically, but because the project is inevitably unique, developers should try and evaluate the new version of the engine in advance according to the needs of the project. In addition, for stability considerations, it is recommended that projects that are about to go online or already online should be carefully upgraded. For detailed upgrade instructions, please refer to the Upgrade Guide. Those who encounter difficulties in upgrading, welcome to give us feedback and we will try our best to assist.
The launch of Cocos Creator v3.0 marks a new journey for Creator, and Cocos Creator 3.1 is the first cornerstone of the journey. This version update brings many great new features, including deferred rendering contributed by the Huawei HiSilicon team. Pipeline, PhysX physics backend support, etc.; at the same time, compared to version 3.0, various aspects of performance have also been optimized, such as frame animation performance, loading performance, package body, and so on. We will continue to cultivate deeply on the basis of 3.x, with a sincere attitude and dedicated spirit, steadfastly improve the product experience, and benefit all developers. All developers are welcome to use and experience! Please make a backup of relevant files before upgrading! The following is the detailed update!
What’s new
Added deferred rendering pipeline (thanks to the contribution of the Huawei HiSilicon team), you can select the deferred rendering pipeline in the project settings:
Introduce multi-threaded rendering architecture. On the native platform, the traditional single-threaded architecture can no longer meet the rendering of large-scale scenes. Therefore, Creator initially split the traditional single-threaded architecture into two main threads, a rendering thread and a device thread, in v3.1. In addition to the split of the main thread, Creator also parallelizes the submission process of command buffers to speed up rendering efficiency. The multi-threaded rendering architecture diagram is as follows:
Added PhysX physics support, currently supports native platforms other than Android x86, and has a performance improvement of more than 100% on iOS (if you need to preview on the web platform, you can refer to the physics-3d project in example-3d, the main content is modified In the preview-template folder):
The editor supports bone octahedron display, you can visually see the distribution status of the model bones:
Support previewing animation on the Inspector of FBX/glTF resources:
Open the new version of the curve editor, support to edit the left and right slopes separately, and support the cycle mode of directly displaying the curve:
Android platform supports the construction of x86_64 architecture.
Support adding/removing components on the Prefab instance.
The Mac build supports the M1 option, which is used to better prompt the support issues of some known engine modules on Apple M1 (Silicon) architecture devices.
Added the laboratory function of scene instant cache, which is enabled by default, and can restore data after the scene exits abnormally.
The editor adds ui-curve and ui-curve-editor components, which can be used directly by plug-in developers.
Release Notes
Improvements
Improve the operating performance of the engine’s native platform.
Improve the performance of engine frame animation.
Improve the loading speed of runtime resources (build mode).
Optimize the stuttering problem of the animation editor when editing a large number of key frames.
The auto atlas panel adds three optimization options when using auto atlas in the Bundle, which is used to eliminate unused resources in the auto atlas in the Bundle to reduce the package body.
Optimize the problem that the automatic atlas is referenced by multiple Bundles, which causes the pictures to be copied, and reduce the package body.
Shadow Map supports linear depth, depth map compression (mutually exclusive with linear depth function), self-shadow effect, and normal bias parameter settings.
Lighting Map supports RGBE format.
Editor
Optimize the event editing panel of the animation editor to avoid generating empty function data.
The release path of the build release panel is adjusted to a switchable protocol header.
The export/import build configuration function of the build release panel supports cross-version import after export.
The build release panel adds a verification mechanism, and the build cannot be built when the build options are filled in incorrectly.
Optimize the output log of packaged rpk for some small game platforms.
Optimize the construction of output log information and fix the problem of log loss.
Optimize the handling of resource loss, which can be automatically restored after resource recovery.
New Button locks the Label node by default, making it easy to select in the scene.
Fix the scene data problem that may be caused by exiting from Prefab.
The animation baking rate can be selected when FBX is imported.
Solve the problem that some FBX import will cause the editor to freeze.
FBX/glTF adds import option Promote single root node.
Fixed the issue that TiledMap was lost when importing .tmx resources.
Engine
Fixed the problem of TiledMap animation failure.
Fixed the problem that Spine did not take effect in native premultiplication.
Fixed the issue that the transparency display of Spine was abnormal when the premultiplication was turned on.
Fixed the incompatibility of Vulkan drivers for some models.
Fix the problem that the Shadow Map display of Metal related platforms is disordered.
Breaking Changes
The playback interface of AudioClip has been removed, and the started event monitoring is not supported. AudioClip is now a pure audio resource type.
You can no longer directly call the CCStandardShading function in the effect resource, and encapsulate it in the CC_STANDARD_SURFACE_ENTRY macro definition. It is recommended to only do custom logic in the surface function.
Rename the GFX module, remove the GFX prefix, and use import {gfx} from'cc'.
The automatic atlas and compressed texture switches have been removed from the build panel, and the project will be processed directly after the automatic atlas and compressed texture are configured.
Deprecated cc-fog header files, use cc-fog-vs and cc-fog-fs instead.
Removed some constants under sys, including sys.LINUX, sys.BLACKBERRY, sys.EMSCRIPTEN, sys.TIZEN, sys.WINRT, sys.WP8, sys.QQ_PLAY, sys.FB_PLAYABLE_ADS.
Known Issue
There is a problem with the keyboard and mouse adaptation of WeChat PC. We will fix this problem in v3.1.1. You can merge this PR manually to fix #8626.
The SafeArea component is temporarily unavailable. We will fix this problem in v3.1.1. You can solve this problem by manually merging this PR #8652.
You need to manually call the Sprite.updateMaterial function after setting the RenderTexture in Sprite, otherwise it may cause the problem of image flipping on some platforms.
Upgrading
Cocos Creator 3.x version has been officially released, version 2.4 will be used as the LTS (long-term support) version, providing continuous updates for the next two years! In 2021, 2.4 will continue to update the version, providing bug fixes and new mini-game platform support to ensure that your project is successfully launched; in 2022, we will continue to provide developers with the key to 2.4 Bug fixes to ensure the smooth operation of online games! Therefore:
Existing 2.x projects can continue to develop without compulsory upgrade to 3.0.
For new projects, it is recommended to use version 3.0 for development. We will continue to optimize the development experience and operating efficiency of 3.0 to support the smooth launch of heavy games of different categories such as 2D and 3D.
Upgrade from version <3.1.0
Starting from v3.1, the priority attribute of the UITransform component has been deprecated. If you need to adjust the order of the node tree, please use the setSiblingIndex method. Prior to v3.1, nodes that were created by code and depended on the priority attribute may have inconsistencies in the performance of the node tree. Please adjust them manually.
RenderTexture will be inconsistent between positive and negative on different platforms. In order to solve this problem, Creator has added the SAMPLE_FROM_RT macro to the effect. When using RenderTexture, you need to set the SAMPLE_FROM_RT macro to true, and each backend will be uniformly adapted to The correct effect.
Upgrade from version <2.4.5
Cocos Creator 3.x version has been officially released, and version 2.4 will be used as the LTS (long-term support) version, providing continuous updates for the next two years! In 2021, 2.4 will continue to be updated to provide bug fixes and new mini-game platform support to ensure the successful launch of your project; in 2022, we will continue to provide developers with 2.4 key issue fixes to ensure that games that have already been launched Smooth operation! therefore:
Existing 2.x projects can continue to develop with peace of mind, without compulsory upgrade to 3.0.
If you want to upgrade an existing 2.x project to 3.x due to project requirements, you can use the 2.x resource import tool provided by Creator. This tool will support the perfect import of old project resources and the auxiliary import of codes. Code-assisted import will convert js into ts, add component type declarations, attribute declarations and function declarations. The references of components in the scene will be preserved, and the code inside the function will be imported in the form of comments, which can reduce the developer’s upgrade Difficulty. For detailed upgrade instructions, please refer to the Upgrade Guide.
For new projects, it is recommended to use version 3.0 for development. We will continue to optimize the development experience and operating efficiency of 3.0 to support the smooth launch of heavy games of different categories such as 2D and 3D.
The upgrade operation of Cocos Creator to the project is irreversible. Please submit or backup the old version of the project before upgrading. Most projects can usually be upgraded automatically, but because the project is inevitably unique, developers should try and evaluate the new version of the engine in advance according to the needs of the project. In addition, for stability considerations, it is recommended that projects that are about to go online or already online should be carefully upgraded. For detailed upgrade instructions, please refer to the Upgrade Guide. Those who encounter difficulties in upgrading, welcome to give us feedback and we will try our best to assist.
After the M1 chip was launched, the engine group received feedback from everyone, and the adaptation to the M1 chip was prioritized. Cocos Creator 3.0 version has already supported the environment of the M1 chip, 2.4.x followed closely, and finally Version 2.4.5 also officially supports the environment of the M1 chip, everyone is welcome to experience and use it!
New
Support Apple Silicon (M1) chip operating environment.
Bug Fixes
Fix the problem that caused the built-in effect to fail to load when the effect resource has a syntax error.
Fix the problem that the scale bar does not return to 0 when the animation editor is entered for the first time.
Fix the problem that the animation sequence on the component changes after editing the animation [#8295].
Fix the problem of removing the resident node in onDestroy and reporting an error [#8314].
Fix the inconsistency between the scrolling speed of Firefox’s Scroll View and Chrome [#8306].
Fix the problem of SafeArea error when playing vertical screen games on iPad, thanks to Xiaopang Dacheng [#224].
Upgrade Tips
As Cocos Creator 3.0 version has been officially released, v2.4.x will be used as the LTS (long-term support) version, providing continuous updates for the next two years! In 2021, 2.4 will continue to be updated to provide bug fixes and new mini-game platform support to ensure the successful launch of your project; in 2022, we will continue to provide developers with the key to 2.4 Bug fixes to ensure the smooth operation of online games! therefore:
Existing 2.x projects can continue to develop without compulsory upgrade to 3.0.
For new projects, it is recommended to use version 3.0 for development. We will continue to optimize the development experience and operating efficiency of 3.0 to support the smooth launch of heavy games of different categories such as 2D and 3D.
Upgrading a project from a previous version of Cocos Creator is irreversible. Please backup the old version of the project before upgrading.
Most projects can usually be upgraded automatically, but because the project is inevitably unique, developers should try and evaluate the new version of the engine in advance according to the needs of the project. In addition, due to stability considerations, it is recommended that projects that are about to go online or already online should be carefully upgraded. The following is the upgrade instructions. If developers encounter difficulties during the upgrade, please give us feedback and we will try our best to assist.
Adjusted the directory structure after the project is built and adjusted the API of BuildResults. If you use the editor plug-in to get the editor’s build results, please refer to Customized Project Build Process Upgrade Guide
The cc.RawAsset that was deprecated since 1.10 has been officially removed, please use cc.Asset instead. Since 2.4 is no longer compatible with the legacy usage of the RawAsset type in the original 1.x project, it is recommended that all projects to be upgraded to 2.4, especially those upgraded from version 1.9, be edited in any 1.10 ~ 2.3 version. All warnings or errors output when the compiler compiles the code are processed correctly, and then upgraded to 2.4
cc.Color.fromHex is deprecated, please use cc.Color.fromHEX interface
Upgrade from < 2.3.3 version
The CCTexture2D and CCTexture2DRGB methods in the Effect have been abandoned.
Vec3.FRONT has been abandoned, please use Vec3.FORWARD instead.
Upgrade from < v2.3.0 version
Since v2.3.0, Android and Android Instant use the same build template, please note:
If the code is used solely by the Android platform, please put it in the app/src directory, and the third-party library used by itself, please put it in the app/libs directory.
If the code and third-party libraries used by Android Instant are separate, please put them in the game/src, game/libs directories.
For code and third-party libraries shared by Android and Android Instant, please place them in the src and libs directories under the proj.android-studio root directory, respectively.
proj.android-studio under the root directory jni/CocosAndroid.mk, jni/CocosApplication.mk, mainly used to configure engine-related configuration, developer configuration, it is recommended that Android be placed in app/jni/Android.mk and app/jni/Application.mk, Android Instant, please put in game/jni/Android.mk and game/jni/Application.mk.
When Cocos Creator compiles for Android, it will execute assembleRelease/Debug by default, and when compiling for Android Instant, it will execute instant: assembleRelease/Debug.
In addition, when Cocos Creator compiles for Android, it will execute assembleRelease/Debug by default, and when compiling Android Instant, it will execute in stant:assembleRelease/Debug.
If you have customized the pause logic when switching between audio background and background, please remove it after upgrading to 2.3.0 Currently Cocos Creator games automatically pause and resume audio internally when switching between front and back on all platforms. If the developer has customized this block before, and listens for and performs audio operations like cc.audioEngine.pause() and resume(), it may conflict with the engine’s default behavior. If you encounter related audio issues, simply remove the corresponding custom code.
Upgrade from version v2.0 – v2.3.0
Starting from 2.3.0, the Canvas component is no longer responsible for setting the Canvas node size to the screen size. This behavior will be implemented in conjunction with the Widget component. To ensure compatibility, after the 2.0 project is upgraded, the node where Canvas is located will automatically add Widget components. (No problem upgrading from a 1.0 project)
Upgrade from < v2.2.0
Starting from 2.2.0, we have strengthened the memory management mechanism, and now require users to dynamically create cc.Node which is independent of the scene node tree through code must be released through destroy(), otherwise the engine cannot know when to recycle this type The memory of the node will cause a memory leak.
In addition, the nodes that are manually removed from the scene need to be unified when they are not needed.
// Assuming testNode is a node in the scene, if it was manually
// removed from the scene before, such as
testNode.parent = null;
// or
testNode.removeFromParent(true);
// or
parentNode.removeChild(testNode);
// If testNode will be used again in the future, there is no need to
// manually destroy the node otherwise it should be called manually
testNode.destroy();
If a node is managed via cc.NodePool, it is not affected.
The option simulate global variables is removed, and the option execution scope is newly added.
The optional values are Global or Enclosed. When it is Global, execute the script directly in the target environment. When Enclosed, the entire script is wrapped in an IIFE function for execution, which means that variables declared with var at the top of the script will not be promoted to global variables.
Added functions for aligning the scene camera to a certain node.
Give clearer hints when trying to reference Node modules in the project
Eliminate redundant code of project scripts in the package body when building
Optimize the WeChat engine separation function and module removal to reduce the package body
Supports BMFont compressed texture using transparent channel separation format [#8364]
Editor
Fix the issue that the command line build will add a new build task
Fix the problem that the shortcut keys of the shortcut key panel may not be modified successfully under certain circumstances
Fixed the problem of delay in deleting multiple selected animation events by right-clicking
Fixed the problem of skeletal animation not being able to click on the property track and move the small red line to view normally in the animation editor
Fix the problem that the plugin manager needs to be manually refreshed to display after creating a build plugin
Fixed the problem that the plugin manager failed to import plugins on mac
Fix the problem of pop-up warning when plug-in mall is closed
Fixed the difference between the main light source of the engine and the baking effect
Fix the problem of baking non-n*n terrain errors
Fix the cache problem in the interface of editing particle nodes
Fix the problem that the sub-resource editing interface is not displayed when the picture is of textrue type
Fix the problem that the shortcut key configuration panel cannot be scrolled
Fixed the issue that the terrain brush of the terrain node was not reset after switching scenes
Fix the problem that iOS project cannot be built on M1 device
Fix the problem that sub-resources may be lost when glTF resources are imported
Fix the problem that the template file of the build plug-in created cannot be modified
Fix the problem that scene.name is missing when previewing
Engine
[SPINE] Fix the problem that the SkeletonTexture type is not exported [#8359]
[UI] Fix the problem of incorrect rendering of static batch components on iOS 14 [#8320]
[UI] Fix the incorrect line break of RichText component [#8345]
[UI] Fixed the problem of mask click penetration [#8313]
[UI] Fixed the always mode problem of Widget [#8304]
[SHADOW] Fixed the problem of setting extra texture error for plane shadow under instancing[#8336]
[SHADOW] Fixed the problem that the transparent model renders incorrectly after opening the shadow map under the Nvidia graphics card[#8303]
[SHADOW] Fixed the problem that flat shadows are not displayed under multiple light sources [#8328]
[TWEEN] Fix the problem that Tween does not support custom easing functions [#8321]
[PHYSICS] Fix the problem that the initialization type of rigid body is incorrect when it is not enabled [#8307]
[PHYSICS] Fix the problem that setting grid does not take effect when Ammo is running [#8315]
[ASSET] Fixed the rendering problem of ETC1 format compressed texture in WebGL2 environment [#8351]
Native
Fix the problem that the native Spine/Dragonbones node cannot be displayed after the active change [#8323]
Fix the problem that EditBox on Win32 / macOS platform cannot end editing after pressing Enter [#3295]
Breaking Changes
After the easing system update timing is changed from the lateUpdate stage to the update stage, the processing timing may need to be adjusted [#8305]
In order to adapt to M1, the third-party library is recompiled, and the Xcode version is required to be 11.5+.
Known Issue
When importing FBX with negative frame animation, the editor may not work. Please make sure that there is no negative frame animation in the corresponding DCC tool. Later versions will fix this problem.
The native platform Spine premultiplied rendering is incorrect, this issue will be fixed in later versions.
Upgrading
Cocos Creator 3.x version has been officially released, version 2.4 will be used as the LTS (long-term support) version, providing continuous updates for the next two years! In 2021, 2.4 will continue to update the version, providing bug fixes and new mini-game platform support to ensure that your project is successfully launched; in 2022, we will continue to provide developers with the key to 2.4 Bug fixes to ensure the smooth operation of online games! Therefore:
Existing 2.x projects can continue to develop without compulsory upgrade to 3.0.
For new projects, it is recommended to use version 3.0 for development. We will continue to optimize the development experience and operating efficiency of 3.0 to support the smooth launch of heavy games of different categories such as 2D and 3D.
The upgrade operation of Cocos Creator to the project is irreversible. Please submit or backup the old version of the project before upgrading. Most projects can usually be upgraded automatically, but because the project is inevitably unique, developers should try and evaluate the new version of the engine in advance according to the needs of the project. In addition, for stability considerations, it is recommended that projects that are about to go online or already online should be carefully upgraded. For detailed upgrade instructions, please refer to the Upgrade Guide. Those who encounter difficulties in upgrading, welcome to give us feedback and we will try our best to assist.
After the v3.0 preview was released, the engine team received a lot of enthusiastic feedback from developers, this feedback really helped to increase the team’s motivation to release an amazing product. Creator v3.0 unifies the development workflow of 2D and 3D, taking into account the development experience from light and heavy games, and integrates almost all the functions of Creator v2.x and Creator 3D 1.x. v3.0 now encompasses these versions under a single umbrella. v3.0 has been further optimized in performance, improved quality, and introduces more features, such as access to the native runtime of Spine and DragonBones, support for the use of NPM libraries, and refactored the Prefab system and UI System and many other contents.
What’s new
v3.0 uses a new future-oriented engine architecture, which will bring high-performance, data-oriented and load-balanced renderers to the engine, and seamlessly support Vulkan, Metal & OpenGL ES multi-backend rendering. In the future, we also plan to support mobile VR/AR and some of the desktop & console platforms. Below is a brief introduction to core features of v3.0.
Powerful editor features
The integrated editor brings a lightweight and easy-to-use creative experience. Cocos Creator v3.0 is refactored, expanded and upgraded on the editor framework that Cocos Creator 2.x has used for many years.
Brand new interface design, more concise and clear.
Resource system upgrade, enhanced support for super large projects, more efficient and reliable.
Code isolation between modules, pure message-driven, more stable.
The extension system is completely modularized to welcome a more powerful plug-in mechanism.
One-click access to Cocos’s quality services
Cocos Creator v3.0 provides one-click access to various high-quality services officially launched by Cocos, improving development efficiency and launching more high-quality content. Cocos will continue to launch additional and improved services.
Brand new Prefab system
Creator v3.0 re-implements the Prefab system with features such as:
Support Prefab automatic synchronization.
Prefab instance can overwrite attributes in Prefab resource.
Support Prefab nesting.
Build system
Build content caching
After building, Creator v3.0 will cache most of the build content, including resources, compressed textures, automatic atlas, engine code, etc. In the subsequent build, if nothing has changed, the cached content will be used directly to speed up the build and improve efficiency.
Task-based build list
The build and publish will be carried out in the form of build tasks, saving the configuration, status, log, etc. of each build, making it easy to switch build tasks and view historical configurations.
Compile and generate separately after build
The generation stage of each mini game platform is extracted, allowing to modify the content of the file after build to regenerate rpk/cpk.
Build process hooks
The build extension support adding hooks before and after compilation to customize the build process.
Support Asset Bundle
Creator v3.0 uses Asset Bundles as a resource modularization tool. Developers can build textures, scripts, scenes and other resources into multiple Asset Bundles, and then load them on demand during the game’s running process, thereby reducing the time required to download and load the game for the first time. Asset Bundles can be placed freely as required, for example, they can be placed in remote servers, local, or sub-packages of small game platforms, or they can be reused across projects to load Asset Bundles in sub-projects.
Splash Screen
It supports setting up Splash Screen during construction, which is used to display a cutscene before the game starts, and optimize the startup speed of the first screen.
GameView
GameView is a game running panel embedded in the editor. Developers can run the game directly in the editor without opening the browser preview. In addition to a more seamless development experience, debugging and modifying element states in real time through the scene editor or other panels during the game running process, making game development more efficient!
Extension
Powerful extension system
Cocos Creator v3.0 has a more powerful extension system. Almost all internal modules of the editor are built with extension system. You can quickly create your own extensions in the extended menu to achieve the customizations you want. In addition, Creator v3.0 also provides an extension manager, which can easily manage the operation and uninstallation of all extensions.
Message communication
Extensions can use IPC messages to communicate with other extensions or the editor core, and quickly and easily use the capabilities provided in the editor. Cocos Creator v3.0 also provides a message manager, which can clearly see the functions currently provided in the editor, reducing the threshold for extension development.
Animation Editor
The Animation Editor is an important module that we have been continuously optimizing. In addition to standard displacement, rotation, zoom animation and sequence frame animation, this animation system also supports driving arbitrary component attributes and user-defined attributes, plus it can be edited at will The time curve and innovative movement trajectory editing functions allow content producers to produce various dynamic effects without writing a line of code, and drive the game logic at will.
In addition to regular operations, the v3.0 Animation Editor also provides the following shortcut operations to help game developers achieve the desired content:
Batch key frame interval adjustment.
Copy and paste across node tracks.
Indirect attributes (such as material attributes) keyframe editing.
Directly select resources and directly edit key frame data in the animation editor.
Multi-select key frame zoom, move and delete.
Support multi-select nodes to add attribute tracks in batches.
Support copy and paste all animation data on the node.
Support shielding no key frame nodes and search nodes.
Support editing component tracks.
Support to adjust the layout of the animation editor.
A more complete tool chain
Support model preview.
After selecting the model in the editor, you can preview the model resources in all directions, and you can also view various textures used in the default materials.
New version of FBX importer.
Support the import of glTF resources, support khr-draco-mesh-compression, sparse accessor.
Support animation cutting.
Provide Mesh Optimizer tool.
Model import support quantized joints/weights.
Terrain Editor
Convenient terrain system to quickly draw terrain textures. Terrain editing mainly includes three major functions: Manage, Sculpt, and Paint. It also supports Normal Map, PBR material and custom material.
Built-in baking system
Baking is the process of generating light maps by pre-calculating the influence of light sources on objects and shadows projected with very high level of details. The light maps are then applied to the scene in runtime very efficiently, which can greatly improve the graphics quality of static scenes.
Configuration
Visual macro configuration
Provides a shortcut to modify the engine macro configuration. The configured macro will take effect during preview and build. At the same time, the default value of the current macro configuration will be updated with the configuration of the custom engine.
Batch configuration of compressed textures via presets
Support for adding compressed texture preset configuration, which is used to quickly configure the compression method of texture. After setting presets for image assets, you can also directly modify the presets to update the configuration for corresponding textures all at once, which greatly facilitates the overall management of the project.
Support 2.x project migration
In order to facilitate the upgrade of 2.x users, we provide a project migration plugin in 3.0, which can migrate projects above version 2.4.3 to version 3.0.0. This tool will support the perfect import of old project resources and the auxiliary import of code. Code-assisted import will convert js into ts, add component type declarations, attribute declarations and function declarations. The references of components in the scene will be preserved, and the code inside the function will be imported in the form of comments, which can reduce the developer’s upgrade Difficulty. However, there is still a big difference between the 2.x API and 3.0. We use deprecation and removal mechanisms to make runtime warnings as much as possible. But developers still need to make a lot of adjustments to the code in order to upgrade to 3.0 perfectly.
Powerful engine features
Cocos Creator v2.4 is very powerful in 2D rendering, while Cocos Creator v3.0 allows developers to make more beautiful 3D games. We have integrated the advantages of the two in 3.0, and fully support various functions of 2D and 3D. Whether 2D or 3D, 3.0 will meet your needs.
Rendering system
As the core module of the game engine, the rendering system plays a vital role and directly determines the content that the game can output to the player. An excellent rendering system must also take into account various platforms and smooth the differences between platforms. The rendering system of Cocos Creator v3.0 aims at future-oriented, high-performance, and cross-platform from architecture to design, which greatly improves rendering capabilities and robustness.
Supports multiple rendering backends of Metal, Vulkan, WebGL 1.0, WebGL 2.0, GLES2, GLES3, and provides a unified GFX graphics API layer to the rendering pipeline layer.
The GFX API design close to the modern graphics API helps the rendering pipeline layer to release the performance and possibilities provided by the modern graphics API as much as possible.
Built-in forward rendering pipeline, support user-defined rendering pipeline.
Physically based light sources, cameras and materials help developers use industrialized processes to create the most realistic visual effects.
Supports GPU Instancing batch optimization, which is suitable for drawing a large number of dynamic models with the same mesh, and supports instancing batches of models containing skeletal animation calculations.
Support global fog effect.
Powerful native renderer, using memory sharing mechanism to reduce JSB calls and speed up data access.
Support ASTC, ETC, ETC2, PVR and other compressed textures.
Light and Shadow
In the 3D world, light and shadow have always been extremely important components. They can enrich the environmental performance, and good quality shadows can achieve a fake effect and make the whole world more three-dimensional.
Physically based light source. Cocos Creator v3.0 uses optical measurement units to describe light source parameters. Based on optical measurement units, we can convert all the relevant parameters of the light source into physical values in the real world. In this way, the designer can adjust the light intensity, color, range and other information according to the actual lighting industrial parameters and the actual physical parameters of the real environment, so that the overall lighting effect and light attenuation are more in line with the real natural environment.
Multi-light support based on multi-pass.
Support high-performance flat shadow Planar Shadow.
Directional light and spotlight dynamic shadow based on Shadow Map, support PCF soft shadow and GPU Instancing.
Particle System
The particle system is the basis of the special effects of game engines. It can be used to simulate natural phenomena such as fire, smoke, water, clouds, snow, and fallen leaves, and it can also be used to simulate abstract visual effects such as luminous trajectories and speed lines. Good particle effects can make the game screen more stunning.
Support up to dozens of module settings, and support various types of curves, constant changes.
Support GPU particles, greatly improving rendering performance.
Support Cocos traditional 2D particles.
Material System
As a resource, material determines the rendering effect of the attached object. Almost all the rendered effects in the game are inseparable from the material. As a basic module, the material system provides a solid foundation for the superstructure.
Built-in physical-based standard materials.
Support Cocos Effect. The Cocos Effect based on YAML and GLSL designed by Cocos is a single-source embedded domain specific language(single-source embedded DSL). The YAML part declares the flow control list, and the GLSL part declares the actual Shader fragment. The above complement each other and together constitute a complete rendering process description.
Effect’s resource panel now supports previewing the compiled Shader code, and supports visual editing of each Define of the Shader.
Support material preview.
Middleware
Support TiledMap.
Support Spine, DragonBones.
Support Spine, DragonBones and TiledMap rendering in 3D scene (need to customize material to control depth detection).
Skeleton Animation System
Cocos Creator v3.0 has a built-in general animation system to display animation based on key frames. In the editor, we can easily produce key frame animation clips. We can also support importing skeletal animations already contained in external FBX and glTF resources. These animations can be edited in the resource manager. Animation effects can be previewed in the animation editor, animation event triggers can be added, and animation system APIs can be used. You can also freely control the animation playback.
In addition, we also support the following features:
CPU or GPU driven skeletal animation, can be switched freely.
Supports the fusion transition of animation (CPU driven).
Use binary format to store skeletal animation to reduce file size.
Support two components: general animation and skeletal animation.
Support material sub-attribute animation such as Uniform.
Support CPU driven Morph Target (Blend Shape).
Script system
The project development of Cocos Creator v3.0 has fully turned to TypeScript, and JavaScript is no longer supported in the project except for plug-in scripts in JavaScript or NPM modules. TypeScript support has been improved in v3.0:
Embrace ES6 and TypeScript, complete code hints and automatic import.
Attributes support independent type decorator: @integer, @float, @string, @boolean, @type etc…
Support Async Await syntax.
Optional Chaining support.
Nullish Coalescing support.
Certain circular reference behaviors will be detected and warned during operation.
Added core-js polyfills to help some low-end platforms complete ES6 support.
Support loose compilation mode, which can reduce package body and optimize performance.
Support using NPM modules.
Subdivide engine modules, allowing more detailed module removal.
UI system
Cocos Creator v3.0 continues the 2.x UI design, and further optimizes and upgrades, including the following:
Flexible and concise 2D rendering and UI interaction, layout components, support 20 kinds of components including Sprite, Label, Button, Widget, etc. You can use these basic components to combine various types of UI effects.
Support static batching. The engine provides the UIStaticBatch component. UIs that do not require frequent changes can use this component to cache rendering data, thereby reducing rendering consumption and improving performance.
Support dynamic image combining at runtime, reduce the number of drawcalls, and optimize performance.
Merged the UI rendering process and the forward rendering process, allowing 2D and 3D rendering components to be mixed, and rendering visibility is completely determined by the node Layer and camera Visibility.
Physics
Cocos Creator v3.0 currently has a built-in lightweight collision detection system Builtin and a physics engine cannon.js with physical simulation, as well as a powerful bullet compiled into asm.js/WASM version ammo.js, and provides users with an efficient componentized workflow and convenient usage.
Support multiple physical backend options, including ammo.js, cannon.js and more lightweight builtin physical.
Support WeChat mini games using WASM physical backend, which can achieve higher performance on iOS.
Physics system supports fixed step refresh.
Support physical materials.
Supports a variety of practical collision bodies including simple shapes, cones, planes, terrain, capsules, cylinders, static mesh collision bodies, etc…
Support point-to-point and hinge constraint components.
[IMPROVE] Reconstruct 3d physical collision matrix. The collision matrix is only used to initialize the grouping and mask of rigid bodies. It is no longer maintained and updated, and the Use Collision Matrix configuration item is abolished.
[IMPROVE] Refactored 3d rigid body, removed RigidBody.isKinematic, added RigidBody.type to set the rigid body type, removed fixedRotation, and replaced it with angularFactor.
[IMPROVE] UI supports custom materials.
[IMPROVE] Optimize UI system performance and reduce the number of drawcalls.
[FIX] Fix Safari 14 performance issues.
[FIX] Fix the problem of Button component Scale setting abnormal.
[FIX] Fix the problem that the lightPassIdx of submodels are consistent and cause rendering errors.
[FIX] Fix the problem that the terrain collider does not match the rendering effect after the node is zoomed.
[FIX] Fix the problem of reporting errors when calling the view.setFrameSize interface.
[FIX] Fix the problem that setting the label alignment of EditBox component is invalid when InputMode is not ANY.
Mini Game
[3.0 NEW FEATURE] supports a new subdomain scheme.
[3.0 NEW FEATURE] supports WeChat mini games to use wasm physical backend.
Native
[3.0 NEW FEATURE] Support Metal rendering backend.
[3.0 NEW FEATURE] supports Vulkan rendering backend.
[IMPROVE] further reduces jsb calls and optimizes performance.
Known Issue
The Vulkan backend on Android currently has performance issues, to be fixed in a future version.
On a machine with M1 chip, an error will appear when compiling the ios simulator, you need to manually change arch to arm64, which will be fixed in subsequent versions.
Android does not currently support the release of x86_64 architecture.
The native platform does not currently support freetype for text rendering.
Button component does not currently support enable auto gray effect option.
It is currently not possible to create components, delete components, delete sub-nodes, and adjust the order of sub-nodes for Prefab instances in the scene. It is recommended to perform these operations in the Prefab resource.
Nodes outside the prefab hierarchy currently cannot reference nodes or components in Prefab.
When the terrain’s size is not by n*n, the baking process will fail.
Upgraded old project from v2.x might have property referencing issue in prefab data, please refer to this topic 1 for detailed information and fix.
Breaking changes
The built-in effects of the engine source code are uniformly changed to a different naming rule from the editor resources. If an effect is not used at all in the project scene, it will not be obtained by using the effect name in the script (such as builtin-unlit, etc.). It is recommended that when developers need to create materials programmatically, they should uniformly expose the effect asset as the property of the script, mount it in the scene, and then directly pass in material.initialize.
The editor HOME directory has been switched from \~/.CocosEditor3D back to \~/.CocosCreator, and the plugin directory has been renamed from packages to extensions. Plugins after 3.0 will be stored in \~/.CocosCreator/extensions and PROJECT/extensions.
The original subdomain plan is no longer applicable, please switch to the latest subdomain plan.
No longer supporting JavaScript, only TypeScript.
cc.global variables are no longer supported, please use module import.
The 2D node will now strictly judge whether it can be rendered according to the visibility of the layer and the camera. If multiple cameras exist, there may be repeated rendering, and the layer of the node needs to be re-adjusted.
Refactored physics events. Events between static rigid bodies are no longer supported. It is recommended to add a Kinematic or Dynamic rigid body component to the corresponding node of the collision body that monitors the event.
Unable to upgrade to the Prefab of the new Prefab system, it will break the relationship and restore to a normal node.
API update (relative to Cocos Creator 3D)
The name of the physical material type has been changed.
Creator 3D v1.2
Creator v3.0
PhysicMaterial
PhysicsMaterial
Some type names and method names under the geometry space have been changed.
Creator 3D v1.2
Creator v3.0
line
Line
plane
Plane
ray
Ray
triangle
Triangle
sphere
Sphere
aabb
AABB
obb
OBB
capsule
Capsule
frustum
Frustum
MorphModel
models.MorphModel
ray_aabb
rayAABB
ray_plane
rayPlane
ray_triangle
rayTriangle
ray_sphere
raySphere
ray_obb
rayOBB
ray_capsule
rayCapsule
ray_subMesh
raySubMesh
ray_mesh
rayMesh
ray_model
rayModel
line_plane
linePlane
line_triangle
lineTriangle
line_aabb
lineAABB
line_obb
lineOBB
line_sphere
lineSphere
aabb_aabb
aabbWithAABB
aabb_obb
aabbWithOBB
aabb_plane
aabbPlane
aabb_frustum
aabbFrustum
aabbFrustum_accurate
aabbFrustumAccurate
obb_point
obbPoint
obb_plane
obbPlane
obb_frustum
obbFrustum
obbFrustum_accurate
obbFrustumAccurate
obb_obb
obbWithOBB
obb_capsule
obbCapsule
sphere_plane
spherePlane
sphere_frustum
sphereFrustum
sphereFrustum_accurate
sphereFrustumAccurate
sphere_sphere
sphereWithSphere
sphere_aabb
sphereAABB
sphere_obb
sphereOBB
sphere_capsule
sphereCapsule
capsule_capsule
capsuleWithCapsule
Some platform variables under sys have been changed.
Creator 3D v1.2
Creator v3.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
The Canvas component no longer has properties such as clearFlag, color, priority, targetTexture, visibility, etc., please get it directly through the Camera component referenced by the Canvas component.
Some components related to 2d have been renamed.
Creator 3D v1.2
Creator v3.0
UIRenderable
Renderable2D
UIDrawBatch
DrawBatch2D
Upgrade guide
In order to ensure the smooth transition of the existing Cocos Creator 2.4 project, we will use 2.4 as the LTS (long-term support) version and provide continuous updates for the next two years! In 2021, 2.4 will continue to be updated, providing bug fixes and new mini-game platform support, as well as Apple Silicon (M1) chip support. In 2022, we will continue to provide developers with 2.4 key issue fixes to ensure the smooth operation of online games! therefore:
Existing 2.x projects can continue to develop without compulsory upgrade to 3.0.
For new projects, it is recommended to use version 3.0 for development. We will continue to optimize the development experience and operating efficiency of 3.0 to support the smooth launch of heavy games of different categories such as 2D and 3D.
The original Cocos Creator 3D, as a branch version of Creator, has been iterated in China for a year, and has successfully launched major projects such as Starry Sky Battle and The Strongest Magic Fighter! After 3.0 is released, Creator 3D will also be included in 3.0, and existing 1.2 projects can be directly upgraded. Therefore, Cocos Creator 3D will not release a separate version in the future, and we hope developers using Creator 3D versions to be noticed.
Although we do not recommend projects under development, especially those that are about to go online, to upgrade to 3.0, we will still launch 2.x resource import tool in the 3.0 official version. If the existing project needs to be upgraded for special reasons, and you encounter technical or workload difficulties, you can also contact zhengxiong.zhao@cocos.com for our manual assistance!
Cocos Creator 2.4.4 is finally here! The engine team is working hard on the upcoming v3.0 release. The plan is to unify the 2D game and 3D game development process and provide more and more powerful features. In addition, the engine team will continue to maintain and optimize the 2.x version. This version supports the Bytedance game sub-package functions, optimizes the runtime and development process, and fixes 2.4 For related issues since the beginning, 2.x users are welcome to upgrade and experience!
What’s new
Bytedance Mini Games officially supports sub-package functions, which will provide developers with more room to play, and Creator will also open support for sub-package functions as soon as possible.
[ASSET] Fix the problem of inaccurate prefab reference count when running after build
[ASSET]Fixed the problem that the input parameter maxRetryCount is invalid when loading resources [#7689]
[ASSET]Fix the problem of invalid preloaded pictures[#7581]
[ASSET] Fix the problem that component scripts may be lost during runtime when the Prefab in the sub-package is reused by the main package [#8001]
[PARTICLE] Fix the error of the accuracy of the particle system color change, thanks to caogtaa, [#7532]
[PARTICLE]Fixed the issue that the rendering texture was not refreshed when the particle component replaced the plist file, [#6994]
[TILEDMAP]Fixed the problem of incorrect transparency of Tiledmap[#7898]
[TILEDMAP]Fixed the problem of rendering inactive nodes of Tiledmap[#7898]
[SPRITE]Fixed an issue where Sprite displays incorrectly after checking Allow Rotation in the automatic gallery [#7501]
[SPRITE]Fix the problem that Sprite does not support flipX and flipY in Mesh mode [#7407]
[LABEL]Fixed the problem that black blocks will appear when the Label component uses BMFont to switch active[#7492]
[PHYSICS]Fixed the problem that the non-rigid body node will not follow the parent node when there are both rigid body node and non-rigid body node under the node. /7455)
[MASK] Fix the problem of adding the Mask component before adding the node to the node tree. [#7429]
[GRAPHICS]Fixed the problem of spurs in the drawing process of Graphics component, [#7780]
[ANIMATION]Fixed the problem that setting sample and setCurrentTime is invalid when the animation is not playing [#7943]
Native
Fix the problem that the native platform cannot continue drawing after a certain number of Graphics vertices are drawn [#2884]
Fix the problem that the node size does not change when modifying the Label text [#2834]
Fixed an issue where selecting Ignore Blank Images when Spine exported the atlas resulted in failure to parse the .skel binary file [#2813]
Fix the problem that the mixed parameters of the native platform do not take effect [#7839]
Fix the problem that the native platform rayMesh always returns infinity[#7795]
Fix the problem that Sprite uses Mesh mode rendering error on native platform [#362]
Fix the problem of abnormal rendering of the 3d node Mask component of the native platform [#358]
Mini Game
Fixed the problem that the plugin script in the editor plugin failed to load on the mini game platform
Fixed the problem that the Label disappeared after some models of WeChat platform switched back from the background [#215]
Web
Fix the problem of performance degradation of the web platform on iPadOS 14 [#7746]
Fix the problem that uppercase letters are displayed when inputting lowercase letters in the password type input box of the Web platform [#7793]
Editor
Fixed an error when automatically synchronized pre-made associated root nodes
Fix the problem that the editor does not respond when importing wrong JSON files
Fixed the problem that the saving of nested prefab would be invalid after deleting the child nodes
Fix the problem that the node cannot change the level after searching for uuid on the level manager
Fix the problem that the MD5Cache option is invalid when building a native platform from the command line
Fix the problem of engine sourcemap error during preview [#7609]
Fix the problem that the curve of editing animation will be invalid
Fix the problem that the json files of SpriteFrame on the native platform cannot be merged
Fix the problem that the child nodes cannot be saved when the Prefab resource is set to sync mode
Fix the problem that the hash value of the file after construction changes
Fixed an issue where texture and FBX did not export dependent textures when using the export function
Fix the problem that webp files cannot be packaged when building Xiaomi
Upgrade Tips
Upgrading a project from a previous version of Cocos Creator is irreversible. Please backup the old version of the project before upgrading.
Projects under development can usually be upgraded seamlessly, but because of the uniqueness of each project, developers should conduct a technical evaluation based on their project’s own needs. If developers encounter difficulties in upgrading, please feel free to give us feedback and we will try our best to assist. In addition, due to stability considerations, it is recommended that projects that are about to be launched or already launched be upgraded with caution.
Adjusted the directory structure after the project is built and adjusted the API of BuildResults. If you use the editor plug-in to get the editor’s build results, please refer to Customized Project Build Process Upgrade Guide
The cc.RawAsset that was deprecated since 1.10 has been officially removed, please use cc.Asset instead. Since 2.4 is no longer compatible with the legacy usage of the RawAsset type in the original 1.x project, it is recommended that all projects to be upgraded to 2.4, especially those upgraded from version 1.9, be edited in any 1.10 ~ 2.3 version. All warnings or errors output when the compiler compiles the code are processed correctly, and then upgraded to 2.4.
cc.Color.fromHex is deprecated, please use cc.Color.fromHEX interface
Upgrade from < 2.3.3 version
The CCTexture2D and CCTexture2DRGB methods in the Effect have been abandoned.
Vec3.FRONT has been abandoned, please use Vec3.FORWARD instead.
Upgrade from < v2.3.0 version
Since v2.3.0, Android and Android Instant use the same build template, please note:
If the code is used solely by the Android platform, please put it in the app/src directory, and the third-party library used by itself, please put it in the app/libs directory.
If the code and third-party libraries used by Android Instant are separate, please put them in the game/src, game/libs directories.
For code and third-party libraries shared by Android and Android Instant, please place them in the src and libs directories under the proj.android-studio root directory, respectively.
proj.android-studio under the root directory jni/CocosAndroid.mk, jni/CocosApplication.mk, mainly used to configure engine-related configuration, developer configuration, it is recommended that Android be placed in app/jni/Android.mk and app/jni/Application.mk, Android Instant, please put in game/jni/Android.mk and game/jni/Application.mk.
When Cocos Creator compiles for Android, it will execute assembleRelease/Debug by default, and when compiling for Android Instant, it will execute instant: assembleRelease/Debug.
In addition, when Cocos Creator compiles for Android, it will execute assembleRelease/Debug by default, and when compiling Android Instant, it will execute in stant:assembleRelease/Debug.
If you have customized the pause logic when switching between audio background and background, please remove it after upgrading to 2.3.0 Currently Cocos Creator games automatically pause and resume audio internally when switching between front and back on all platforms. If the developer has customized this block before, and listens for and performs audio operations like cc.audioEngine.pause() and resume(), it may conflict with the engine’s default behavior. If you encounter related audio issues, simply remove the corresponding custom code.
Upgrade from version v2.0 – v2.3.0
Starting from 2.3.0, the Canvas component is no longer responsible for setting the Canvas node size to the screen size. This behavior will be implemented in conjunction with the Widget component. To ensure compatibility, after the 2.0 project is upgraded, the node where Canvas is located will automatically add Widget components. (No problem upgrading from a 1.0 project)
Upgrade from < v2.2.0
Starting from 2.2.0, we have strengthened the memory management mechanism, and now require users to dynamically create cc.Node which is independent of the scene node tree through code must be released through destroy(), otherwise the engine cannot know when to recycle this type The memory of the node will cause a memory leak.
In addition, the nodes that are manually removed from the scene need to be unified when they are not needed.
// Assuming testNode is a node in the scene, if it was manually
// removed from the scene before, such as
testNode.parent = null;
// or
testNode.removeFromParent(true);
// or
parentNode.removeChild(testNode);
// If testNode will be used again in the future, there is no need to
// manually destroy the node otherwise it should be called manually
testNode.destroy();
If a node is managed via cc.NodePool, it is not affected.
Cocos Creator v2.4.3 is here! This update brings more new features, optimizes performance and improves stability.
What’s new
Cocos Creator 2.4.3 is finally here! This update brings great new features and performance improvements, such as support for nested use of Prefab and support for Android x86_64. In addition, it fixes problems since version 2.4 and improves the stability of the editor. I hope everyone can use Can be more handy and get twice the result with half the effort.
It supports nested use of other Prefabs in a Prefab, thereby reducing the number of duplicate resources and making it easier to maintain and update.
Added support for Android x86_64
The Android platform can be built with x86_64, which can run on more devices and emulators.
The simulator adds the option of whether to clear the cache
Improvements
Optimize the size of the JSON file after construction, and merge all JSON, which can reduce the size of JSON by up to 30%
Upgrade the Cannon physics engine version to 1.1.1
The native platform supports the use of breakpoint resume after downloading remote resources fails[#345]
Optimize the editor’s import speed of Plist resources
Optimize the performance of executing cc.resources.load in the editor
Added ENABLE_NATIVE_TTF_RENDERER macro to control whether to use native renderer for ttf font rendering [#7053]
Fix the problem that the native platform cannot open mipmap [#2689]
Fix the problem of spotlight rendering error on native platform [#2695]
Fix the problem that exceptions in the async function will not be printed [#328]
Fix the problem of inaccurate jump of iOS VideoPlayer [#2531], thanks goesByhc
Fix the problem that VideoPlayer.play is called when the video is not loaded and will not play [#329]
Fix the issue of abnormal crash when calling CallStaticObjectMethod[#2706]
Fix the problem that the native platform cc.game.restart reports errors [#347]
Fix the problem that the native platform ttf resource fails to load on the remote server [#7380]
Editor
Fix the problem that undo will report an error when adding DontSave private mark to the object in the editor
Fix the problem that the return value of cc.resources.loadDir in the editor is inconsistent with the runtime
Fix the problem of loading all resources in Asset Bundle during preview
Fix the problem that JSON files cannot be merged completely after setting Bundle to merge all JSON files
Fixed an issue that caused the editor to crash when there is a problem with the RichText data in the scene or prefab in rare cases
Fixed the problem that animation cannot be loaded when the timeline panel pops up
Fix the problem that the gizmo is not updated when the center value of SphereCollider3D is modified in the editor.
Improve the editor UI
Fix the problem of loading failure when previewing the built project
Fixed the problem that the dependent resources were not exported when exporting resources
Fix the problem that the auto-atlas in the plugin cannot be built
Fix the issue that the frame event parameter added by the animation editor is invalid when the value of the boolean type is false
Fix the problem that the preview error is reported when the physical module is not checked [#7075]
Mini Game
Fix the problem that the input state of the mini game is chaotic when the input box is switched when the soft keyboard is pulled up [#136]
Fix the problem that loadRemote cannot load pictures in the temporary directory [#155]
Fix the problem that XHR cannot set the timeout property on WeChat[#164]
Fix the problem of audio playback failure on some small game platforms [#7341]
Web
Fix the problem that the video cannot be paused when clicking on the video in Firefox [#7372]
Fix the problem of low frame rate on iOS14 devices [#7415]
Upgrade Tips
Upgrading a project from a previous version of Cocos Creator is irreversible. Please backup the old version of the project before upgrading.
Projects under development can usually be upgraded seamlessly, but because of the uniqueness of each project, developers should conduct a technical evaluation based on their project’s own needs. If developers encounter difficulties in upgrading, please feel free to give us feedback and we will try our best to assist. In addition, due to stability considerations, it is recommended that projects that are about to be launched or already launched be upgraded with caution.
Adjusted the directory structure after the project is built and adjusted the API of BuildResults. If you use the editor plug-in to get the editor’s build results, please refer to Customized Project Build Process Upgrade Guide
The cc.RawAsset that was deprecated since 1.10 has been officially removed, please use cc.Asset instead. Since 2.4 is no longer compatible with the legacy usage of the RawAsset type in the original 1.x project, it is recommended that all projects to be upgraded to 2.4, especially those upgraded from version 1.9, be edited in any 1.10 ~ 2.3 version. All warnings or errors output when the compiler compiles the code are processed correctly, and then upgraded to 2.4.
cc.Color.fromHex is deprecated, please use cc.Color.fromHEX interface
Upgrade from < 2.3.3 version
The CCTexture2D and CCTexture2DRGB methods in the Effect have been abandoned.
Vec3.FRONT has been abandoned, please use Vec3.FORWARD instead.
Upgrade from < v2.3.0 version
Since v2.3.0, Android and Android Instant use the same build template, please note:
If the code is used solely by the Android platform, please put it in the app/src directory, and the third-party library used by itself, please put it in theapp/libs directory.
If the code and third-party libraries used by Android Instant are separate, please put them in the game/src, game/libs directories.
For code and third-party libraries shared by Android and Android Instant, please place them in the src and libs directories under the proj.android-studio root directory, respectively.
proj.android-studio under the root directory jni/CocosAndroid.mk, jni/CocosApplication.mk, mainly used to configure engine-related configuration, developer configuration, it is recommended that Android be placed in app/jni/Android.mk and app/jni/Application.mk, Android Instant, please put in game/jni/Android.mk and game/jni/Application.mk.
When Cocos Creator compiles for Android, it will execute assembleRelease/Debug by default, and when compiling for Android Instant, it will execute instant: assembleRelease/Debug.
In addition, when Cocos Creator compiles for Android, it will execute assembleRelease/Debug by default, and when compiling Android Instant, it will executein``stant:assembleRelease/Debug.
If you have customized the pause logic when switching between audio background and background, please remove it after upgrading to 2.3.0 Currently Cocos Creator games automatically pause and resume audio internally when switching between front and back on all platforms. If the developer has customized this block before, and listens for and performs audio operations like cc.audioEngine.pause() and resume(), it may conflict with the engine’s default behavior. If you encounter related audio issues, simply remove the corresponding custom code.
Upgrade from version v2.0 – v2.3.0
Starting from 2.3.0, the Canvas component is no longer responsible for setting the Canvas node size to the screen size. This behavior will be implemented in conjunction with the Widget component. To ensure compatibility, after the 2.0 project is upgraded, the node where Canvas is located will automatically add Widget components. (No problem upgrading from a 1.0 project)
Upgrade from < v2.2.0
Starting from 2.2.0, we have strengthened the memory management mechanism, and now require users to dynamically create cc.Node which is independent of the scene node tree through code must be released through destroy(), otherwise the engine cannot know when to recycle this type The memory of the node will cause a memory leak.
In addition, the nodes that are manually removed from the scene need to be unified when they are not needed.
// Assuming testNode is a node in the scene, if it was manually
// removed from the scene before, such as
testNode.parent = null;
// or
testNode.removeFromParent(true);
// or
parentNode.removeChild(testNode);
// If testNode will be used again in the future, there is no need to
// manually destroy the node otherwise it should be called manually
testNode.destroy();
If a node is managed via cc.NodePool, it is not affected.
Following the release of v2.4.1 last week, Cocos Creator has brought you the long-awaited byte game platform support! A new platform always means new opportunities and challenges, and will bring more users and potential to developers. We also look forward to the explosion of more excellent products on byte games! We recommend that developers who need to release byte games upgrade the engine to the latest version to get the best experience.
What’s new
Byte games
The byte game is developed based on the full product matrix of Bytedance and includes such creations as Today Toutiao, TikTok and Today Toutiao Speedy Edition. It does not require users to download, just click to open the new game type that is ready to play. ByteDance’s full product matrix takes content distribution as the core, and promotes the distribution of small games through content, and uses content to bring volume and fission to small games. Currently, there are very rich application scenarios. There are traffic portals in natural search, feed stream, personal homepage, small video, video comment area, etc. For detailed instructions, please refer to the Understanding Mini Games: Overview of Traffic Portals article (Chinese Only). In terms of revenue, ByteDance currently supports both advertising and in-app purchases.
For games developed with Cocos Creator, developers only need to select the ByteDance game publishing platform when building, and Cocos Creator automatically completes the adaptation and building. For details, please refer to the Publish to Byte Games documentation.
Known issues
After the iOS device is upgraded to iOS 14 beta.3, there will be a problem that the web platform cannot display the screen temporarily. You can customize the engine and manually merge the changes #6974 for repair.
v2.4.1 Byte platform has been unlocked synchronously
Cocos Creatorv2.4.2 and v2.4.1 are exactly the same in terms of product functions, so the release portal of byte games for existing v2.4.1 users has been unlocked through hot updates. v2.4.1 users only need to start Cocos Dashboardv1.0.8 when the network is connected, and then open the editor. If unsuccessful, please make sure that Cocos Dashboard is using the latest v1.0.8, and completely exit and reopen. Minimizing the app isn’t good enough.
In addition, there is more good news: v2.4.1 already supports the HuaweiAppGallery Connect platform, and developers can access HuaweiHMS Core with one click, currently including account, Services such as payment, advertisement, and games will continue to support SDKs such as push, analysis and positioning in the near future.
Also, Cocos Creator will cooperate with Huawei in all aspects, especially at the technical level, integration with the underlying algorithms of CG Kit, tap Vulkan’s extreme rendering capabilities, release greater graphics rendering performance, and improve rendering efficiency. At the product level, Huawei’sHMS Core and AppGallery Connect will also be successively connected to more high-quality services to help developers develop higher-quality games.
Upgrade Tips
Upgrading a project from a previous version of Cocos Creator is irreversible. Please backup the old version of the project before upgrading.
Projects under development can usually be upgraded seamlessly, but because of the uniqueness of each project, developers should conduct a technical evaluation based on their project’s own needs. If developers encounter difficulties in upgrading, please feel free to give us feedback and we will try our best to assist. In addition, due to stability considerations, it is recommended that projects that are about to be launched or already launched be upgraded with caution.
Adjusted the directory structure after the project is built and adjusted the API of BuildResults. If you use the editor plug-in to get the editor’s build results, please refer to Customized Project Build Process Upgrade Guide .
The cc.RawAsset that was deprecated since 1.10 has been officially removed, please use cc.Asset instead. Since 2.4 is no longer compatible with the legacy usage of the RawAsset type in the original 1.x project, it is recommended that all projects to be upgraded to 2.4, especially those upgraded from version 1.9, be edited in any 1.10 ~ 2.3 version. All warnings or errors output when the compiler compiles the code are processed correctly, and then upgraded to 2.4.
cc.Color.fromHex is deprecated, please use cc.Color.fromHEX interface.
Upgrade from < 2.3.3 version
The CCTexture2D and CCTexture2DRGB methods in the Effect have been abandoned.
Vec3.FRONT has been abandoned, please use Vec3.FORWARD instead.
Upgrade from < v2.3.0 version
Since v2.3.0, Android and Android Instant use the same build template, please note:
If the code is used solely by the Android platform, please put it in the app/src directory, and the third-party library used by itself, please put it in theapp/libs directory.
If the code and third-party libraries used by Android Instant are separate, please put them in the game/src, game/libs directories.
For code and third-party libraries shared by Android and Android Instant, please place them in the src and libs directories under the proj.android-studio root directory, respectively.
proj.android-studio under the root directory jni/CocosAndroid.mk, jni/CocosApplication.mk, mainly used to configure engine-related configuration, developer configuration, it is recommended that Android be placed in app/jni/Android.mk and app/jni/Application.mk, Android Instant, please put in game/jni/Android.mk and game/jni/Application.mk.
When Cocos Creator compiles for Android, it will execute assembleRelease/Debug by default, and when compiling for Android Instant, it will execute instant: assembleRelease/Debug.
In addition, when Cocos Creator compiles for Android, it will execute assembleRelease/Debug by default, and when compiling Android Instant, it will executein``stant:assembleRelease/Debug.
If you have customized the pause logic when switching between audio background and background, please remove it after upgrading to 2.3.0 Currently Cocos Creator games automatically pause and resume audio internally when switching between front and back on all platforms. If the developer has customized this block before, and listens for and performs audio operations like cc.audioEngine.pause() and resume(), it may conflict with the engine’s default behavior. If you encounter related audio issues, simply remove the corresponding custom code.
Upgrade from version v2.0 – v2.3.0
Starting from 2.3.0, the Canvas component is no longer responsible for setting the Canvas node size to the screen size. This behavior will be implemented in conjunction with the Widget component. To ensure compatibility, after the 2.0 project is upgraded, the node where Canvas is located will automatically add Widget components. (No problem upgrading from a 1.0 project)
Upgrade from < v2.2.0
Starting from 2.2.0, we have strengthened the memory management mechanism, and now require users to dynamically create cc.Node which is independent of the scene node tree through code must be released through destroy(), otherwise the engine cannot know when to recycle this type The memory of the node will cause a memory leak.
In addition, the nodes that are manually removed from the scene need to be unified when they are not needed.
// Assuming testNode is a node in the scene, if it was manually removed
//from the scene before, such as
testNode.parent = null;
// or
testNode.removeFromParent(true);
// or
parentNode.removeChild(testNode);
// If testNode will be used again in the future, there is no need to
// manually destroy the node otherwise it should be called manually
testNode.destroy();
If a node is managed via cc.NodePool, it is not affected.
Cocos Creator v2.4.1 is here! This update brings more new features, optimizes performance and improves stability. Efficiency is everything! This version contains many new features and updates, such as resource management system refactoring, asset bundles, optimized the performance of graphic rendering.
What’s new
New platforms always mean new opportunities and challenges. Cocos Creator 2.4.1 adds support for two new platforms: HUAWEI AppGallery Connect and LinkSure Mini Game. You can now choose these platforms when building. This version allows your game to connect to Huawei HMSCore with one click, and upload to HUAWEI AppGallery with one click Connect, eliminating the complicated operations such as accessing SDKs and uploading platforms during the development process, helping developers create high-quality innovative applications and enhance the game experience!
Added HUAWEI AppGallery Connect release platform
In Cocos Creator, through the HUAWEI AppGallery Connect publishing platform, developers can access Huawei HMSCore with one click, including login, payment, Share, Location, Analysis and other services that can greatly improve the developer’s work efficiency.
Developers can enable the SDKHub in the service panel and configure the corresponding SDK presets.
Choose HUAWEI AppGallery Connect platform during building, and select the preset SDK preset.
After the building is completed, you can upload with one click through the upload window.
Added LinkSure Mini Game publishing platform
LinkSure Mini Game is a mini game application platform under the WiFi Master Key, which is convenient, lightweight, and free of installation. It is now officially supported by Cocos Creator. Developers only need to select the LinkSure Mini Game release platform when building, and the platform adaptation is automatically completed.
For more information about publishing to LinkSure Mini Game, please refer to the Publishing documentation.
Release Notes
Bug fixes
[Engine] Fixed the problem of the wrong execution sequence of plugin scripts at runtime [#6983]
[Engine] Fixed the problem that the scene may fail to load when delayed loading is enabled [#6983]
[Native] Fixed the wrong typesetting of the rich text component on the native platform [#6975]
[Editor] Fixed the problem that the scene view is automatically switched to 2D view when entering the Prefab editor mode
[Editor] Fix the problem that the build fails after the main package is configured as a mini game sub-package on the Xiaomi mini game, OPPO mini game, and vivo mini game platform
Known issues
After the iOS device is upgraded to iOS 14 beta.2, there will be a problem that the web platform cannot display the screen temporarily. You can customize the engine and merge the changes manually [#6974] to resolve. We will continue to follow up with subsequent versions of iOS 14 to avoid compatibility issues.
Upgrade Tips
Upgrading a project from a previous version of Cocos Creator is irreversible. Please backup the old version of the project before upgrading.
Projects under development can usually be upgraded seamlessly, but because of the uniqueness of each project, developers should conduct a technical evaluation based on their project’s own needs. If developers encounter difficulties in upgrading, please feel free to give us feedback and we will try our best to assist. In addition, due to stability considerations, it is recommended that projects that are about to be launched or already launched be upgraded with caution.
Adjusted the directory structure after the project is built and adjusted the API of BuildResults. If you use the editor plug-in to get the editor’s build results, please refer to Customized Project Build Process Upgrade Guide
The cc.RawAsset that was deprecated since 1.10 has been officially removed, please use cc.Asset instead. Since 2.4 is no longer compatible with the legacy usage of the RawAsset type in the original 1.x project, it is recommended that all projects to be upgraded to 2.4, especially those upgraded from version 1.9, be edited in any 1.10 ~ 2.3 version. All warnings or errors output when the compiler compiles the code are processed correctly, and then upgraded to 2.4.
cc.Color.fromHex is deprecated, please use cc.Color.fromHEX interface
Upgrade from < 2.3.3 version
The CCTexture2D and CCTexture2DRGB methods in the Effect have been abandoned.
Vec3.FRONT has been abandoned, please use Vec3.FORWARD instead.
Upgrade from < v2.3.0 version
Since v2.3.0, Android and Android Instant use the same build template, please note:
If the code is used solely by the Android platform, please put it in the app/src directory, and the third-party library used by itself, please put it in theapp/libs directory.
If the code and third-party libraries used by Android Instant are separate, please put them in the game/src, game/libs directories.
For code and third-party libraries shared by Android and Android Instant, please place them in the src and libs directories under the proj.android-studio root directory, respectively.
proj.android-studio under the root directory jni/CocosAndroid.mk, jni/CocosApplication.mk, mainly used to configure engine-related configuration, developer configuration, it is recommended that Android be placed in app/jni/Android.mk and app/jni/Application.mk, Android Instant, please put in game/jni/Android.mk and game/jni/Application.mk.
When Cocos Creator compiles for Android, it will execute assembleRelease/Debug by default, and when compiling for Android Instant, it will execute instant: assembleRelease/Debug.
In addition, when Cocos Creator compiles for Android, it will execute assembleRelease/Debug by default, and when compiling Android Instant, it will executein``stant:assembleRelease/Debug.
If you have customized the pause logic when switching between audio background and background, please remove it after upgrading to 2.3.0 Currently Cocos Creator games automatically pause and resume audio internally when switching between front and back on all platforms. If the developer has customized this block before, and listens for and performs audio operations like cc.audioEngine.pause() and resume(), it may conflict with the engine’s default behavior. If you encounter related audio issues, simply remove the corresponding custom code.
Upgrade from version v2.0 – v2.3.0
Starting from 2.3.0, the Canvas component is no longer responsible for setting the Canvas node size to the screen size. This behavior will be implemented in conjunction with the Widget component. To ensure compatibility, after the 2.0 project is upgraded, the node where Canvas is located will automatically add Widget components. (No problem upgrading from a 1.0 project)
Upgrade from < v2.2.0
Starting from 2.2.0, we have strengthened the memory management mechanism, and now require users to dynamically create cc.Node which is independent of the scene node tree through code must be released through destroy(), otherwise the engine cannot know when to recycle this type The memory of the node will cause a memory leak.
In addition, the nodes that are manually removed from the scene need to be unified when they are not needed.
// Assuming testNode is a node in the scene, if it was manually removed
//from the scene before, such as
testNode.parent = null;
// or
testNode.removeFromParent(true);
// or
parentNode.removeChild(testNode);
// If testNode will be used again in the future, there is no need to
// manually destroy the node otherwise it should be called manually
testNode.destroy();
If a node is managed via cc.NodePool, it is not affected.
Cocos Creator v2.4.0 is here! This update brings more new features, optimizes performance and improves stability. Efficiency is everything! This version contains many new features and updates, such as resource management system refactoring, asset bundles, optimized the performance of graphic rendering.
It is recommended for all v2.3.x developers to upgrade! Please perform the necessary technical evaluation and backups before upgrading.
What’s New
If the worker wants to do his best, he must first sharpen his weapon! After two months of testing, version 2.4.0 is finally here! Thanks to all the friends who gave us valuable comments and suggestions!
Support Asset Bundles
Asset Bundle can divide the resources in a project into modules according to the wishes of the developer, and divide the resources with different needs in different scenarios into multiple packages. This reduces the time required to download and load a game for the first time, and can also be copied across projects.
Asset Bundle also provides priority, compression type and other related settings to optimize the package and loading of the Asset Bundle.
Added cc.AssetManager module for resource management
Asset Manager is newly introduced in Cocos Creator v2.4. It has the function to load resources, find resources, destroy resources, cache resources, asset bundles and so on. Asset Manager has better performance, easier-to-use APIs, and stronger scalability. It mainly provides the following new features:
Supports loading and pre-loading of all resources, pre-loading can run silently in a lighter way, without affecting operation efficiency.
Supports Asset Bundles.
Supports a more secure automatic release mechanism, no need to consider its reference when releasing resources, to avoid mistaken release of resources.
Support download failure retry, download priority, download concurrent number and other settings, which can be adjusted according to various situations.
Support more convenient custom loading process to achieve special effects.
Supports setting Label’s belnding options, and different settings in different usage scenarios can be used to maximize text rendering performance. For details, please refer to the Blending Mode of System Fonts documentation.
Use FreeType to render Label on native platforms
Increased Label initialization speed, Android increased by about 5 times, iOS increased by 3 times
Support bold, outline, shadow and other effects when using TTF font and Char mode
Support Graphic anti-aliasing effects
Using SDF technology to optimize Graphic’s aliasing problem:
Support the compressed texture of other small game platforms
The editor further supports the compression texture limitation of more mini game platforms. Just add the compressed texture format in the Mini Game item to set the compression of multiple platforms including WeChat mini games, OPPO mini games, Vivo mini games, etc.
Improve native hot update support
Cocos Creator v2.4 further improves the native hot update capability and optimize the following:
Add interface to get update package size
Add MD5 parameter to the link, more friendly to CDN
Solve the problem of resource loss and confusion caused by interruption of the update process
This component will adapt the layout of the node where it is located to the safe area of the mobile phone with a special screen. It can be adapted to Android and iOS devices. For details, refer to the SafeArea Component documentation.
Release Notes
Other new features
Add compressed texture cache function, cache the compressed texture after construction, and reuse the cache content as much as possible to speed up the construction speed
Use ImageBitmap to load images on the Web platform, improve the preview and Web platform image resolution speed, and reduce the stutter during loading
Editor property panel supports drag and drop array assignment
Upgrade TypeScript version to 3.9.2
Upgrade the V8 version of the native platform to 8.0.426.16
Support importing GLTF resources
Support the first scene subcontracting function on all small game platforms
Support module culling during preview, improve preview speed, and expose module culling settings earlier
Improvements
Optimize the performance of free and relative modes of 2D particle system [#6236]
Optimize the efficiency of ToggleContainer to get toggleItems[#6569]
Increase the bandwidth of the native platform WebSocket [#2353]
SpriteFrame resource adds a None trim type, which can be quickly set to no crop.
Improve the code hints of jsb
Support setting preview port
The window size can be set when the native desktop platform is built
Engine
[CORE] Fixed the issue that the return value of cc.easeBackOut is incorrect when time is 0, [#6728], (thank you chen-gaoyuan)
[CORE] Fixed the issue of Node.walk traversal error [#6710]
[CORE] Fixed the error of calling cc.dynamicAtlasManager.showDebug[#6697]
[CORE] Fixed the issue of setting node size in onLoad is invalid [#6688]
[CORE] Fixed the issue of resetting the background material back to the default material when the button is disabled [#6562]
[CORE] Fixed error when BMFont configuration data does not exist [#6472]
[CORE] Fixed the issue of invalid transparency after pre-multiplication is enabled [#6451]
[CORE] Fixed the issue of Camera.render() rendering twice, [#6355], (thank you Dacheng Xiaofa)
[CORE] Fixed the issue of picture flip after calling Texture2D.setPremultiplyAlpha[#6602]
[PARTICLE] Fixed the 2d particle system relative mode, the particle follows the problem when the node rotates [#6236]
[3D] Fixed the problem that 3D Label is not displayed in char mode [#6882]
[3D] Fixed the problem of rendering error caused by checking the option Enable Auto Batchand switching Mesh resources [#6901]
[3D] Fixed the problem of rendering the shadow of a single camera misaligned [#6477]
[3D] Fixed the issue of cc_matProj error in effect [#6653]
[EDITBOX] Fixed the issue that the EditBox.maxLength attribute does not take effect in number mode [#6725]
[EDITBOX] Fixed the issue that the EditBox could not update the position when scrolling in ScrollView [#6634]
[TILEDMAP] Fixed the possible rendering order of Tiled Map may be wrong [#6284]
[TILEDMAP] Fixed the problem that the hidden image of Tiled Map will still be rendered [#6309]
[SPINE] Fixed Spine texture rendering error after using compressed texture [#6483]
[SPINE] Fixed the issue that Spine texture may render incorrectly [#6584]
[SPINE] Fixed the issue that DragonBone and Spine render incorrectly after the texture is set to pre-multiplied [#6696], (thanks Dacheng Xiaofa).
[DRAGONBONE] Fixed the issue that DragonBone keeps reporting errors when destroying scenes [#6553]
Native
Fixed the problem of incorrect node scaling after screen flip [#6689]
Fix Android native JniHelper is not thread safe [#2457]
Fix the issue that unzip is not thread safe [#2131], (thanks benloong)
Fix the problem that the Edit button of Android EditBox is blocked by the virtual navigation bar [#2426]
Fix the problem that Spine node can not get the node size on iOS [#273]
Fix the issue of cc_time error in native Effect [#6586]
Fix the possible crash of iOS audio playback [#2358]
Fix the problem of node rotation calculation error [#2361]
Fixed the crash caused by encoding error when setting Label.string[#2395]
Fix the problem that English can no longer be input after entering Chinese on iOS browser [#6631]
Mini Game
Fixed the issue that the WeChat mini game WebSocket sends an error report of Uint8Array[#115]
Fixed the issue that playback cannot be resumed automatically when audio is interrupted unexpectedly [#118]
Fix the problem that PC WeChat data open domain cannot run
Editor
Fix the problem of incorrect save and restore status of Sprite Editor
Fixed an issue where animation clips that are not being edited cannot be renamed in animation editing state
Fixed an issue where the editor could not recognize after adding Spine resources
Fixed the issue that the editor may not open after the user plug-in restarts
Fixed an issue where the return value of getNativeAssetPaths was called multiple times incorrectly
Fix the problem that the script fails to load after the script is renamed
Fixed an issue where width and height will be reported incorrectly when clicking on the gallery
Fixed the issue that the picture may be distorted when using Auto Atlas
Fixed an issue where importing some pictures caused the resource panel error
Fixed the problem that the node cannot be deleted by delete key in Prefab edit mode
Fixed an issue where Filter Unused Resources was not valid when the atlas was not exported
Fix the problem that the value range of the macro defined in the effect is invalid [#6616]
Fixed an issue where the animation editor setting CircleCollider.offset attribute is abnormal [#6600]
Fix the problem that the last save is invalid
Fixed the issue of invalid setting preview browser
Fix the problem of error report when importing Cocos Studio project without font resources
Fixed an issue where multiple openings may cause editor errors
Known Issues
When using remote Asset Bundle and checking Lazy loading, the audio may not be played. Please use cc.assetManager.postLoadNative to load and play.
Upgrade Tips
Upgrading a project from a previous version of Cocos Creator is irreversible. Please backup the old version of the project before upgrading.
Projects under development can usually be upgraded seamlessly, but because of the uniqueness of each project, developers should conduct a technical evaluation based on their project’s own needs. If developers encounter difficulties in upgrading, please feel free to give us feedback and we will try our best to assist. In addition, due to stability considerations, it is recommended that projects that are about to be launched or already launched be upgraded with caution.
Adjusted the directory structure after the project is built and adjusted the API of BuildResults. If you use the editor plug-in to get the editor’s build results, please refer to Customized Project Build Process Upgrade Guide
The cc.RawAsset that was deprecated since 1.10 has been officially removed, please use cc.Asset instead. Since 2.4 is no longer compatible with the legacy usage of the RawAsset type in the original 1.x project, it is recommended that all projects to be upgraded to 2.4, especially those upgraded from version 1.9, be edited in any 1.10 ~ 2.3 version. All warnings or errors output when the compiler compiles the code are processed correctly, and then upgraded to 2.4.
cc.Color.fromHex is deprecated, please use cc.Color.fromHEX interface
Upgrade from < 2.3.3 version
The CCTexture2D and CCTexture2DRGB methods in the Effect have been abandoned.
Vec3.FRONT has been abandoned, please use Vec3.FORWARD instead.
Upgrade from < v2.3.0 version
Since v2.3.0, Android and Android Instant use the same build template, please note:
If the code is used solely by the Android platform, please put it in the app/src directory, and the third-party library used by itself, please put it in theapp/libs directory.
If the code and third-party libraries used by Android Instant are separate, please put them in the game/src, game/libs directories.
For code and third-party libraries shared by Android and Android Instant, please place them in the src and libs directories under the proj.android-studio root directory, respectively.
proj.android-studio under the root directory jni/CocosAndroid.mk, jni/CocosApplication.mk, mainly used to configure engine-related configuration, developer configuration, it is recommended that Android be placed in app/jni/Android.mk and app/jni/Application.mk, Android Instant, please put in game/jni/Android.mk and game/jni/Application.mk.
When Cocos Creator compiles for Android, it will execute assembleRelease/Debug by default, and when compiling for Android Instant, it will execute instant: assembleRelease/Debug.
In addition, when Cocos Creator compiles for Android, it will execute assembleRelease/Debug by default, and when compiling Android Instant, it will executein``stant:assembleRelease/Debug.
If you have customized the pause logic when switching between audio background and background, please remove it after upgrading to 2.3.0 Currently Cocos Creator games automatically pause and resume audio internally when switching between front and back on all platforms. If the developer has customized this block before, and listens for and performs audio operations like cc.audioEngine.pause() and resume(), it may conflict with the engine’s default behavior. If you encounter related audio issues, simply remove the corresponding custom code.
Upgrade from version v2.0 – v2.3.0
Starting from 2.3.0, the Canvas component is no longer responsible for setting the Canvas node size to the screen size. This behavior will be implemented in conjunction with the Widget component. To ensure compatibility, after the 2.0 project is upgraded, the node where Canvas is located will automatically add Widget components. (No problem upgrading from a 1.0 project)
Upgrade from < v2.2.0
Starting from 2.2.0, we have strengthened the memory management mechanism, and now require users to dynamically create cc.Node which is independent of the scene node tree through code must be released through destroy(), otherwise the engine cannot know when to recycle this type The memory of the node will cause a memory leak.
In addition, the nodes that are manually removed from the scene need to be unified when they are not needed.
// Assuming testNode is a node in the scene, if it was manually removed
//from the scene before, such as
testNode.parent = null;
// or
testNode.removeFromParent(true);
// or
parentNode.removeChild(testNode);
// If testNode will be used again in the future, there is no need to
// manually destroy the node otherwise it should be called manually
testNode.destroy();
If a node is managed via cc.NodePool, it is not affected.
Cocos Creator v2.3.4 is here! This update brings more new features, optimizes performance and improves stability. Efficiency is everything!
It is recommended for all v2.3.x developers to upgrade!Please perform the necessary technical evaluation and backups before upgrading.
Note: Yes, you use Dashboard now to Download and manage Cocos Creator.
Note: Starting with Cocos Creator v2.4 using Dashboard will be required! There will no longer be a separate Cocos Creator installer provided. Please download and get acclimated with Dashboard soon.
What’s New
Tencent Cloud-Cloud Development
Cloud Development (Tencent Cloud Base, TCB) is Tencent Cloud’s one-stop back-end cloud service for mobile developers. Developers can access the service with one click inside Cocos Creator. After accessing the service, you can manage all cloud functions in the cloud function panel, including operations such as adding, deleting, and synchronizing.
Mini Game Online Battle Engine (MGOBE) provides room management, online matching, frame synchronization, status synchronization, etc… Developers can quickly build networked, multiplayer interactive games. Developers do not need to pay attention to the underlying network architecture, network communication, *server expansion and contraction, operation and maintenance, etc… They can obtain nearby access, low latency, and *real-time expansion of high-performance online MGOBE is suitable for games such as turn-based, strategy, real-time conversation (casual battle, MOBA, FPS) and so on.
Developers can access the service with one click from within Cocos Creator. For more details, please refer to Mini Game Online Battle Engine documentation.
Tencent Cloud-Game Multimedia Engine
Game Multimedia Engine (GME) provides a one-stop voice solution. In-depth optimization for different scenarios including covering games, social networking, entertainment and other pan-Internet industryapplication scenarios. GME includes real-time voice, voice message, text-to-text, and voice analysis services to meet diverse voice needs.
Developers can access the service with one click from within Cocos Creator. For more details, please refer to Game Multimedia Engine documentation.
Upgrade Tips
Upgrading a project from a previous version of Cocos Creator is irreversible. Please backup the old version of the project before upgrading.
Projects under development can usually be upgraded seamlessly, but because of the uniqueness of each project, developers should conduct a technical evaluation based on their project’s own needs. If developers encounter difficulties in upgrading, please feel free to give us feedback and we will try our best to assist. In addition, due to stability considerations, it is recommended that projects that are about to be launched or already launched be upgraded with caution.
Upgrade from < 2.3.3 version
The CCTexture2D and CCTexture2DRGB methods in the Effect have been abandoned.
Vec3.FRONT has been abandoned, please use Vec3.FORWARD instead.
Upgrade from < v2.3.0 version
Since v2.3.0, Android and Android Instant use the same build template, please note:
If the code is used solely by the Android platform, please put it in the app/src directory, and the third-party library used by itself, please put it in theapp/libs directory.
If the code and third-party libraries used by Android Instant are separate, please put them in the game/src, game/libs directories.
For code and third-party libraries shared by Android and Android Instant, please place them in the src and libs directories under the proj.android-studio root directory, respectively.
proj.android-studio under the root directory jni/CocosAndroid.mk, jni/CocosApplication.mk, mainly used to configure engine-related configuration, developer configuration, it is recommended that Android be placed in app/jni/Android.mk and app/jni/Application.mk, Android Instant, please put in game/jni/Android.mk and game/jni/Application.mk.
When Cocos Creator compiles for Android, it will execute assembleRelease/Debug by default, and when compiling for Android Instant, it will execute instant: assembleRelease/Debug.
In addition, when Cocos Creator compiles for Android, it will execute assembleRelease/Debug by default, and when compiling Android Instant, it will executein``stant:assembleRelease/Debug.
If you have customized the pause logic when switching between audio background and background, please remove it after upgrading to 2.3.0 Currently Cocos Creator games automatically pause and resume audio internally when switching between front and back on all platforms. If the developer has customized this block before, and listens for and performs audio operations like cc.audioEngine.pause() and resume(), it may conflict with the engine’s default behavior. If you encounter related audio issues, simply remove the corresponding custom code.
Upgrade from version v2.0 – v2.3.0
Starting from 2.3.0, the Canvas component is no longer responsible for setting the Canvas node size to the screen size. This behavior will be implemented in conjunction with the Widget component. To ensure compatibility, after the 2.0 project is upgraded, the node where Canvas is located will automatically add Widget components. (No problem upgrading from a 1.0 project)
Upgrade from < v2.2.0
Starting from 2.2.0, we have strengthened the memory management mechanism, and now require users to dynamically create cc.Node which is independent of the scene node tree through code must be released through destroy(), otherwise the engine cannot know when to recycle this type The memory of the node will cause a memory leak.
In addition, the nodes that are manually removed from the scene need to be unified when they are not needed.
// Assuming testNode is a node in the scene, if it was manually removed
//from the scene before, such as
testNode.parent = null;
// or
testNode.removeFromParent(true);
// or
parentNode.removeChild(testNode);
// If testNode will be used again in the future, there is no need to
// manually destroy the node otherwise it should be called manually
testNode.destroy();
If a node is managed via cc.NodePool, it is not affected.
Cocos Creator v2.3.3 is here! This update brings more new features, optimizes performance and improves stability. Efficiency is everything!
It is recommended for all v2.3 developers to upgrade!Please perform the necessary technical evaluation and backups before upgrading.
Support PCF soft shadow
Starting from v2.3.3, the Light component can set the shadow type to SOFT_PCF3X3 or SOFT_PCF5X5 to turn on soft shadows. After opening, the shadow will not have hard edges, the effect is more soft and natural.
Support zooming Sprite by 9-sliced SpriteFrame in TILED mode
Starting with v2.3.3, the image will be repeated to fit the size of the Sprite when using TILED mode. If the SpriteFrame is 9-sliced, the corners will also remain unscaled while the other areas will be repeated.
Improve web page loading speed during preview
In order to further improve development efficiency, we optimized the loading speed of scripts during web page preview in both the engine and in project code. When the custom engine feature is turned on, or when using a mobile phone to preview, developers get a really smoother experience.
Engine
[Core] Fix the problem that hidden nodes will not trigger touch events when touching with single touch [#6395]
[Core] Fix the problem that the AudioSource component setting Play On Load is invalid when the scene starts with Async Load Assets [#6412]
[Core] Fixed Spine resource rendering error if defaultSkin is not set [#6432]
[Core] Fix the warning when Label is empty when using BITMAP mode [#6315]
[Core] Fixed RichText unable to input single angle bracket text [#6314]
[Core] Fix the problem that the current time obtained by VideoPlayer on different platforms may be inconsistent [#6360]
[Tween] Tween adds stopAll, stopAllByTag, stopAllByTarget and other interfaces to facilitate playback control [#6338]
[Tween] Optimized the intelligent hints of the API code of Tween.to and Tween.by, which can intelligently display the target attribute
[3D] Added Node.forward, Node.right, Node.up APIs to get all directions of nodes in the world coordinate system [#6287]
[3D] Fix the problem that the Sprite node may render incorrectly when switching 3D node settings [#2335]
[3D] Fix the issue that ROTATION_CHANGED event is not triggered when Node.eulerAngleschanges [#6325]
[3D] Fix the incorrect rotation of cc.Rotate3DBy[#6377]
[3D] Fix the calculation error of vertex tangent conversion to world coordinate system in built-in Effect [#6358]
[3D] Fix the problem of data failure when the number of vertices set by Mesh exceeds the original number [#6359]
Native
Fix the problem that the native SocketIO may make a request error when the server is closed [#2338]
Fix the problem that the return value of jsb.fileUtils.listFilesRecursively is incorrect [#2337]
Fix the calculation error of cc.sys.getSafeAreaRect on Android devices [#2145]
Fix the problem of incorrect line-breaking effect after using emoji on native platform Label [#6353]
Fix the problem that the native platform Graphic cannot be drawn if there are too many vertices [#1935]
Fix the problem of getting wrong devicePixelRatio in the initialization stage of Windows and Mac platforms [#2309]
Fixed trailing material error when 3D particles did not open TrailModule on native platform [#6413]
Mini Game
Adapt to the numeric keyboard keys of PC WeChat games [#98]
Fixed an issue where the Baidu game VideoPlayer was hidden after entering text
Fix OPPO fast game Label text truncated at the top [#6441]
Web
Fix the problem that the EditBox input box is misaligned after screen resize [#6347]
Fix the problem that the mobile terminal keyboard does not respond to touch events when pulling up the status button [# 6337]
Fix the problem of incorrect interface adaptation after EditBox editing on UC browser of iOS [# 6471]
Editor
Support displaying the attributes information of the grid in the Properties Panel
Added case verification of require path in project script
Fixed the issue of block blocking when previewing particles in the editor
Fixed the issue that the component @menu decorator is invalid
Fixed an issue where the editor could not be opened after setting the language on Cocos Dashboard
Fixed an issue where a progress bar sometimes appears in the editor
Fixed an issue where clicking the 3D toggle button is invalid when selecting multiple nodes in the property panel
Fix the problem of error report when importing ccs project
Fixed an error when deleting 3D particle materials in the editor
Fixed an issue where rename animation clips and nodes is invalid when adding a recording animation editor
Fixed an issue where the animation editor reported an error when animating the camera backgroundColor
Fixed an issue where deleting a script after the script reported an error still failed to clear the console error
Fix the problem that the custom component menu is not sorted alphabetically
Fix the problem that the paste menu is invalid when no node is selected
Fixed the issue of material error after deleting texture attribute
Fixed an issue where the EditBox node reported an error after selecting the Reset All menu item in the properties panel
Fixed an issue where importing materials with the same name in the model would cause the import to fail
Fixed an issue where Prefab cannot automatically synchronize to the original Prefab when deleting child nodes after setting automatic synchronization
Fixed an issue where using the wrong custom engine would cause the editor to not start
Upgrade Tips
Upgrading a project from a previous version of Cocos Creator is irreversible. Please backup the old version of the project before upgrading.
Projects under development can usually be upgraded seamlessly, but because of the uniqueness of each project, developers should conduct a technical evaluation based on their project’s own needs. If developers encounter difficulties in upgrading, please feel free to give us feedback and we will try our best to assist. In addition, due to stability considerations, it is recommended that projects that are about to be launched or already launched be upgraded with caution.
Upgrade from < 2.3.3 version
The CCTexture2D and CCTexture2DRGB methods in the Effect have been abandoned.
Vec3.FRONT has been abandoned, please use Vec3.FORWARD instead.
Upgrade from < v2.3.0 version
Since v2.3.0, Android and Android Instant use the same build template, please note:
If the code is used solely by the Android platform, please put it in the app/src directory, and the third-party library used by itself, please put it in theapp/libs directory.
If the code and third-party libraries used by Android Instant are separate, please put them in the game/src, game/libs directories.
For code and third-party libraries shared by Android and Android Instant, please place them in the src and libs directories under the proj.android-studio root directory, respectively.
proj.android-studio under the root directory jni/CocosAndroid.mk, jni/CocosApplication.mk, mainly used to configure engine-related configuration, developer configuration, it is recommended that Android be placed in app/jni/Android.mk and app/jni/Application.mk, Android Instant, please put in game/jni/Android.mk and game/jni/Application.mk.
When Cocos Creator compiles for Android, it will execute assembleRelease/Debug by default, and when compiling for Android Instant, it will execute instant: assembleRelease/Debug.
In addition, when Cocos Creator compiles for Android, it will execute assembleRelease/Debug by default, and when compiling Android Instant, it will executein``stant:assembleRelease/Debug.
If you have customized the pause logic when switching between audio background and background, please remove it after upgrading to 2.3.0 Currently Cocos Creator games automatically pause and resume audio internally when switching between front and back on all platforms. If the developer has customized this block before, and listens for and performs audio operations like cc.audioEngine.pause() and resume(), it may conflict with the engine’s default behavior. If you encounter related audio issues, simply remove the corresponding custom code.
Upgrade from version v2.0 – v2.3.0
Starting from 2.3.0, the Canvas component is no longer responsible for setting the Canvas node size to the screen size. This behavior will be implemented in conjunction with the Widget component. To ensure compatibility, after the 2.0 project is upgraded, the node where Canvas is located will automatically add Widget components. (No problem upgrading from a 1.0 project)
Upgrade from < v2.2.0
Starting from 2.2.0, we have strengthened the memory management mechanism, and now require users to dynamically create cc.Node which is independent of the scene node tree through code must be released through destroy(), otherwise the engine cannot know when to recycle this type The memory of the node will cause a memory leak.
In addition, the nodes that are manually removed from the scene need to be unified when they are not needed.
// Assuming testNode is a node in the scene, if it was manually removed //from the scene before, such as testNode.parent = null; // or testNode.removeFromParent(true); // or parentNode.removeChild(testNode); // If testNode will be used again in the future, there is no need to // manually destroy the node otherwise it should be called manually testNode.destroy();
If a node is managed via cc.NodePool, it is not affected.
Cocos Creator v2.3.2 is officially released! This update, brings accesses the new Cocos Dashboard system, which can uniformly help upgrade and manage multiple versions of engines and projects at the same time! It is recommended for all v2.3 developers to upgrade!Please perform the necessary technical evaluation and backups before upgrading.
Cocos Dashboard
The Cocos Dashboard serves as a unified downloader and launch portal for Cocos Creator and Cocos Creator 3D engines. Everyone can upgrade and manage multiple versions of Cocos Creator. In addition, unified project management and a creation panel is integrated, which is convenient for everyone to develop projects with different versions of engines at the same time.
Manage projects developed under different versions:
You can choose to use a different version of Cocos Creator when creating a new project:
Improvements
Bug Fixes
[Editor] Fix the problem of importing TiledMap resources when related pictures do not exist
[Core] Fixed 3D particle patch facing incorrectly [#6304]
[Core] Fix the issue that the textures property of MeshRenderer is invalid after the version upgrade [#6311]
[Core] Fixed the issue where the size of the node where Canvas may not be refreshed in time during scene initialization [#6308]
[Native] Fix occasional white blocks on native images [#2258]
[Native] Fix the issue that the memory of the 3D model rendering component of the native platform may not be released [#2262]
[Mini game] Fixed the problem that a large number of audio files failed to load at the same time on the Alipay mini game [#97]
Known Issues
An error will occur when importing Cocos Studio projects into Cocos Creator v2.3.2. This issue will be fixed in v2.3.3. Developers can temporarily import the project into an old version, if needed, and then upgrade to v2.3.2 for use, or use a custom engine and incorporate this change [#6278]
Deprecation
Starting with v2.2.0, we no longer recommend using the Skew feature of Nodes. Skew is usually used to simulate 3D effects in 2D engines. With Cocos Creator’s in-depth support for 3D nodes, Skew effects can be completely achieved by using 3D nodes. Backward compatibility will be maintained for a period of time, developers can continue this original practice, in the old project. In the future, we will further improve the compatibility method and upgrade cases, and officially choose to remove the Skew function.
Upgrade Tips
Upgrading a project from a previous version of Cocos Creator is irreversible. Please backup the old version of the project before upgrading.
Projects under development can usually be upgraded seamlessly, but because of the uniqueness of each project, developers should conduct a technical evaluation based on their project’s own needs. If developers encounter difficulties in upgrading, please feel free to give us feedback and we will try our best to assist. In addition, due to stability considerations, it is recommended that projects that are about to be launched or already launched be upgraded with caution.
Upgrade from < v2.3.0 version
If a Can not find module.module for path… loading warning occurs:
After upgrading to 2.3, this warning may be due to the stricter case detection of the import/requirepaths in the script. In the old version, if the case of the path does not match the actual file, there may be some potential errors which may not be manifested. We recommend that projects experiencing this issue correct the capitalizations.
Since v2.3.0, Android and Android Instant use the same build template, please note:
If the code is used solely by the Android platform, please put it in the app/src directory, and the third-party library used by itself, please put it in theapp/libs directory.
If the code and third-party libraries used by Android Instant are separate, please put them in the game/src, game/libs directories.
For code and third-party libraries shared by Android and Android Instant, please place them in the src and libs directories under the proj.android-studio root directory, respectively.
proj.android-studio under the root directory jni/CocosAndroid.mk, jni/CocosApplication.mk, mainly used to configure engine-related configuration, developer configuration, it is recommended that Android be placed in app/jni/Android.mk and app/jni/Application.mk, Android Instant, please put in game/jni/Android.mk and game/jni/Application.mk.
When Cocos Creator compiles for Android, it will execute assembleRelease/Debug by default, and when compiling for Android Instant, it will execute instant: assembleRelease/Debug.
In addition, when Cocos Creator compiles for Android, it will execute assembleRelease/Debug by default, and when compiling Android Instant, it will executein``stant:assembleRelease/Debug.
If you have customized the pause logic when switching between audio background and background, please remove it after upgrading to 2.3.0 Currently Cocos Creator games automatically pause and resume audio internally when switching between front and back on all platforms. If the developer has customized this block before, and listens for and performs audio operations like cc.audioEngine.pause()/resume(), it may conflict with the engine’s default behavior. If you encounter related audio issues, simply remove the corresponding custom code.
Upgrade from version v2.0 – v2.3.0
Starting from 2.3.0, the Canvas component is no longer responsible for setting the Canvas node size to the screen size. This behavior will be implemented in conjunction with the Widget component. To ensure compatibility, after the 2.0 project is upgraded, the node where Canvas is located will automatically add Widget components. (No problem upgrading from a 1.0 project)
Upgrade from < v2.2.0
Starting from 2.2.0, we have strengthened the memory management mechanism, and now require users to dynamically create cc.Node which is independent of the scene node tree through code must be released through destroy(), otherwise the engine cannot know when to recycle this type The memory of the node will cause a memory leak.
If a node is managed via cc.NodePool, it is not affected.
Further optimize engine package size on mini-games and web platforms
Improve API documentation and creator.d.ts declaration
Added support for TiledMap Object layer Top-Down and Manual rendering order and horizontal and vertical flip (thanks @大城小胖) [[#6157]
Support using Backspace button to delete nodes in the scene
Lock built-in resources to avoid misuse
Disable evalString calls in native non-JS threads to avoid V8 crashes
Editor
Fixed the issue that npm module cannot be used after upgrading to 2.3
Fixed an issue where VS Code could not break after upgrading to 2.3
After upgrading to 2.3, it may cause the script to depend on the cycle and an “TypeError: Object prototype may only be an Object or null” error occurs.
Fixed the problem that plugin path may be wrong when building only scripts on Windows platform (thanks to shengyong)
Fixed the problem of incomplete node display after importing some models (thanks C_Tsang)
Fixed the issue that Spine binary files cannot be uploaded on WeChat mini games
Fixed the issue that the signing certificate generated by Xiaomi to the default path will be deleted during the build
Engine
[Core] Optimize the initialization process when dynamically creating Label nodes [#6173] 1
[Core] Fixed the problem that dynamically modifying the material in Prefab will cause other same materials to be changed [#6201]
[Core] Fix the rendering level problem that may be caused by repeatedly setting zIndex repeatedly (thanks @大城小胖) [#6227]
[Core] Fixed the issue that the EditBox input box was misplaced after the CanWidth component was checked for fitWidth [#6233]
[Core] Fix RichText’s modification and typographical errors when active is false [#6231]
[Core] Fix the first Burst display of 3D particles is incorrect. [#6269]
[Native] Fix the error caused by destroying Mask in event callback [#6186]
[Native] Fixed the problem of invalid material switching technology (thanks inkfood.com 1) [#250]1
[Native] Fix incorrect width and height obtained after window size change [#249]
[Native] Fix the problem that the widget is not updated after the window size is changed [#6224]
[Native] Fix JS native debugging cannot use Performance and Profiler [#2186]
[Native] Fix Editbox clicking soft keyboard to collapse triangle, did not trigger edit completion event
[Native] Fix memory leak when restarting the game [#2215]
[Native] Fix the problem that the Android audio module will prevent the device from entering the power saving mode after entering the background [#2137]
[Native] Fix window adaptive problem when split screen in Android [#2142]
[Native] Fix window size error after Windows platform restart [#2129]
[HTML] Fixed the problem that audio cannot be played when safari returns to the game from the background [#6198]
[Mini game] Fix the problem that Audio is not destroyed [#6221]
Known Issues
An error can occur when importing a Cocos Studio project in v2.3.1. This issue will be fixed in v2.3.2. Developers can temporarily import projects in the old version editor if needed, and then upgrade to v2.3.1 for use.
Upgrade Tips
Upgrading a project from a previous version of Cocos Creator is irreversible. Please backup the old version of the project before upgrading.
Projects under development can usually be upgraded seamlessly, but because of the uniqueness of each project, developers should conduct a technical evaluation based on their project’s own needs. If developers encounter difficulties in upgrading, please feel free to give us feedback and we will try our best to assist. In addition, due to stability considerations, it is recommended that projects that are about to be launched or already launched be upgraded with caution.
Upgrade from < v2.3.0 versionSince v2.3.0, Android and Android Instant use the same build template, please note:
If the code is used solely by the Android platform, please put it in the app/src directory, and the third-party library used by itself, please put it in theapp/libs directory.
If the code and third-party libraries used by Android Instant are separate, please put them in the game/src, game/libs directories.
For code and third-party libraries shared by Android and Android Instant, please place them in the src and libs directories under the proj.android-studio root directory, respectively.
proj.android-studio under the root directory jni/CocosAndroid.mk, jni/CocosApplication.mk, mainly used to configure engine-related configuration, developer configuration, it is recommended that Android be placed inapp/jni/Android.mk and app/jni/Application.mk, Android Instant Please put in game/jni/Android.mk and game/jni/Application.mk. When Cocos Creator compiles Android, it will execute assembleRelease/Debug by default, and when compiling Android Instant, it will execute instant: assembleRelease/Debug.
Upgrade from version v2.0 - v2.3.0Starting from 2.3.0, the Canvas component is no longer responsible for setting the Canvas node size to the screen size. This behavior will be implemented in conjunction with the Widget component. To ensure compatibility, after the 2.0 project is upgraded, the node where Canvas is located will automatically add Widget components. (No problem upgrading from a 1.0 project)
Upgrade from < v2.2.0Starting from 2.2.0, we have strengthened the memory management mechanism, and now require users to dynamically create cc.Node which is independent of the scene node tree through code must be released through destroy(), otherwise the engine cannot know when to recycle this type The memory of the node will cause a memory leak.In addition, the nodes that are manually removed from the scene need to be unified when they are not needed. If a node is managed via *cc*NodePool, it is not affected.// Assuming testNode is a node in the scene, if it was manually removed from the scene before, such as
testNode.parent = null;
// or
testNode.removeFromParent(true);
// or
parentNode.removeChild(testNode);
// If testNode will be used again in the future, there is no need to manually destroy the node// otherwise it should be called manually
testNode.destroy();
Upgrade from v<2.0If you open the 1.x project, all resources such as scenes will be upgraded automatically. If there are warnings or errors in the code, you can refer to v1.10.0 Resource Upgrade Guide and the v2.0.0 Upgrade Documentation.
After a long period of development and preparation, and after a memorable Spring Festival, Cocos Creator v2.3 is officially released. v2.3 is a very important version that officially integrates support for 3D physics, collisions, and 3D particles, and is capable of developing more types of 3D games! At the same time, the material system has been upgraded from the experimental version to the official version, which can greatly improve the expressiveness of a game. It is recommended that all developers upgrade!Please perform the necessary technical evaluation and backups before upgrading.
Support publishing to Qutoutiao (QTT) mini games
Cocos Creator v2.3 officially supports publishing to a brand new platform: Qutoutiao Mini Games. For detailed steps on platform access, please refer to Publish to Qutoutiao Mini Games.
Support 3D physics system
Like Cocos Creator 3D, Creator’s physics engine is based on cannon.js and provides users with an efficient, componentized workflow with convenient usage methods. Currently, supported functionality is: rigid body, Box/Sphere collision components, trigger and collision events, physical materials, ray detection and many other features.
Like Cocos Creator 3D, Creator provides a lightweight collision detection system called Builtin. Builtin is a physics module with only a collision detection system. Compared to other physics engines, it does not have complicated physics simulation calculations, which will make the game’s package smaller and provide better performance.
Upgrade the material system to the official version
Creator’s material system was originally added in v2.1.1, but has been marked as an experimental feature in the editor and lacked relevant documentation. After a few iterations, it has upgraded to the official version! This version of the Effect compilation syntax is consistent with Cocos Creator 3D. It can be written using VS Code’s Cocos Effect plugin, but the built-in shader variable names are slightly different. Developers who have customized materials in the previous version of Creator can try to upgrade to the official version according to the documentation. If you encounter difficulties, you can post on the forum for help. The features of the new version of the material system are as follows:
Support real-time preview of modified results in the scene when modifying materials.
Supports material variants and effect variants, making it more friendly to 2D games.
When playing skeletal animations, developers often need to mount nodes on a certain part of the skeletal animation to achieve the effect of linking the node with the animation. In Creator v2.3, only a single, very simple operation is needed to mount any node to the bone animation. The node will follow the animation and transform it to achieve the effect of the hanging point. You can also add collision components to the node to achieve collision detection!
In Cocos Creator v2.3, the Spine runtime was upgraded to v3.8. v3.8 supports the skel binary format for importing from Spine. The usage of the skel format is the same as the original JSON format, but the file is smaller and loads faster!
Only recompile scripts when building
In the build panel, if you have successfully built the project before, you can check Build script only for the second build. The checked build will reuse the engine and resources that were built last time, and only recompile the scripts, which will greatly facilitate debugging! This is a very popular feature in the community, thank you very much for suggesting it.
Scene Editor adds 3D viewing options
Other Important Features
Property inspector supports multi-select batch setting of resources
Support switching single and multi-touch, use cc.macro.ENABLE_MULTI_TOUCH macro for setting [#5847]
Label component supports bold, italic, and underline settings when using ttf or system font
Fixed the problem that the particle system image was stretched to a square [#5897]
Fixed the problem of particle file parsing positionType error [#5946]
Fix the problem that Graphic points drawn in the middle coincide with the starting point, the points drawn later will close automatically (thanks to chocolate) [#6002]
Fix WheelJoint component setting frequency error report [#6000]
Fixed the problem of incorrect calculation of orthoHeight when Align With Screen of Camera was false [#6139]
Fix VideoPlayer Invalid local aspect ratio when displaying local video [#6138]
Native
Fixed the problem that frequent creation of 3D models caused crashes [#2056]
Fix the problem that there is no callback after the image fails to load [#2077]
Fixed the problem of using local cache when loading remote audio with the same name [#219]
Fixed the issue that Spine, DragonBones, and particles fail in batches after switching parent nodes [#1993]
Fixed camera rendering error for multiple Stage[#1897]
Fix Spine setAttachment interface is invalid [#1992]
Fixed TiledMap rendering abnormally during dynamic loading [#229]
Fixed the issue that the text layout of the iOS platform and the Mac platform are inconsistent with the web [#1960]
Fixed the problem that iOS does not pause the game when double-clicking the home button [#1947]
Fixed iOS crashing background when switching glContext from background [#2083]
Fix the issue that files are not updated during Android Instant build [#2067]
Fixed WebSocket crash on Android 64 models [#2074]
Mini Games
Fix the problem that VideoPlayer cannot play when the scene is delayed loading [#72]
Fix EditBox’s length is invalid when it is set to negative value [#60]
Fixed the issue that the audio is not responding when loading on WeChat [#52]
Fixed the problem of rendering errors using cartoon materials on WeChat [#6008]
Fixed the problem that the hidden video is not paused when playing the WeChat mini-game VideoPlayer
Fix issue with languageCode undefined on vivo platform
Web
Fix the problem that the widget does not adapt correctly after the browser automatically rotates [#6061]
Fixed the problem that the finger cannot be zoomed with UC browser full screen [#5863]
Fixed the problem that VideoPlayer was in the wrong position after exiting full screen on IE browser
Fix the problem that QQ browser gets wrong mouse position [#5604]
Fix the problem of wrong touch event after scrolling in Safari [#5907]
Fix the problem that Safari displays the wrong navigation bar [#5926]
Editor
Scene editor supports focus node with F shortcut
Added backspace shortcut for animation editor to delete animation frames
Improve node multi-select batch setting, add multi-select add component function
Fixed an animation error when the animation editor switches nodes with the same name
Fixed the problem that the preview panel could not be displayed when switching to the game preview panel under animation editing
Fixed the problem of calculating the center point of the rectangle change tool
Fixed the problem that the resolution property of Canvas is not updated immediately in the scene
Fixed the issue that the Canvas wireframe of the scene editor would be blocked by other nodes
Fixed the problem that the node cannot be switched using the keyboard
Fixed an issue where the animation editor displayed incorrectly when switching to a node without an animation component
Fixed an issue where Color Picker could not save color presets
Fixed the issue that the simulator resolution does not switch after running after switching projects
Fixed issue where build failed using command line
Fixed the problem that the native platform cannot build the audio module
Fixed the problem that the build fails when there is no texture in the auto atlas
Fixed build failure after copying project
Fix the effect that the name of the Effect file is wrong when it starts with a number
Fixed the issue of splash screen when switching editors
Fixed TypeScript import failure
Fixed the problem that the editor cannot be opened when the editor is installed on the Chinese path
Fixed the problem of failed import model
Fixed the problem that failed to build a new certificate for Xiaomi game on Windows
Fixed the problem that nodes cannot be dragged after adding collision body components
Fix the picture distortion caused by pvrtc-4bits-rgb-seprate-a when the texture has only three channels
Fix ShowFPS button status not saved during webpage preview
BREAKING CHANGES
cc.Mat4.translate method no longer supports rotation transformation, only pure displacement transformation is supported. If you need to support rotation, please usecc.Mat4.transform instead.
KNOWN ISSUES
Requiring node_modules directly is not available in v2.3.0 temporarily. It will be fixed in the next version. It is currently recommended that external libraries be compiled separately and imported using the Plugin Scripts.
Deprecation
Starting with v2.2.0, we no longer recommend using the Skew feature of nodes. Skew is usually used to simulate 3D effects in the 2D engine. With Cocos Creator’s deep support for 3D nodes, the Skew effect can be completely realized by 3D nodes. Inorder to unify the user experience and further optimize the underlying implementation of the engine, we discarded the Skew attribute. However, we will still maintain backward compatibility for a period of time, developers can continue the original practice in the old project. In the future, we will further improve the compatibility method and upgrade cases, and officially choose to remove the Skew function.
Upgrade Tips
Upgrading a project from a previous version of Cocos Creator is irreversible. Please backup the old version of the project before upgrading.
Projects under development can usually be upgraded seamlessly, but because of the uniqueness of each project, developers should conduct a technical evaluation based on their project’s own needs. If developers encounter difficulties in upgrading, please feel free to give us feedback and we will try our best to assist. In addition, due to stability considerations, it is recommended that projects that are about to be launched or already launched be upgraded with caution.
Upgrade from < v2.3.0 version Since v2.3.0, Android and Android Instant use the same build template, please note:
If the code is used solely by the Android platform, please put it in the app/src directory, and the third-party library used by itself, please put it in theapp/libs directory.
If the code and third-party libraries used by Android Instant are separate, please put them in the game/src, game/libs directories.
For code and third-party libraries shared by Android and Android Instant, please place them in the src and libs directories under the proj.android-studio root directory, respectively.
proj.android-studio under the root directory jni/CocosAndroid.mk, jni/CocosApplication.mk, mainly used to configure engine-related configuration, developer configuration, it is recommended that Android be placed inapp/jni/Android.mk and app/jni/Application.mk, Android Instant Please put in game/jni/Android.mk and game/jni/Application.mk. When Cocos Creator compiles Android, it will execute assembleRelease/Debug by default, and when compiling Android Instant, it will execute instant: assembleRelease/Debug.
Upgrade from version v2.0 - v2.3.0 Starting from 2.3.0, the Canvas component is no longer responsible for setting the Canvas node size to the screen size. This behavior will be implemented in conjunction with the Widget component. To ensure compatibility, after the 2.0 project is upgraded, the node where Canvas is located will automatically add Widget components. (No problem upgrading from a 1.0 project)
Upgrade from < v2.2.0 Starting from 2.2.0, we have strengthened the memory management mechanism, and now require users to dynamically create cc.Node which is independent of the scene node tree through code must be released through destroy(), otherwise the engine cannot know when to recycle this type The memory of the node will cause a memory leak.In addition, the nodes that are manually removed from the scene need to be unified when they are not needed. If a node is managed via ccNodePool, it is not affected.
// Assuming testNode is a node in the scene, if it was manually removed from the scene before, such as testNode.parent = null; // or testNode.removeFromParent(true); // or parentNode.removeChild(testNode); // If testNode will be used again in the future, there is no need to manually destroy the node // otherwise it should be called manually testNode.destroy();
Upgrade from v<2.0 If you open the 1.x project, all resources such as scenes will be upgraded automatically. If there are warnings or errors in the code, you can refer to v1.10.0 Resource Upgrade Guide and the v2.0.0 Upgrade Documentation.
Cocos Creator v2.2.2 is intended to fix defects and improve product stability. Please see below for a subset of improvements.
Upgrade Instructions
If you open the 1.x project, all resources such as the scene will be automatically upgraded. If there is a warning or an error, please refer to 1.10.0 Resource Upgrade Guide and 2.0.0 Upgrade Documentation to make adjustments.
2.0, 2.1 Projects can be upgraded directly and seamlessly.
Starting with 2.2, we have enhanced the memory management mechanism. Now the cc.Nodethat is dynamically created by the code and independent of the scene node tree must be released by destroy(), otherwise the engine doesn’t know when to recycle such nodes. In addition, nodes that are manually removed from the scene need to unify destroy when they are not needed. If the node is managed via cc.NodePool, it is not affected.
// Suppose testNode is a node in the scene, if it was manually removed from the scene, such as
testNode.parent = null;
// or
testNode.removeFromParent(true);
// or
parentNode.removeChild(testNode);
// If testNode will be used again later, there is no need to manually destroy the node.
// Otherwise it should be called manually
testNode.destroy();
Bug Fixes
Fix a possible memory leak issue with Spine, DragonBones, and particle systems on native platforms [#5905]
Fix possible memory leak when using RichText with Outline [#5906]
Fix the problem that WeChat mini game may not end when loading multiple audios at the same time [#57]
Fix the problem that calculateDeltaTime may endlessly loop after the WeChat mini game is cut back from the background [#e222465]
The Cocos Creator team has worked hard to release v2.2.1. A big THANK YOU! to all the developers that upgraded to previous versions of v2.2 and provided feedback to help continue to make Cocos Creator a preferred tool is creating multi-platform games. Your encouragement and feedback keep us motivated and provide confidence to make the decisions to move Cocos Creator in the direction to become the number 1 choice in game development environments. Cocos Creator allows developers to enjoy creating amazing games and distributing them to a variety of platforms. Cocos will, as always, optimize the performance and user experience of our products.
This release brings a large number of experience optimizations, defect repairs, and performance optimizations. At the same time, support for Alipay Mini-Games has been added.
It is recommended that all developers upgrade after performing the necessary technical evaluations and after upgrading their existing projects for safe-keeping. Please do not skip these steps.
Support for Alipay Mini-Games
Mini-Games are insanely popular and many platforms are starting to support them. This opens up many new revenue opportunities. Alipay, an e-commerce giant recently added support for mini-games. Cocos Creator v2.2.1 is the first platform to release support for Alipay Mini-Games. For more information, please refer to《Alipay Mini-Games》.
Support WeChat mini game engine plugin
The game engine plug-in is a new feature of WeChat version 7.0.7. This can greatly reduce the download time of games. This plug-in is now integrated into Cocos Creator v2.2.1 as part of the environment and will be more convenient to use. Developers only need to check Allow engine separation in the Build panel, and then build the release normally, without any other manual operations.
If you open the 1.x project, all resources such as the scene will be automatically upgraded. If there is a warning or an error, please refer to 1.10.0 Resource Upgrade Guide and 2.0.0 Upgrade Documentation to make adjustments.
2.0, 2.1 Projects can be upgraded directly and seamlessly.
Starting with 2.2, we have enhanced the memory management mechanism. Now the cc.Nodethat is dynamically created by the code and independent of the scene node tree must be released by destroy(), otherwise the engine doesn’t know when to recycle such nodes. In addition, nodes that are manually removed from the scene need to unify destroy when they are not needed. If the node is managed via cc.NodePool, it is not affected.
// Suppose testNode is a node in the scene, if it was manually removed from the scene, such as
testNode.parent = null;
// or
testNode.removeFromParent(true);
// or
parentNode.removeChild(testNode);
// If testNode will be used again later, there is no need to manually destroy the node.
// Otherwise it should be called manually
testNode.destroy();
Cocos Creator v2.1.4 adds support for Alipay games.
Support for Alipay games
Cocos Creator officially supports releasing to the new Alipay platform. Since Cocos Creatorsmoothes the transition between platforms for developers, it’s easy for developers to publish to Alipay games. For detailed steps refer to Publish to Alipay. Alipay is currently being opened and is a prime target for future opportunities.
Other changes (relative to 2.1.3)
Fixing a disabled Label node may cause Prefab to fail to roll back in the editor [#5460]
Fixed UA information recognition issue in Safari browser after iPad update to iPadOS 13.1.1+ (thanks to krapnikkk)[#5636]
Version Updates
Cocos Creator v2.2.1 is coming soon. please view the Welcome Experience topic. This version will integrate Alipay games.
The Cocos Creator team has been hard at work ensuring that your games perform very well on each platform we support. Cocos Creator v2.2.0 greatly enhances the performance of the native platform, and includes a large number of feature enhancements and experience improvements. All Cocos Creator developers should consider upgrading to this latest version.
In this version, we have significantly upgraded the rendering engine and achieved tremendous performance improvements on native platforms, surpassing the speeds of all previous versions of Cocos Creator, Cocos2d-js and Cocos2d-x.
Cocos Creator v2.2 can meet all the performance needs of every game, small to large, simple to complex, few gaphics to 1,000’s of graphics. To help gauge performance, low-end devices, such as the OPPO A57 and the iPhone 6S+ were used. We also compared previous versions of Cocos Creator, Cocos2d-js, Cocos2d-x and Cocos2d-lua to ensure we were testing in a broad spectrum, to provide the most accurate data. The results:
On Android native, the performance of Cocos Creator v2.2.0 is 1.5x - 1.7x Cocos2d-lua and Cocos Creator v1.9.3.
On iOS native, the performance of Cocos Creator v2.2.0 is flush with Cocos2d-lua, which is 3x - 4xCocos Creator v1.9.3.
In addition, Cocos Creator v2.2.0 running on iOS not only improves the frame rate, but also greatly reduces any possibility of jittering when garbage collection occurs. This means the actual game play experience will be really smooth. Here is detailed performance data:
Support 3D model rendering batch
Cocos Creator v2.2.0 adds support for rendering batches of 3D models, which effectively reduces the drawcalls for 3D games. To enable this feature, you simply check the enableAutoBatch attribute on the Mesh Renderer and the engine will automatically batch based on the material used, as well as the Mesh vertex format and Primitive Type. For better optimization, it is recommended that you enable this option only for models that can be batched and have a small number of vertices.
Support for alpha channel separation of PVR compressed textures
Alpha channel separation format (RGB+A) for PVR compressed textures has been added. This format uses a similar method to etc. to separate and compress the transparent channel of the texture. After compression, the texture height will be twice that of the original image, thus avoiding the problem of low image quality in the conventional PVR RGBA format.
Support for custom browser preview templates
Allow users to customize the webpage used for browser preview in a way similar to custom build templates. Support for 3 formats: HTML, Jade, EJS. See: Custom Preview Templates.
Support for ambient light settings
We have added an ambient light setting to the Light component for basic lighting of 3D scenes. This is often used to solve the problem of blackout of the back surface of the model. Just select Create Light → Ambient in the Node creation menu. You can also add a Light component to the Node and set the type to be created for AMBIENT.
Further improve the performance of Spine and DragonBones
Cocos Creator v2.2.0 optimizes the performance of 2D skeletal animation on various platforms.
On the native platform, we have added support for Spine and DragonBones SHARED_CACHE and PRIVATE_CACHE. When the acceleration mode is enabled, the Spine performance of the Android platform is 2x that of the original, and the DragonBones performance is 7x the original. iOS platform Spine performance is 3x the original, DragonBones is 5x the original.
After enabling acceleration mode on the web platform, Android Spine performance is 3x the original, and DragonBones performance is 4x the original. iOS Spine performance is 1.25x the original, DragonBones performance is 1.39x the original.
Here is a breakdown of the detailed performance data:
To enable acceleration mode, simply set the Animation Cache Mode to SHARED_CACHE or PRIVATE_CACHE on the Spine or DragonBones component. For more detailed information acceleration mode, refer to the property descriptions in the documentation.
Cocos Creator v2.2.0 further improves the support of TiledMap. Grid rotation, grid animation, image layers, layer offsets, and object group text are now supported. Supporting multiple Tilesets in a single layer is also now possible. It also supports adding child nodes to the scene and creating an occlusion relationship with the map. And fixed the problem of rendering errors after a single map vertex exceeds 65535. For details, see TiledMap Component Reference. For details on use cases, see ShieldNode in the engine’s own example.
Property inspector tag supports width adjustment
We added a width adjustment function to the Property inspector to solve the problem of incomplete display of attribute names on some components. Now users do not need to greatly adjust the size of the entire panel, just drag the dividing line to the right of the property name to freely adjust the split ratio.
Improvements
Optimize the editor and the startup speed of each panel
Avoid every time the WeChat game build will overwrite the configuration file in the target project in order to retain the user’s custom configuration
Change the margin property in the SpriteFrame resource panel and Sprite Editor from the trimmed margin to the original margin. Make it consistent with the data given in the art drawing, and have no effect on the old project data.
Automatically remove the open domain components of other small game platforms during the build process, users do not need to manually configure in the module settings
The native platform package name in the build panel will be stored separately according to different platforms
Upgrade the editor’s Electron to 5.0.8, V8 to 7.3, node.js to 12.0.0
Optimized Spine Initialization problem after enabling acceleration mode
Officially supported on iOS platform etc2 Compressed texture
Enable OpenGLES3 by default on iOS
Adaptation macOS Catalina
Editor Fixes
Fixed an issue where the scene name could not be obtained during preview after exiting Prefab edit mode
Fixed 3D node in scene editor may show confusion after exiting Prefab edit mode
Fixed an issue where the animation editor was being deleted and the animation editor would report an error.
Engine Fixes
Fixed an issue where events polled with once could not be logged off
Fixed cc.systemEvent listening for invalid once events (thanks to Zty)
Fixes DragonBones and Spine textures do not support the problem of scene resource lazy loading [#4299]
Fix part DragonBones The animation is not playing correctly
Fixed an issue where warnings were not raised when the type was set to JavaScript’s native Number, String, etc. when using the decorator to declare CCClass
Fixed a problem where the default value is incorrect when the CCClass is declared as the default value of cc.String, cc.Boolean, etc.
Native
Fixed a problem with music being paused from the background after the music was paused on the native platform [#141][#1875]
Fix Android After playing multiple Audio instances in succession, there is a random problem with some sounds [#1869]
Fixed Audio for lazy loading on native platforms, unable to stop after playback [#180]
Fix iOS or Mac When the native platform reloads Font, it may cause memory leaks [#1761]
Fix iOS13 Dark mode causes EditBox white fonts are not visible [#1866]
Web
Fix IE11VideoPlayer Can’t full screen issue [#4879]
Mini Game
Fixed AudioSource’s playOnload may not work
Avoid iOS on Baidu game cut scenes may be black screen problem
REMOVED
Removed Visual Studio 2015 support for building Windows platforms for unified use of 2017.
BREAKING CHANGES
Adjust cc.winSize from cc.Vec2 to cc.Size
KNOWN ISSUES
v2.2.0 does not support the Skew effect on nodes for the time being. We will provide documentation to guide you to manually enable Skew support. For new projects it is suggest ed to use 3D Sprite directly instead of Skew. For old projects please refer to [#5564] and [#1889] to match js and native engines to support Skew.
After publishing to Windows/Mac, to resize the screen, please manually follow [#1930] to accommodate.
Some old projects may have referred to this [forum post], which implements screen rotation on iOS and Android. This is now old information. Please manually follow [#1930] to accommodate.
On some macOS machines, `Label` will appear in the CHAR mode with a white border. This problem has a small impact and will be fixed in 2.2.1. For more follow-up version plans, please refer to the [roadmap].
Upgrade Instructions
If you open the 1.x project, all resources such as the scene will be automatically upgraded. If there is a warning or an error, please refer to 1.10.0 Resource Upgrade Guide and 2.0.0 Upgrade Documentation to make adjustments.
2.0, 2.1 Projects can be upgraded directly and seamlessly.
Starting with 2.2, we have enhanced the memory management mechanism. Now the cc.Nodethat is dynamically created by the code and independent of the scene node tree must be released by destroy(), otherwise the engine doesn’t know when to recycle such nodes. In addition, nodes that are manually removed from the scene need to unify destroy when they are not needed. If the node is managed via cc.NodePool, it is not affected.
// Suppose testNode is a node in the scene, if it was manually removed from the scene, such as testNode.parent = null; // or testNode.removeFromParent(true); // or parentNode.removeChild(testNode); // If testNode will be used again later, there is no need to manually destroy the node. // Otherwise it should be called manually testNode.destroy();
Since the release of Cocos Creator 2.1.0, after six months of update iterations, the version has stabilized, and the new users of 2.1 are now in the mainstream. Therefore, we plan to reduce the maintenance of the 2.0 version, focus our efforts on 2.1 and 2.2 development, and strive to make Cocos Creator a more focused, open and healthy open source platform.
Cocos Creator v2.1.3 optimizes the experience and fixes bugs. It is recommended for all v2.0 and v2.1 projects in development. to upgrade.
Support iOS 13
To support the upcoming iOS 13 operating system, we replaced the underlying VideoPlayerimplementation on iOS native with the MPMoviePlayerController for AVPlayerContoller[#1831], at the same time, the underlying WebView with UIWebView for WKWebView was replaced. [#1837].
Improvements
Add fault tolerance to the component’s onLoad, start, update, lateUpdate functions to better handle exceptions thrown by user scripts. [#4941]
When you preview particles in the editor, the particles in the child nodes under the current node will be played synchronously, which is convenient for art. (In the editor, the particles in the child nodes under the current node are played simultaneously for easy art viewing).
Improve the behavior of dragging resources into the scene for creation (Improve the behavior of dragging resources into the scene for creation)
Add the option Packable in the Property inspector to see if the image can be dynamically combined. It solves that custom shaders can’t get the original UV. For details, see Texture:packable.
Allow double-click on the json asset in Assets panel in the resource editor
Set the texture type to RAW by default when importing the plist atlas when importing plist atlas
Add Vec4 type support to Properties panel in the Property inspector.
Improvements creator.d.ts Type hints (Improve some creator.d.ts type hints)
Optimized Label’s SHRINK dynamic layout, while supporting CHAR mode (Optimize the SHRINK dynamic layout of Label and support CHAR mode)[#5223]
Avoid performance overhead when calling Texture2D.update multiple times [#5198]
Upgrade V8 to 7.5 on Android.
VideoPlayer is available to WeChat Mini Game.
Editor Fixes
Fixed an issue that rotation data in AnimationClip will be lost after upgrading from v2.0
Fixed an issue where the rotation of the scene and nodes in Prefab at a certain angle was lost after upgrading from v2.0
Fixed an issue where some items open on the machine and stopped at the Is importing resources, please wait interface
Fixed a problem that compressed texture may be missing after project build (thanks to xu.lidong)
Fixed a problem that when a compressed texture’s quality is 100, the builder cannot generate the image file correctly.
Fix an issue where script may be misreported after it is moved or renamed
Fix Animation editor issue where the timeline editor can’t set Node’s z value
Optimized Animation editor Optimized the error handling of the Timeline editor when the state of components, assets, etc. changes
Fix an issue where the gizmo is not located correctly in the scene editor
Fix the problem where the node rotation can not be undone.
Fixed attribute checker settings Camera’s Rect has no effect) [#5294]
Fixed an issue where a scene or prefab could not be opened normally after something went wrong with their data in some cases
Fixed an issue where RichText or Label components may generate a space at the beginning of a line when after the text that the RichText or Label component fills in the editor is automatically wrapped. The text filled in in the editor is wrapped.
Fixed an issue where content is not displayed when the NodeTree and Assets merge into the same panel when fixing the level manager and the resource manager merged into the same panel.
Engine Fixes
Fixed an issue where a scene async loading assets can cause the 3D model can not be displayed [#5071]
Fixed an incomplete rendering issue of 3D skeletonanimation[#5349]
Fixed problems that requestAnimFrame related error may occur when the engine is initializing [#5248]
Fixed an issue where dynamic stitching would cause texture edge pixel anomalies in certain situations (thanks to unace)[#5242]
Fixed problems that Animation’s “stop” and “lastframe” don’t trigger under certain situations [#5246]
Fixed an issue loading a scene with WebView, then the first frame will flash on screen after The scene is switched [#5106]
Fixed the problem that the Label** text will still show after the text is empt [#5266][#5284]
Fixed an issue when a Label used with a LabelOutline, Label Overflow is set to SHRINK or CLAMP, and CacheMode is set to CHAR, the node is not sized correctly)[#5145]
Fixed an issue where RichText may lose spaces after wrapping [#5116]
Fixed an issue where the Sprite component does not support MESH mode [#5195]
Fixed an issue where ScrollView, PageView enables Elastic May not bounce back after sliding beyond the boundary [#4894]
Fixed an issue with ScrollView’s ScrollBar display unexpected [#5249]
Fixed an issue where Layout doesn’t work correctly when it’s scaling less than 1)[#5074]
Fixed an issue that the node where the PhysicsCollider is located may report error by modifying the node’s group property in runtime (thanks to HengHuH [#4949]
Fixed an issue where the engine’s built-in assets may have been mistakenly released by the user[#4915]
Fix an issue where memory leaks can occur when a large number of render nodes are added and deleted [#5025]
Fixed node’s targetOff method may not work [#5052]
Fixed an issue where an audio instance may have been destroyed by error after more than 32 audio instances are playing At the same time [#5097]
Fix the problem with particle coordinate errors in Free mode [#5320]
Six months has passed since the release of Cocos Creator v2.1.0, and the team has been hard at work creating the next releases. Cocos Creator v2.1.0 is our most popular release to date. The development teams effort will be spent on Cocos Creator v2.1.0 and therefore maintenance of v2.0.xwill be discontinued. v2.0.x users should consider upgrading to v2.1.1 when it makes sense to do so.
The v2.1.2 update includes not only general experience optimizations and bug fixes, but also the optimization of pure 2D projects, as well as a decrease in project size. At the same time, this version also incorporates all the changes in v2.0.10, supporting the two new platforms: Xiaomi Mini Gamesand Cocos Play.
Optimizing 2D projects
Previously we had always positioned v2.1 as a 3D predecessor, so v2.1 was lagging behind for the care of pure 2D projects. However, v2.1.2 has been carefully optimized to work well with both 2D and 3Dprojects. Now we officially recommend that all v2.0 projects be upgraded to v2.1.2. Projects upgraded from v2.0 will default to 3D modules, ensuring that there is no impact on the package and performance of 2D projects. To add 3D support, manually check the 3D module in Menu → Project → Project Settings → Module Settings.
Supports Xiaomi Mini Games
Cocos Creator officially supports publishing to Xiaomi Mini Games. For detailed usage, please refer to Publish to Xiaomi Mini Game.
Supports Cocos Play
Cocos Creator officially supports publishing to Cocos Play. For detailed usage, please refer to Publish to Cocos Play.
Improvements
Improve the WeChat game resource loading process
Fixed a problem where the resource might not load successfully (thanks to snow_storm for feedback) [#97]
Optimize processing logic when caching fails [#98]
Fixed a problem with subsequent callbacks of remote images without multiple callbacks [#96]
Avoid crashes caused by oversized json file parsing (thanks to canghai7789 for feedback)[#101]
Adjust the cache interval to reduce the impact on the game frame rate [#97]
Editor Fixes
Complete automatic atlas algorithm, now you can generate the smallest size atlas without manually adjusting max size
Improve Windows platform support for multiple monitors. Now the editor automatically detects window visibility when it starts, ensuring that the window displays properly
Increase warning information before project upgrade or downgrade to prevent users from misoperation
Added DragonBones and Spine’s dressup demo [#725] in the included sample project
Optimized editor compatibility with GPU devices and reduced false positives due to WebGL compatibility
Improved the Asset Watcher mechanism. If the type of an accessor(getset) of a component is defined as an array of resources, the setter will be triggered to reset the entire array when the corresponding resource changes
Engine Fixes
Turn off preserveDrawingBuffer by default on WeChat game, which solves the problem that the game will be stuck for a few seconds from the background to the front desk [#4537]. (The WeChat game must be enabled with preserveDrawingBuffer when it is first released, otherwise the scene switch will be black)
Improved positioning accuracy of Label on native platform [#4765], [#1764]
Optimized BMFont Memory usage during rendering [#4651]
Allow Label to be modified again after setting it to BITMAP mode (although it is still not recommended, resulting in additional memory and performance overhead)
Reduced the timeout for loading ttf fonts from Web platform from 60s to 3s [#4536]
Added url attribute to Asset to get the actual url of the current resource. Developers can directly call the platform’s native API to use these urls [#4536]
Bug Fixes
Editor
Cannot convert undefined or null to object may be reported when fixing a build project
Fixed rendering problems caused by the offset of some Sprites when importing plist atlas
Fix gizmo related issues for circle collider
Fixed an issue where VideoPlayer and WebView were not displaying correctly in the editor
Fixed an issue where the render component could not save the custom material [#4390]
Fixed an error when compiling scripts using the command line
Fixed issue where the scene editor does not display the animation track in the animation editing mode
Fixed issue where the plugin’s own runtime-resource could not be displayed in the explorer after reloading the third-party plugin reload
Fixed a problem where the project might fail to build when the image suffix in the automatic collection is named uppercase PNG
Engine
Fix Input events Respond to problems with hierarchical errors in individual cases [#4522]
Fixed an issue where the z setting of the 3D node is invalid [#4408]
Fixed 3D GPU bone count failed to determine correctly, causing problems that the model may not display in some cases [#4772]
Fixed an issue where releasing remote image release failed [#4536]
Fixed Spine and DragonBones rendering batch invalidation issues in v2.1.1 [#4645]
Fix Spine uses rendering problems after clipping [#4744]
Fix Label When using BITMAP mode, dynamic mapping does not work [#4393]
Fixed PageView Sliding position calculation error when dynamically adding page [#4556]
Fixed an issue where cc.tween has a value of 0. [#4790]
Fix the problem that the distance returned by the ray detection will be affected by the node scaling [#4562]
Fixed an issue where built-in resources would be emptied when restarting the game [#4509]
After the repair project is directly upgraded from version 2.0 or earlier, the Rotate related Action orientation will be wrong.
Fixed native platform Label rendering performance degradation problem [#1765][#143]
Fix native platform, if you render the 3D model with less bones first and then render the model with more bones, the problem will be rendered incorrectly [#4473]
Fix native platform after executing cc.game.end() If there are still resources downloaded in the background, it will cause a crash [#1763]
Fixed Spine on the native platform. Frequent loading and unloading of the resource [#1758]
Fixed native platform sub-package scripts are not encrypted as jsc files
Fix Windows platform Label Inconsistent text size [#1766]
Fixed a problem with WebGL compatibility errors reported on some browsers after version 2.1 [#4394]
Fix Web platform EditBox occlusion of other UI control touch events (change default stayOnTop to unStayOnTop)[#4705]
Fix Web on the mobile sideEditBox When cloning the soft keyboard, the problem of adapting the Canvas size multiple times[#4705]
Fix Web platform EditBox Placeholder shows incorrect question when multi-line input [#4705]
Fix WebAudio setting the volume may not work immediately [#4767]
Fixed iOS on WeChat browser EditBox problem with misplaced touch area after soft keyboard [#4705]
Fixed a problem with the Facebook Live SDK logic exception
Fix WeChat mini game On iOS Audio may not be replayable [#102][#107]
Fix WeChat mini game on background music can not stop the problem [#4793]
Fix WeChat mini game answer phone after Audio no longer resumes playing [#4757]
Fix WeChat mini game Open field does not support the error caused by Button Gray Effect [#4474]
Fix WeChat mini game Open domain does not support WebGL caused an error [#4748]
Fixed call to WeChat game in version 2.1.1subContextView.update() Unable to update open domain map issue [#4721]
Since v2.0.0 has been rewritten from the bottom with a 3D renderer, Cocos Creator has evolved into a game engine that can be both lossless and purely 2D and 3D. In the future, Cocos Creator will continue to adhere to the 2D first concept, continue to improve 2D game development experience and basic performance, and gradually introduce 3D features suitable for 2D games.
We are proud of v2.1.2, and we wonder if you are proud too? Good quality is inseparable from careful polishing, and Cocos will continue to improve the quality of its products with a down-to-earth spirit. We welcome our community to continue to submit feedback to us through forums, GitHub, Cocos Enterprise Services and other channels!
Cocos Creatorv2.0.10 focuses on improving the stability of the native platform, fixing issues related to Spine, DragonBones, and Label. It is recommended that all v2.0 users upgrade. In addition, v2.0.10 also supports the release of two new platforms, Xiaomi Quick Game andInstant Play Games, which bring new opportunities for developers. Good quality is inseparable from careful polishing. Thank you for the feedback from developers in the community, GitHub, Cocos corporate services and other channels.
Support Xiaomi Quick Games
Cocos Creator officially supports the publishing to Xiaomi Quick Games. For detailed usage, please refer to Publish to Xiaomi Quick Games.
Support Instant Play Games
Cocos Creator officially supports publishing to Instant Play Games. For detailed usage, please refer to Publish to Instant Play Games.
Editor Fixes
Optimize the build speed of very large projects
Improve error handling when resources uuid conflicts
When the build release is removed, the Auto Atlas is empty warning, allowing the auto atlas to be empty
Added package name options for iOS and Mac platforms in the build panel
Engine Fixes
Optimize the node's zIndex refresh performance #4060
Added global timeScale options for Spine and DragonBones, set via API sp.timeScale and dragonBones.timeScale
Optimized Spine and DragonBones initialization speed in acceleration mode
Added getArmatureKey method to DragonBones's ArmatureDisplay for indexing as a dressup #4100
Added BlendFactor support for MotionStreak
The cc.macro.CLEANUP_IMAGE_CACHE flag is enabled by default on the native platform to reduce texture memory usage
Optimized Native platform Spine memory footprint
Optimized instant game open domain performance
Added fps attribute to the instant game open domain component SubContextView to control the open domain refresh rate, default 60
Disable the main loop of the open domain by disable instant game open domain component SubContextView, reducing performance overhead, see WXSubContextView Tips
Upgrade WeChat game resource loading speed
Fixed an error in the engine when Rect width exceeds maximum margin was reported when importing a fully transparent image
Bug Fixes
Editor
Fixed an issue where the build of OPPO, vivo, and Huawei games might encrypt the script to JSC and cause the build to fail.
Fixed an issue where the Android Studio SDK path would report an error under Windows
Fixed an issue with compiling errors when using the link template when building a Mac platform
Fixed an issue where a very large project might be reported on the Windows platform (when the number of resources > 100,000)
Fixes Auto Atlas may export more unused SpriteFrame or SpriteAtlas resources when building
Fix Auto Atlas Warning message may be incorrect when building
Fixed an issue where the particle system could not be previewed in the editor after enabling Custom mode
Fixed an issue where if the font name had parentheses when importing BMFont
Fixed object already destroyed warning when it appears repeatedly in Prefab edit mode
Fixed an issue where returning to the scene when entering Prefab edit mode from a scene with DragonBones or Particle
Fixed removing the TiledLayer node, then Undo, will report the material is empty
Fixed a problem with data corruption when exporting multiple resources in batches
Fixed an issue where child nodes could still be selected in the scene after locking the parent node in the hierarchy manager
Fixed an issue where resources could not be dragged to the hierarchy manager when there were no nodes in the scene
Fixed an issue where renaming file operations in Resource Manager might not work
Fix the problem that after the animation editor finishes playing the animation, manually skipping one frame and then playing it will cause an error.
Fixed an issue where the project could not be opened when the configuration file was corrupted
Fixed an issue where a new project could not be created when the custom engine did not exist
Engine
Fixed DragonBones Parent bone transparency has no problem with sub-bones transparency #4068#1704
Fix DragonBones The original animation monitor failed after the skinning operation
Fix Spine, DragonBones When pre-multiplication is enabled, modify the transparency of the node and the problem of exposure#4068#1704
Fixed an issue where manually created Assets would report an error when remotely loading DragonBones or Spine resources#4020#122
Fix Spine, DragonBones Cache update issue in SHARED_CACHE mode #4457
Fix Spine In Cached mode, there is no default value for the delay parameter of addAnimation
Fix Spine In Cached mode, setting skeletonData will warn you
Fix Spine In Cached mode, the animation may be abnormal when changing. #4488
Fixed an issue where Spine's json file would report an error without a skeleton field #4029
Fix Spine Problems with multiple skins that are not displayed in speed mode #4091
Fixed AudioSource The problem of getting the state state error during the second play #3974
Fixed texture not dynamically set mipmap problem #4201
Fix Label Problem with text positioning may be garbled when CHAR mode is enabled #4007
Fix Label Problem with dynamic mapping does not work after BITMAP mode is enabled #4392
Fix Label When the text rendered too much is off the screen Canvas size may be too large #4047
Fixed an issue where the opacity setting of the node where the Label is located exceeds 255. #4161
Fix Label Problems with BMFont may not be rendered when using shrink mode #4099
Fix LabelOutline A memory leak may be caused when a component is destroyed #4220
Fixed LabelOutline Exceptional transparency when cascading components #4495
Fixed ScrollView or Mask where node Scale is 0, flat nodes may not be able to respond to clicks #4456
Fixed an issue where the scrolling position was incorrect when the page of PageView was dynamically updated #4050
Fixed a memory leak issue that could be caused by too many particles in the particle system #4256#4262
Fix Particle System After playing, hide and display the problem of residual particles #4243
Fixed a problem where the Scale 0 node Instantiate three times in Prefab would cause the Scale value to become 1#4454
Fix native platform resources Download, XMLHttpRequest, WebSocket, SocketIO Possible crash after request #1721#1716
Fix native platform GC may cause crash problem #1744
Avoid native platform initialization process if evalString is called in native code to crash
Fix Native platform Label shows possible black border issues #130
Fix Native platform Spine A problem that can cause a crash when resource acquisition or parsing fails #1745
Fix Native platform Spine Destroy possible crashes when not fully loaded #1711
Fix Native platform DragonBones Set the displayIndex attribute of the slot to have no effect #4339
Fix iOS 12 Unable to load the correct ttf file issue #1700
Fix iOS Problems that may crash when AudioClip is released #1714
Fix Android The problem that the native platform can't load the sub-package correctly #1701
Fix AndroidEditBox The problem of inputting decimal points and other symbols is not supported under number inputType#1695
Since the release of Cocos Creator 2.1.0, we have received a lot of valuable suggestions from users. Based on previously announced plans, we will continue to speed up the iteration of the v2.1 series to implement user suggestions as quickly as possible. At the same time, in order to prevent these changes from affecting the stability of old projects, we only recommend upgrading projects with 3D requirements to v2.1. Other projects can continue to use v2.0, and wait until v2.2 is released before upgrading. This v2.1.1 upgrade mainly supports 3D scene editing, camera preview, lighting system, and also incorporates the latest 2.0.x changes.
Support 3D scene editing
The Scene Editor allows you to switch to 3D editing mode with one click, making it easy to edit 3D objects, cameras, and lights. See the 3D Scenes document 1 for details.
Add game preview panel
A separate preview panel has been added to visually preview the images seen by the camera during scene editing. Panel Open: Main Menu → Panel → Game Preview, the preview panel can be placed in a separate window or dragged into the main editor window.
Add 3D lighting and shadows
A Light component has been added to lay out lights in the scene, and a shadow effect can be set in conjunction with MeshRenderer. See the Light Source Component Reference documentation.
Upgraded EditBox component
Now, developers can set the Text Label, Placeholder Label and Background nodes separately, making them more flexible, simple, and more in line with the component development. See the EditBox Component Reference documentation.
Add text shadow rendering component
A new LabelShadow component has been added to add a shadow effect to the Label component, similar to the LabelOutline usage. See the Label Component Reference documentation.
Support for dynamically creating 3D Primitive models
Added cc.primitive module to dynamically create 3D models at runtime, including: box, cone, cylinder, plane, etc. See the Basic 3D Objects documentation.
Integrated Material System (Beta)
Added support for material systems, allowing users to create Material and Effect (Shader) resource types. It should be noted that the current material system is mainly provided to the internal use of the engine and is only for developer preview. We plan to upgrade the material system in v2.1.2, however it will not be back-ported to this version.
Editor Fixes
Added shortcut Ctrl/Cmd + Shift + F to align the currently selected node to the perspective of the scene editor.
When you click in the scene editor, you can hold down Ctrl/Cmd for multiple selections at the same time.
Improve fault tolerance processing for custom engines to avoid editor startup failure
Improve the search performance of the resource manager under very large projects
Add menu File -> Open project in new window to support simultaneous opening of multiple projects on Mac
Hide the component’s enabled checkbox when the component does not define the enabledassociated lifecycle function
Upgrade the TypeScript version to 3.3.3333
Engine Fixes
Make cc.Vec3 compatible with related APIs of cc.Vec2
Improved Label positioning accuracy in the editor and on different browsers (thanks to “Dacheng Xiaopeng” for advice)
Optimization 3D skeletal animation performance and volume
The cc.macro.CLEANUP_IMAGE_CACHE flag is enabled by default on the native platform to reduce texture memory usage
Native platform automatically verifies the maximum supported texture size of the current device
Add WeChat Mini gameXMLHttpRequest support for timeout event [#87]
Added cc.sys.HUAWEI_GAME enumeration to determine if it is currently Huawei’s fast game platform
Removed the creation entry for the CoffeeScript script. CoffeeScript scripts can still be created manually, and we plan to remove full support for CoffeeScript in v3.0.
Follow-up version plan
(The version plan is for reference only, the final version content and release order are subject to actual conditions)
2.0.x
Continuously optimize performance and improve stability
Support for more small game platforms
2.2.0
Optimized Auto Atlas
Enhanced compression texture support
Further optimize the platform compatibility of the EditBox
Support skeletal animation resource lazy loading
Optimize the small game platform build process
2.3.0
Greatly optimize native platform base rendering performance
Greatly optimized TiledMap support
2.3.x
Support for 3D physical systems and collision detection
Upgrade the material system added in 2.1.1 from the experimental version to the official version
Cocos Creatorv2.0.9 support for greatly optimizes the performance of DragonBones/Spine on small games and web platforms. WeChat mini games also brings improved resource loading performance and dynamic text refresh efficiency. At the same time, we have further improved the compatibility and stability of the engine and editor, so that everyone can get a better development experience. Good quality is inseparable from careful polishing. Thanks to the feedback from developers on the community, GitHub, Cocos corporate services and other channels.
Improving the performance of DragonBones and Spine on non-native platforms
Cocos Creatorv2.0.7 greatly optimized the performance of DragonBones and Spine on native platforms, with performance optimized to more than twice as fast as 1.9 and 1.10. This release, v2.0.9, for Web platforms and non-native platforms. SHARED_CACHE and PRIVATE_CACHE acceleration modes, have improved DragonBones performance by 15 times, and Spine’sperformance has improved by 3 - 6 times.
Performance test results after acceleration mode is enabled:
The score of the test is converted from the frame rate and the number of animations. The higher the value, the better the performance.
When playing more than three animations on the same screen, SHARED_CACHE acceleration mode can also greatly reduce memory overhead. The following is a memory comparison of one hundred animations on the same screen:
The lower the score of the test, the less memory is occupied. The more animations SHARED_CACHE saves more memory.
To enable Extreme Mode, simply set the Animation Cache Mode to SHARED_CACHE or PRIVATE_CACHE on the DragonBones or Spine components. For more detailed information on speed modes, refer to the Dragonbones reference documentation and Spine reference documentation.
Support for publishing as Android App Bundle
In Build panel, publishing to Android App bundles has been added. When checked, Android native games can be published as App Bundles. After submitting the App Bundle to Google Play, Google Play will dynamically download different versions of the APK based on the differences in the player’s phone parameters to reduce the game’s package size.
Editor Fixes
Disable setting the node width to negative in the Property inspector
Add a sort mode toggle button in the Explorer to choose to sort by name or type
Add the search empty button of the level manager, which will jump to the previously selected node
Add the function of finding the referenced resource by UUID in the drop-down search box of the hierarchy manager
Node selection status in the synchronization level manager and animation editor
Move the service panel that is docked next to the Property inspector to the build release window
Remove Blend Factor properties on render components other than Sprite and Particle
Improved support for particle system import and export plist
Display a progress bar in the system tray when building a project
When you import CCB and Cocos Studio projects repeatedly, the original folder will be overwritten and no more copies will be retained.
When building a WeChat game, the code obfuscation function of the WeChat Developer tool is turned off by default, using the confusing function that Creator comes with.
Engine Fixes
Improve the rendering of Label dynamic fonts, avoiding the problem of black edges on the edges of the text
Upgrade Spine runtime to 3.6
Introduced a new easing API: cc.tween, which provides a more concise syntax and greater flexibility, as described in API - tween
Add the Awake On Load property on the RigidBody component to set whether the rigid body wakes by default
Native platform adds jsb.copyTextToClipboard API for copying text to clipboard
Module clipping for native platforms no longer culls XMLHttpRequest module
Upgrade Android build tool configuration Gradle to 4.10.3, plugin to 3.2
Upgrade Android’s lowest Target/Compile SDK Version from 16 to 23, and the Min SDK Version is still 16
The http protocol is supported by default in Android 8 #1664
Improved VideoPlayer component support on X5 browser
Cancel the blocking of Dynamic Atlas in Chrome 69+ (there will be white afterimages so the dynamic gallery is blocked)
Bug Fixes
Editor
Fixed an issue where the animation editor could not be used on user scripts
Fixed an issue where auto atlas could not be packaged into sub-packages
Fix Command line When building a project, the project will generate problems directly into the build directory
Fix Command line Do not load custom plugin when building project
Fix Command line The issue where the excludeScenes parameter does not take effect when building the project
Fixed a problem where the mesh background in the scene editor would penetrate above some translucent images, causing some differences in color and runtime
Fixed automatic syncing of Prefab when saving scenes, in some cases, you will be prompted to save the reference.
Fixed a problem where the nativePath of the resource is incorrect when the custom build plugin gets the subpackage resource in BuiltResults during the “build-finished” phase
Fixed an issue where the Physics Collider’s gizmo showed an exception after changing the node hierarchy
Invalid error in project build may occur when fixing custom engine
Adjust code auto-compilation strategy to prevent plugins from failing to import when modifying project scripts
Engine
Fixed a problem with rendering errors when there were a lot of scene display objects
Fixed an issue where the color of the node is not valid after the Button component is set to COLOR mode
Fixed an issue where setting Button' s interactable to false would cause node scale to become 0 before onload
Fix Report when the Label component is destroyed when it is not activated #3769
Fix Label issues that may flash when used with faceIn action
Fixed an issue where applying Particle action would cause particles to be offset
Fix Particle component will repeatedly parse the textureData embedded in plist
Fixed a loss of parts in the scene when loading 1.x old projects Particle Problems with custom data
Fixed ScrollView parent node scale 0 ScrollView layout exception problem
Fix DragonBones If you include a sound file, the animation will report an error.
Fixed DragonBones problems that may not be rendered when the bone contains multiple textures
Fixed DragonBones cache cap not taking effect, causing the cache not to be automatically emptied
Fixed an issue where Spine’s premultipliedAlpha settings were lost when loading 1.x old projects
Fix Mask component does not update the hit test after enabling inverted
Fixed an issue where the adjustment of the node zIndex and the hit test area may not be refreshed #3895
Fixed an issue where different shaders use the same uniform name, but the data is incorrect when the types are different
Fixed an issue where fields in some scenes in the WeChat game subdomain were subject to MD5 interference
Fixed a potential crash on WebSocket GC on native platforms #1681
Fix native platform Spine Problems with flashback and rendering exceptions after switching parent nodes #1659
Fixed an issue that could crash during iOS** native platform cc.log#1687
Fixed Android platform XMLHTTPRequest Crash problem caused when statusText is not obtained #1629
A reset method has been added to the cc.WXSubContextView component to allow the user to properly reset the view size by calling this API when switching between subdomain views. PR
Fixed that on some Android WeChat 7.0.3 models, Retina will still be blurred.
Fixed frame rate instability caused by listening to Device Motion on Android WeChat 7.0.3
Fix the problem that the WeChat game sub-package will load when it does not contain any resources.
Fix an issue where BMFont is not available in WeChat open data domain
Fix RichText’s use of the font tag is invalid
Fix an issue where RichText can’t pass arguments when using the on tag
Fix the problem that the editor can’t build a project from the command line
Adapting scene scaling issues after downgrading from Creator 2.1 to 2.0
Cocos Creatorv2.0.6 is based on the v2.0.5 upgrade, providing fast access to Facebook Audience Network and Facebook Live Video on Android and iOS, while maintaining v2.0.5 stability. Facebook Audience Network is an advertising platform launched by Facebook that provides powerful advertising monetization capabilities. Facebook Live Video is an SDK from Facebook that allows players to play live games directly and share them on Facebook’s social network, effectively improving the game’s ability to spread. For specific access procedures for these two SDKs, please refer to the document Facebook Live and Advertising. In addition, this version also optimizes the build process of for Vivo and OPPO Mini Games. It is recommended to upgrade to this release if you are releasing Vivo and OPPO Mini Games.
Change List
Added Facebook Audience Network and Facebook Live Video integration options to the service panel
Fixed an issue that Facebook Instant Games could not upload
Fixed a problem with zip compression for zip packages from Facebook Instant Games
Optimized the build panel for the vivo game:
Removed npm path input box
The app icon is modified to any path, no longer limited to the path of the game project, and a button for selecting the image path function is added to the right of the app icon input box.
Removed the use of certificate.pem, private.pem certificates fixed in [game project]/build-templates/jsb-link, and modified them to choose their own path. At the same time, the certificate is added to the rightmost button of certificate.pem. (Note that using Windows systems requires installing the openssl software and configuring its environment variables beforehand)
Optimized OPPO mini-game build panel:
Removed the npm path input box and the quickgame input box, and Cocos Creator has a built-in quickgame.
The app icon is modified to any path, no longer limited to the path of the game project, and a button for selecting the image path function is added to the right of the app icon input box.
Removed the use of certificate.pem, private.pem certificates fixed in [game project]/build-templates/jsb-link, and modified them to choose their own path. At the same time, the certificate is added to the rightmost button of certificate.pem. (Note that using Windows systems requires installing the openssl software and configuring its environment variables beforehand)
The output path of the packaged rpk is adjusted to be the same as the path when the packet rpk is not set, in the [game project]/build/quickgame/build/ directory. And when you package the packet rpk, only one rpk file will be generated, and no other sub-package directories will be generated.
WeChat mini game is not enabled by default after ES6 to ES5
Limit the maximum number of concurrent downloads (cc.macro.DOWNLOAD_MAX_CONCURRENT) to less than 10 by default on WeChat games.
Fixed an error when WeChat game called cc.game.end( )
QQ light game build allows direct packaging of zip files for easy uploading of the server
Fixed a problem with Mask rendering on QQ Light Games
Fixed an issue where Android Instant platform crashed after compiling Android + AnySDK
Follow-up version notice
v2.0.7 will be released soon, focusing on optimizing native platform performance
We will soon be beta testing v2.0.7. In this version we optimized the rendering performance of the engine, especially the Spine and DragonBones of the native platform, and the performance has been greatly improved.
v2.1 iterations will be more aggressive
Compared with v2.0, the upgrade of v2.1 will mainly focus on the 3D field. We recommend upgrading new projects with 3D requirements to this version, and establishing contact with us in forums and other channels. Our responsible 3D partners will provide relevant support. . Since v2.1 is a very new version, we will speed up the iteration and try to meet the needs of developers. We will be releasing v2.1.1 in the near future to support 3D scene editing, camera preview and material systems, and to optimize the 3D development process.
Cocos Creatorv2.1, adds support for 3D features such as: 3D model rendering, 3D Camera, 3D skeletal animation, and 3D point selection. The Cocos Creator editor now natively supports parsing 3D model files in FBX format. It’s that simple, no additional workflow is required!
In the previous version, v2.0, Cocos Creator had used a Cocos3D based 3D renderer to officially introduce 3D support. The addition of 3D features can greatly enrich the expressiveness of 2D games, reduce the resource overhead of 2D games, and bring more imagination and ideas to expand games.
However, it should be emphasized that the target users of Cocos Creator is still 2D game development, and the 2D game is still the core service of Cocos Creator 2.x. We will continue to optimize the development experience and basic performance of 2D games, and gradually increase the 3D functions suitable for integration into 2D games. Therefore, Cocos Creator does not allow a pure 3D game, which is the goal of Cocos3D. Cocos Creator’s development path is closer to 2.5D.
This is not the first time Cocos has upgraded the engine from 2D to 3D. A few years ago, Cocos2d-xexpanded to the 3D space and accumulated a lot of experience. It also produced a very good game concept like Sword and Home. However, at that time, 3D functions were piled up on a very heavy 2D renderer, and there was no editor support. It was not widely recognized by the market. This time, Cocos Creator is based on Cocos3D’s 3D renderer, which has a lot of 3D stability and guarantees a seamless editor experience.
Follow-up Version Notice
v2.0 will continue to be maintained, native platform performance will be optimized as soon as possible
v2.0 and v2.1 will grow together over a period of time.v2.0 will continue to be maintained, adding more performance optimizations and bug fixes. We will soon be beta testing v2.0.7. In v2.0.7 the rendering performance of the engine has been optimized, especially Spine and DragonBones. Also, the performance has been greatly improved.
v2.1 iterations will be more aggressive
Compared with v2.0, the upgrade cycle of v2.1 will mainly focus on 3D features. We recommend upgrading new projects with 3D requirements to this version, and establishing contact with us on our forums. This allows us and our 3D partners to provide support.Since v2.1 is a very new version, we will speed up the iteration and try to meet the needs of developers. In particular, currently v2.1.0 version still does not support 3D scene editing, only the 3D parameters can be set in the property inspector. We will be releasing v2.1.1 in the near future to support 3D scene editing, material systems and optimizing the 3D development process.
Complete list of changes (compared to v2.0.5)
3D Node
In v2.1, newly created Node objects are still 2D by default. When needed, you only need to click the 2.5D button at the top right of the Node to switch to 3D mode. After switching, you can edit the z axis. See 3D Node .
3D Camera
Like Node, Camera is also divided into two modes. When you add a Camera component to a normal 2D node, it becomes a 2D Camera. When you switch Node to 3D mode, Camera will also enter 3D mode, and then you can edit Camera's FOV and other parameters in 3D mode.
3D model import
Currently, Cocos Creator supports importing 3D model formats for a very wide range of .fbx files. .fbxis the de-facto standard in 3D modeling software. The process of importing is very simple, just drag the .fbx model into the Explorer and wait a few moments for the import to complete. After the import is completed, you can see that the imported model is a folder that can be expanded in Explorer. When importing the model, the editor will automatically parse the content of the model and generate a Prefab, a Grid, a Bone Animation and other resources. See Import Models
Mesh Renderer Component
Mesh Renderer is used to draw grid resources. See Mesh Renderer .
Bone Animation Component
The Skeletal Animation component inherits from the Animation component. The Skeletal Animationcomponent is not much different from the Animation component. The exception is the Skeletal Animation component uses a clip that can only be a Skeletal Animation clip. The Skeletal Animationcomponent is automatically added to the model’s Prefab when it is imported. See Bone Animation Component for details.
For more 3D instructions, please consult the documentation 3D System .
Optimize automatic gallery build speed
v2.1 greatly optimizes the speed of auto-atlas construction. If the atlas has not changed, the results of the last build are used.
Further improve rendering performance
Between v2.0 compared to v1.x, there are some cases where the engine does not render batches, resulting in an increase in draw calls. v2.1 re-optimized these conditions. If the previous color or opacity cannot be batch processed, sliced and non-sliced share the same texture and cannot be batched. The problem that the opacity 0 node still occupies the draw call is solved.
Add simulator debugging function
In the Project Settings -> Preview Run Panel, the Open simulator debugger panel option and the Wait for debugger connect option have been added. The purpose of the Open simulator debugger panel option is to automatically open the debug window when the simulator previews the project. The Wait for debugger connect option is used to suspend the boot process until the debugger connection is complete for debugging the load process.
Texture Auto Compression
The compression required by the texture can be set directly in the editor, and Cocos Creator will automatically compress the texture when the project is published. Exporting multiple image formats simultaneously on the web is supported. The engine will automatically download the appropriate format according to the different browsers. See Compressed Textures for details.
Enhancements
Editor
Dashboard is closed when the project is opened, and automatically opened when the project is closed.
Dashboard will automatically record the last created project path.
Optimize the preview of the Button under the editor.
Optimize the way Button Click Event indexes components, avoiding the loss of indexes after scripts are renamed.
QQ light game construction allows direct packaging of zip files for uploading servers.
The new plug-in mall automatically prompts the user to install after the plug-in download is completed.
When building a WeChat mini-game main domain project, the subdomain will not be emptied again.
Modify the API Level selected by default when building the Android platform to the current highest level (Target API Level).
The node path bar in the scene editor is removed, and the node path can be obtained through the node right-click menu of the hierarchy manager.
The animation editor defaults to Constant curves for values of type cc.Enum and cc.Integer, without interpolation.
Animation editor key frame addition and deletion experience optimization.
The optimization engine automatically compiles the experience.
Added a series of other experience optimizations.
Engine
[UI] Added the affectedByScale property to the Layout component. If the developer wants the scaling of the Layout subnode to affect the layout, you can turn it on manually.
[UI] supports fnt files in XML format.
[UI] The Content Size of the node will be refreshed immediately when the Label node is onEnable.
[UI] When the target of Button is not defined, the current node will be used by default.
[UI] ToggleContainer adds a checkEvents event property similar to Toggle, which fires only when Toggle’s isChecked state becomes true.
[Action] Added support for four actions of cc.Rotate3DTo, cc.rotate3DTo, cc.Rotate3DBy, cc.rotate3DBy.
[Native] Rejoined WebView and VideoPlayer support removed in v2.0.0 on iOS and Android platforms.
[Native] The Mac native platform switches to the V8 engine. If you need to use JSC, you need to manually modify the macro. For details, see #1515 .
[Native] Add the missing key and length properties of the native platform LocalStorage, see #1371.
[Native] Adopts Pinyin input behavior unified with Android on iOS native platform, does not retain input of unfinished pinyin.
[Android] Upgrade Android compilation to NDK r16+ Clang, and compile Android pre-compiled library with Clang.
[Android] Upgrade the Android build tool to configure Gradle to 4.4, plugin to 3.1.4. (Gradle 4.6 has a known issue that will cause resource packaging to fail).
[Android] Optimize Android input box experience.
[Android] Squeeze Android empty package body, the minimum package body is reduced from 7.0MB to 6.3MB.
[Web] Increase transparency support for WebView on the web platform.
[Web] Optimized display position of WebView components.
[Web] Optimizing the performance of VideoPlayer on the X5 browser.
[Wechat] Supports getting the res and referrerInfo parameters passed to the platform when responding to the cc.game.EVENT_SHOW event on WeChat games.
[VideoPlayer] Optimized the performance of VideoPlayer full-screen playback.
Bug Fixes
Editor
Fix an issue where the animation editor node list may not be updated.
Fix the problem of selecting the RichText subnode in the scene editor.
Fixed an issue where the error code always returned 0 when building a project using the command line, whether or not an error occurred.
Fixing the background of the mesh in the scene editor will penetrate above some translucent images, causing some differences in color and runtime.
The editor will report an error when repairing an external drag resource to an invalid location in the resource manager.
Fixed remote server ip getting error when publishing Android Instant platform.
Engine
[Core] Problem with activeInHierarchy being true after fixing node destroy.
[Core] Fix filter in RenderTexture, premultiply alpha setting is invalid.
[Core] Fixed an issue where the scene introduced by the plugin could not be loaded.
[Web] Fixed a problem with white afterimages on Chrome 69, 70. (Since 2.0)#3357.
[UI] Fix Button may have some state invalidation when multiple states are superimposed on each other.
[UI] Fix LabelOutline setting invalid color problem.
[UI] Fixed an issue where setting Toggle.isChecked to be invalid in the start method.
[UI] Fix the problem that the LabelOutline component is not synchronized when the state is modified.
[Animation] Fixed an issue where the parameters of AnimationState might be parsed as a string type.
[QQPlay] Fix the problem that QQ light game does not respond to the background background switching event.
[QQPlay] Fix the problem that the font will become very small if you use italics on QQ light games.
[QQPlay] Fix the problem that the QQ light game can’t replay when the lock screen re-enters or the front and back switches.
[QQPlay] Fixes the problem of the ended event after the audio setCurrentTime is fixed #3373.
[Native] Fix native platform connection socket.io server may report Bad Request error.
[Native] Fix iOS and Android can’t detect gravity sensor.
[Native] Fix iOS call cc.game.restart Restart the game and then enter text will crash.
[Native] Fixing the problem that the opacity attribute of Label on Windows native platform does not work.
[Native] Fixed an issue where Android could not listen to onKeyUp.
[Native] Fix the problem that the Android phone will fail to load if the built-in SSL certificate expires.
[Native] Fixed an issue where server redirection was not supported when downloading images from Android native platform #PR.
[Physics] Fixed an issue where MouseJoint failed to respond to touch cancel.
[Spine] Fixes the problem that textures may be lost when Spine is reloaded under Mask.
MIGRATION GUIDE
v2.1 upgrade considerations
Node’s rotation related API has been marked as deprecated, and the runtime will prompt to upgrade to angle. See 3D Node - Node API Upgrade .
The NDK version of Android needs to be upgraded to r16 or the compilation will fail.
Since v1.10, Cocos Creator has refactored the underlying resource types. Most projects are not affected, but some projects may receive some warnings. For details, please refer to v1.10 Resource Upgrade Guide .
3D Example
After downloading v2.10, create a new example project and open the case under assets/cases/3d to experience the 3D features.
Compared with v2.0.2 released recently, v2.0.5 provides support for publishing to OPPO Mini Gameand Vivo Mini Game platforms, as well as a bug fix release. It is strongly recommended that all 2.0 users updateto v2.0.5. Good quality is inseparable from careful polishing. Thank you for the feedback from developers through the community, GitHub, Cocos technical services and other channels.
Editor
[Auto Atlas] Fix Auto Atlas default BestAreaFit algorithm can’t calculate correct atlas size problem
[Auto Atlas] Fixing the auto-atlas catalogue when nesting, the album in the parent directory will repeatedly pack the images in the sub-directory into the problem
[Auto Atlas] fixes black border problems after auto-satellite packaging (old auto-atlas needs to be deleted and re-created to take effect)
[Auto Atlas] Fixes the problem that the Auto Atlas Force Squared option does not work
[Wechat] Fixed an issue where subdomain directory names could not be modified when building WeChat games
[QQPlay] Fix v2.0.2 Unable to export plugin script on QQ light game
[Google Play Instant] Allows Default URL to be empty when building Android Instant
Engine
[Core] The second argument to cc.loader.loadResArray supports passing in a type array (thanks @caochao) #3312
[Native] Add cc.sys.getSafeAreaRect( ) API to get the screen security area of the phone (in design resolution)
[Core] Fix v2.0 screen rendering effect is slightly blurred
[Core] Fixed an issue where the component might still be activated if the node was not added to the scene when it was destroy( )
[Core] Fixed an issue where SpriteFrame didn’t work correctly after calling setRect( )
[Core] Fix an error when calling cc.Texture2D initWithData() in v2.0
[Core] Fix issues that render components in v2.0 may still render when the node is not activated
[UI] Fixed an issue where the state was not updated when the Toggle component set the isChecked property
[UI] Fix an error when the ScrollView.content object is modified
[UI] Fix some problems in RichText in v2.0 may not be displayed
[UI] Fixed issue where the start event of PageView did not fire
[UI] Fixing invalid segments in Mask
[UI] Fixed an issue where the Stencil state was incorrect when Mask was nested
[UI] Fixed an issue where WebView did not trigger the load event when reading the default page
[UI] Fixed an issue where EditBox may report an error when switching between horizontal and vertical screens frequently
[UI] Fix the problem that the click event registered by once will still penetrate to other nodes in the level after the response
[Audio] Fix Audio’s operation on effect may affect music issues
[Spine] Fix Spine transparency and pre-multiplication in ScrollView in v2.0
[Animation] Fix an issue with animation quickFindIndex
[Animation] Fixes invalid issue with animation registration lastframe event
[Particle] fixes particle system call resetSystem( ) will fail
[Wechat] Fixed an issue where resources could not be loaded when the WeChat game cache was full.
[Wechat] Fix WeChat game to switch the foreground from the background, it will play the problem of unreleased audio
[Facebook Instant Games] Fix an issue where Retina is not enabled on Facebook Instant Games
[iOS] Fix v2.0 error on iOS 9 due to lack of support for ES6
[QQPlay] Fix the problem that the font display is too small when the font size is float type on QQ light game
[Google Play Instant] fixes a black screen issue caused by probabilistic jsb-adapter reloading when editing the split first package interface
The Playtime Conference hosted by Google Play was held in Germany on October 18th, 2018. The BIG NEWS: In partnership with Google, Cocos Creator v2.0.4 was released, supporting Google Play Instant games.
Google Play Instant and Cocos
In March of this year, Google showed Google Play Instant, a game store-based distribution solution called Search Instant. For the player, they are allowed to try the game before deciding to download the full version of the game, which greatly saves their device storage space. For developers, it means they can offer a demo experience to players who wouldn’t have installed these games, which in turn will increase the game download conversion rate.
Google Play Instant offers a higher APK size limit (10MB), support for progressive downloads for both executable code and game assets, allowing developers to use the NDK and game engine with existing toolchains. In order to make instant apps and games easier to build, as a Google Play Instanttechnology access partner, in May of this year, the Cocos engine began to do integration testing with Google and beta users of the Cocos community.
Developers only need to select Google Play Instant as the publishing platform to automate all technical docking of the Google Play Instant platform. The output is compatible with Google Play Instant. Technically-standard games, quickly launched on Google Play Instant for testing, greatly reducing development costs.
Release Notes
v2.0.4 only adds Google Play Instant Support, no other changes from v2.0.2.
Compared to v1.9, the v1.10 version adds a lot of features, refactoring the resources of the engine, and greatly optimizing the size of the settings.js file. In addition, v1.10 also supports game code subcontracting on WeChat games, web and native platforms. This will break through the 4MB limit of WeChat’s first package and increase the game loading speed. See Code Subcontract Loading . At the same time, v1.10 has rewritten a lot of editor code, improving the editor’s experience and performance. If your project is planned to be upgraded to v2.0 later, please upgrade to v1.10 in advance to ensure that the entire upgrade process is as smooth as possible.
Resource upgrade
Since v1.10, Cocos Creator has refactored the underlying resource types. Most projects are not affected, but some projects may receive some warnings. For details, please refer to v1.10 Resource Upgrade Guide.
Editor
Greatly optimize the size of the settings.js file after the release
Added script subcontracting settings in the property inspector for the folder
Allow each project to set a custom engine separately
Add a node lock function in the hierarchy manager. When the mouse is moved to the node, there will be a lock button on the left side. After the node is locked, the node cannot be selected in the scene editor.
The align mode attribute is added to the Widget component. When set to ON_WINDOWS_RESIZE, it will be automatically refreshed when the window size changes.
Official support for text and JSONLoading of resource types
The native platform adds cc.sys.getBatteryLevel interface for getting device power and network status
When the native platform is hot updated, it will actively delete the old version of the resource file.
VideoPlayer adds volume adjustment and mute function
TiledMap supports rendering and cropping of ortho maps in any direction on the web platform
Layout component will only typeset active nodes
Retina rendering enabled by default on Android UC browser
Enable Webgl on UC browser version 11 or higher
Increased recognition of UCBS browsers
Gravity sensing is adjusted to only get when the developer has a registration event
Bug Fixes
[Editor] Fixes the settings when setting SpriteFrame in the collection
[Editor] Fix simulator configuration save related issues
[Editor] Fixed an issue where the error message output from the emulator to the console was displayed in white.
[Editor] Fix the error when the resource export tool encountered the same parent folder name
[Editor] Fixed an issue where copying the automatically synchronized Prefab subnode under the editor may be wrong
[Editor] fixes the problem that the fragment texture in the automatic map set will be reported incorrectly if it is directly referenced by other resources.
[Editor] Fixed plugin script not correctly parsing CC_WECHATGAME and CC_QQPLAY keywords
[Engine] Fixed an issue where the animation may not stop playing when the scene is switched or the node is destroyed.
[Engine] [Wechat] Fix some versions of WeChat games to get the problem of each frame interval
[Engine] [Wechat] Fix RenderTexture related issues on Android WeChat games
[Engine] [QQPlay] Fix QQ Play and play resources will be downloaded repeatedly
[Engine] Fixed an issue where the slider of the Slider component might not be right when dragged
[Engine] Fixed an issue where the audio load event could be triggered repeatedly
[Engine] Fixed a problem where the user changed the level while dectivating the node without any error.
[Engine] Fix issues that WebView can’t hide in Safari browser on some platforms (iOS 9/10 or Mac)
[Engine] Fixed native platform BMFont rendering pitch problem
[Engine] Fixed an issue where the button’s touch area would be offset when Canvas was unchecked Fit Width and Fit Height
Upgrade Android SDK
Starting with v1.10, the API Level in the Android build panel specifies the minimum Android version supported by the compiled apk. targetSdkVersion, compileSdkVersion, buildToolsVersion have all been upgraded to 26. If the developer has other needs, you can manually modify proj.android-studio/app/build.grade and proj.android-studio/gradle.properties.
REMOVED
Removed support for Eclipse and Ant build Android platform
Removed support from Chipmunk
Removed cc.loader.loadRes to directly load the support of the child SpriteFrame in the collection. Please load the atlas first and then call atlas.getSpriteFrame(name)
DEPRECATION
Since v1.10.0, Texture2D.releaseTexture is no longer recommended, please use Texture2D.destroy instead.
As of v1.8.2, cc.eventManager is no longer recommended. Use cc.EventTarget or cc.systemEvent instead. The original API will be removed in 2.0.
As of v1.8.2, cc.inputManager is no longer recommended. Replace it with the same interface of cc.systemEvent. The original API will be removed in 2.0.
Since v1.8.2, dragonBones.CCFactory.getFactory is no longer recommended. Use dragonBones.CCFactory.getInstance instead. The original API will be removed in 2.0.
KNOWN ISSUES
When copying and pasting a resource in Explorer, the resource property will not be copied. (Since 1.9.0)
Android native platform does not support playing remote video.
Cocos Creator v2.0.0 is a brand new version that has undergone a lot of low-level refactoring. Some developers have encountered some annoying problems in the process of upgrading the project. We collect and do our best to solve these problems in v2.0.1. In addition to greatly improving the stability and the friendliness of project upgrades, this version also brings new open data domain solutions for WeChat games to developers, greatly improving the performance and flexibility of open data domains.
Main Features
Update the best use of open data domain solutions in history
Provides WeChat platform cleanup cache API
Support WeChat games and play a platform to set the frame rate via cc.game.setFrameRate
Add a View menu for the simulator to set the resolution
Modular RenderTexture and DynamicAtlas
Editor Fixes
Fixed issue with particle resource import in editor
Fixed an issue where Label was not affected by node anchor changes in the editor
Fix BMFont font error in the editor editor
Fixed an issue where the color of some Particles could not be displayed and set in the inspector
Fixed an issue where the simulator resizing interface would not fit
Fixed curve editor state residual problem in animation editor
Fixed an issue where the particle system’s svg flag was missing in the editor
Fixed Editbox editing fontColor does not work
Fixed an issue where the animation editor switched WrapMode while playing the animation, causing the node in the scene editor to not be dragged
Fix the problem that the node _localZOrder keeps changing when the data is saved
Fixed an issue where the keyboard direction key could not be fine-tuned after the editor selected the node
Fixed an issue where the scene editor would not automatically locate in the hierarchy manager after selecting a node
Fixed an issue where the node tree was automatically expanded after the node was deleted
Fixed an issue where clicking the node level manager in the inspector panel does not automatically locate
Optimize the Console automatic scrolling experience
Fixed an issue where all child nodes were expanded when the parent node active state was switched
Fixed flashing issues when clicking on Hierarchy nodes
Fix Auto Atlas preview invalidation issue
Engine Fixes
Fix rendering issues with Spine animations
Fixed animation jitter caused by shader precision
Fixed an issue where setting the property in the inactive state does not take effect on the Sprite
Fixed rendering of Tiled type Sprite in the case of texture rotation
Fixed an issue where the background in the open data domain could not be transparent
Fixed rendering errors when Graphics has too many vertices
Fixed an issue where Camera does not respond to events after zooming
Fixed clipping of Tilemap after Camera zooming
Fixed a status error caused by multiplexing of RichText child nodes
Fix IE11 support
Fixed qqplay does not support Particlemap issue in base64 format
Fixed an issue where the Spine debug slot is not available in the Release version
Fixed issues with background switching events in front of each platform
Fixed rendering error caused by blend function when Label was switched to BMFont type
Fixed a black screen on the qqplay platform under Android P
Fixed an issue with the Windows platform XMLHttpRequest GET result of timeout
Fixed an issue where AudioClip does not support lazy loading
Supplement the missing deprecation API to fix missing API documentation issues
Fixed an issue where Stencil would be overwritten by the last Mask when multiple Masks coexist
Fixed black border issue with Mask component in open data domain
Fixed Mask does not support lazy loading when using image stencil
Fixed an issue where Spine could not display debug slots in non-debug mode
Fixed an issue where the audio could not be played when the Native platform checked MD5
Enhance fault tolerance of Particle resources and support resource formats exported by effecthub
Fix resume can directly play unplayed audio
Fixed a missing GUI issue caused by including the Mask module and culling the Graphics module
Fixed Native platform button can still receive touch events when active is false
Fixed web platform VideoPlayer has no hidden issues when switching visibility
Fixed an issue where windows & mac emulator window size does not automatically adapt when changing
Fixed parsing problem with Tilemap parser
Fix Camera does not support mask when using RenderTexture screenshots
Fixed an error caused by multiple Graphics switching between each other
Fixed an issue where the final alpha was invalid when the particles in the particle system finally disappeared (opaque)
Optimize the performance of small text rendering on the Native platform
2.0.0 is a brand new version that has undergone a lot of low-level refactoring. Some developers have encountered some annoying problems in the process of upgrading the project. We collect and do our best to solve these problems. Now we will bring you the 2.0.1 version. . In addition to greatly improving the stability and the friendliness of project upgrades, this version also brings developers a new Open Data Domain solution for WeChat games, which greatly improves the performance and flexibility of open data domains.
FEATURES
Update open data domain solution
Provide WeChat platform to clean up the cache API
Support WeChat games and play a platform to set the frame rate through cc.game.setFrameRate
Add a View menu for the simulator to set the resolution
Modular RenderTexture and DynamicAtlas
Editor Fixes
Fix problem with particle resource import in editor
Fix the problem that Label is not affected by node anchor changes in the editor
Fix BMFont font error in the editor editor
Fixed an issue where the color of some Particles could not be displayed and set in the inspector
Fix the problem that the simulator change size interface will not be adapted
Fix the curve editor state residual problem of the animation editor
Fix the problem that the particle system's svg flag is missing in the editor
Fix Editbox Edit fontColor does not work
Fixed an issue where the animation editor switched WrapMode while playing an animation, causing the node in the scene editor to be unable to drag
Fix the problem that the node _localZOrder keeps changing when the data is saved
Fix the problem that the keyboard direction key cannot be fine-tuned after the editor selects the node
Fix the problem that the scene editor will not automatically locate in the hierarchy manager after selecting the node
Fix the problem that the node tree is automatically expanded after the node is deleted
Fix an issue where clicking the node level manager in the inspector panel does not automatically locate
Optimize the Console automatic scrolling experience
Fixed an issue where all child nodes were expanded when the parent node active state was switched
Fix flashing issues when clicking on Hierarchy nodes
Fix Auto Atlas preview invalidation issue
Engine Fixes
Fix rendering issues with Spine animations
Fix animation jitter caused by shader precision
Fix the problem that setting the property in the inactive state does not take effect on the Sprite
Fix Tiled type Sprite rendering error in texture rotation
Fix the problem that the background in the open data domain cannot be transparent
Fix rendering errors when Graphics has too many vertices
Fix an issue where the camera does not respond to events after zooming
Fix clipping of Tilemap after Camera scaling
Fixed a state error caused by multiplexing of RichText subnodes
Fix IE11 support
Fix qqplay does not support particle map problem in base64 format
Fix an issue where the Spine debug slot is not available in the Release version
Fix problems with background switching events in front of each platform
Fix rendering error caused by blend function when Label is switched to BMFont type
Fix black screen of qqplay platform under Android P system
Fix the problem with the Windows platform XMLHttpRequest GET result of timeout
Fix AudioClip does not support lazy loading issues
Add missing deprecation API to fix discovered API documentation issues
Fixed an issue where Stencil would be overwritten by the last Mask when multiple Masks coexist
Fix black border problem with Mask component in open data domain
Fix Mask does not support lazy loading when using image stencil
Fix Spine can't display debug slot in non-debug mode
Fix the problem that the audio cannot be played when the Native platform is checked MD5
Enhance fault tolerance of Particle resources and support resource formats exported by effecthub
Fix resume can directly play unplayed audio
Fix missing graphics caused by including Mask module and culling Graphics module
Fix Native platform button can still receive touch events when active is false
Fix the problem when the video platform VideoPlayer switches visibility without hidden video
Fix an issue where the windows & mac emulator window size does not automatically adapt when it is changed
Fix parsing problem with Tilemap parser
Fix Camera does not support mask when using RenderTexture screenshots
Fix an error caused by multiple Graphics switching between each other
Fixed an issue where the final alpha was invalid when the particles in the particle system finally disappeared (opaque)
Optimize the performance of small text rendering on the Native platform
v1.10.1 is a bug fix for the recently released v1.10.0. It is recommended that all v1.10 users update to this version. This version is not an alternative to v2.0, v2.0 is still the current version, and new projects are still recommended to use v2.0. As the last major version before v2.0, we will try our best to maintain stability until we can support users who are temporarily unable to upgrade to v2.0.
Good quality is important to us. Thank you very much for the feedback from developers through the forum, GitHub, Cocos technical services and other channels. Let us look forward to the upcoming 2.0.1!
Editor
Fix WeChat sub-package related issues
Fix project.js may be empty after the project is built
Fix QQ play a build report bkgame related error
When the repair project contains a large number of broken images, saving the preview when refreshing the preview or previewing will cause the editor to jam.
WeChat developer tool error when fixing the build panel without checking “Source Maps”
Fix an issue where vConsole does not display after enabling MD5Cache
Fixed an issue where the .app program could not be selected within the mac platform preferences
Added button for new clip on animation editor
Level manager details are perfect
Engine
Fix audioEngine’s isLoop always returns false
Fixed an issue where the Text component was offset when the Label component was using TTF fonts
Improve the text display of the EditBox under QQ Play
After a large-scale underlying refactoring and a two-month stability iteration, Cocos Creator v2.0 is finally available. The core goals of the Cocos Creator v2.0 design were twofold:
Significantly improve the engine performance
Provide more advanced rendering capabilities and richer rendering customization’s
In order to accomplish this goal, we completely rewrote the underlying renderer, which structurally guarantees performance improvements and upgraded rendering capabilities. At the same time, in order to ensure that user projects can be upgraded more smoothly, we have almost no changes to the API of the component layer. Of course, these changes are not completely transparent to the user, such as the engine loading process, the event system, the streamlining and reorganization of the engine’s overall API, which will have an impact on the user-level API.
Editor
Implemented premultiply alpha, filter mode, wrap mode configuration of Texture
Abstract the mixed mode configuration into the RenderComponent component base class, all render components can be configured
Camera component upgrade, as a direct rendering entry, you can configure various base rendering parameters
With Quick Compile integration, the custom engine only needs to use the menu’s developer options -> compiler engine to compile quickly in a matter of seconds
Open the WeChat game open data domain as a publishing platform with a separate publishing panel
Engine
Add a new renderer based on the 3D engine
Render component is fully upgraded
Remove the render tree completely, assemble the render data directly and submit the render by the render component
Streamlined cc namespace API
Streamline Director API
Camera component upgrade
Start process upgrades, user scripts and plugin scripts can more easily interfere with engine initialization
Platform-specific startup code is separated and easier to customize
Event system optimization, distinguishing between system events dispatched by the capture bubbling mechanism on the node tree and normal events directly dispatched
Fit Width & Fit Height is also compatible with the WeChat game platform.
The RenderTexture resource type has been officially added to save the rendered content captured in the camera.
Simplify TiledMap functionality to pave the way for subsequent upgrades
Physical engine upgrade, performance optimization
Deletions and deprecations
A large number of private and non-core APIs for v1.x have been removed or discarded. For details, please refer to the upgrade guide and deprecated
Compared to v1.9, v1.10 adds a lot of features, refactoring the resources of the engine, and greatly optimizing the size of the settings.js file. In addition, 1.10 also supports game code subpackaging on WeChat games and Web and native platforms. This will break through the 4MB limit of WeChat's first package and increase the game loading speed. See [Code Subcontract Loading] for details. At the same time, v1.10 has rewritten many editor code to improve the editor's experience and performance. If your project is planned to be upgraded to v2.0 later, please upgrade to v1.10 in advance to ensure the smoothest upgrade process.
Resource Upgrade
Starting with v1.10, Cocos Creator refactored the underlying resource types. Most projects are unaffected, but some projects may receive some warnings. See the [v1.10 Resource Upgrade Guide] for details.
Editor
Greatly optimize the size of the published js file
Script subpackage settings have been added to the property inspector for the folder
Allow each project to set a custom engine separately
Add the node lock function in the hierarchy manager. When the mouse is moved to the node, there will be a lock button on the left side. After the node is locked, the node cannot be selected in the scene editor
In the Property inspector of the Prefab resource file, the Optimize Policy option has been added to optimize Prefab creation time. See [Prefabricated Resources: Setting Optimization Strategies] for details
Optimize the main menu under Windows
Add an auto-refresh feature to the list of scenes in the build panel.
When publishing to the native platform, MD5 is also added to the file naming to facilitate hot updates
Script compilation will automatically skip all .d.ts files to avoid TypeScript error reporting
The Console panel adds the Clear on Play option to automatically clear the log before the game previews
Adjust the text font and color of the Console panel
A search option button has been added to the search bar of the Hierarchy Manager and Explorer
Added plugin management features in the plugin store
Allows you to change the custom control icon in the control library
The resource manager adds recognition of aac and pcm extension audio files
Supports direct search of the compressed uuid format when the resource manager searches for uuid
Allow the right mouse button to drag and drop the timeline of the Timeline editor
An exit menu has been added to the Dashboard's system tray icon
Engine
Support game script subcontract loading, see [Code Subcontract Loading] for details
The align mode property is added to the Widget component. When set to ON_WINDOWS_RESIZE, it will be automatically refreshed when the window size changes
The loading of the [text] and [JSON] resource types is officially supported
The native platform adds the [cc.sys.getBatteryLevel] and [cc.sys.getNetworkType] interfaces to get device power and network status
When the native platform is hot updated, the old version of the resource file will be deleted
VideoPlayer adds volume adjustment and mute functions
TiledMap supports rendering and cropping of ortho maps in any direction on the web platform
The Layout component will only typeset active nodes
Retina rendering is enabled by default on the Android UC browser.
Enable Webgl on UC Browser 11 or later
Increase the recognition of the UCBS browser
Gravity sensing is adjusted to only be available when the developer has a registration event
Bug Fixes
[Editor] Fixes the jam when setting the SpriteFrame in the set
[Editor] Fixes the simulator configuration to save related issues
[Editor] Fixed an issue where the error message output from the emulator to the Console was displayed in white
[Engine] Fixed an error when the resource export tool encountered the same parent folder name
[Engine] Fixed an issue where copying the automatically synchronized Prefab subnode under the editor might be wrong
[Engine] Fixed a problem where the fragment texture in the automatic map set was incorrectly referenced by other resources
[Engine] Fixed a bug where the plugin script did not correctly parse the CC_WECHATGAME and CC_QQPLAY keywords
[Engine] When fixing scene switching or node destruction, the animation may not stop playing
[Engine] [Wechat] Fixes some versions of WeChat games to get the problem of each frame interval
[Engine] [Wechat] Fixes RenderTexture related issues on Android WeChat games
[Engine] [QQPlay] Fix QQ The problem of repeated downloads when playing a resource
[Engine] Fixed an issue where the slider of the Slider component might not be right when dragged
[Engine] Fixed an issue where the audio load event could be triggered repeatedly
[Engine] Fixed a problem where the user changed the level while dectivating the node without any error
[Engine] Fixed an issue where WebView could not be hidden in the Safari browser on some platforms (iOS 9/10 or Mac)
[Engine] Fixed BMFont rendering pitch problem for native platforms.
[Engine] Fixed an issue where the button's touch area would be offset when Canvas was unchecked for Fit Width and Fit Height
Upgrade the Android SDK
Starting with v1.10, the API Level in the Android build panel specifies the minimum Android version supported by the compiled apk. It is recommended to select 14. targetSdkVersion, compileSdkVersion, buildToolsVersion have all been upgraded to 26. If the developer has other needs, you can manually modify proj.android-studio/app/build.grade and proj.android-studio/gradle.properties
REMOVED
Removed Eclipse and Ant to build support for the Android platform
Removed support from Chipmunk
Removed loader.loadRes to directly load the support of the child SpriteFrame in the collection, please load the gallery first and then call atlas.getSpriteFrame(name)
DEPRECATION
As of 10.0, Texture2D.releaseTexture is no longer recommended, please use Texture2D.destroy instead
As of 8.2, cc.eventManager is no longer recommended, please use cc.EventTarget or cc.systemEvent instead, the original API will be removed in 2.0
As of 8.2, cc.inputManager is no longer recommended, please replace it with the same interface of cc.systemEvent, the original API will be removed in 2.0
As of 8.2, dragonBones.CCFactory.getFactory is no longer recommended, please use dragonBones.CCFactory.getInstance instead, the original API will be removed in 2.0
KNOWN ISSUES
When you copy and paste a resource in the Explorer, the resource property will not be copied. (Since 1.9.0)
The Android native platform does not support playing remote video
Cocos Creator v1.9.3 is a minor upgrade to the recently released v1.9.2. It mainly improves the support for WeChat games and QQ play. It is recommended that all 1.9 users update the engine version to get a better experience as this release also improves quality and careful polishing. Thank you very much for the feedback from developers on the forums, GitHub, Cocos technical services and other channels.
Animation Editor
Fix where the data may be incomplete when the animation editor saves the animation.
Fix where directly editing the texture animation will report an error
Fixed an issue where the animation editor could not add width and height properties under size
WeChat Game
Fixed an issue where only a single audio can be played on WeChat games and the number of audio plays is limited.
Fix that WeChat mini game audio can’t stop
Fix gravity sensing direction and wrong value in Android WeChat game
Fix not being able to submit a TypedArray format texture in WeChat games
Fix that the frame rate is abnormal on the old WeChat
Improve WeChat mini game video playback support
Downward compatible with WeChat games 1.7.4 version base library
QQ Play
Fix only play a single audio and the number of audio playback is limited
Fix unable to operate the engine object during the game loading process
Fix particle play card dead problem
Fix a semi-transparent text will be rendered into a black question
DragonBones
Fixing DragonBones’ repeated assignment of bones on native platforms can cause crashes
Fix manually clearing the texture data of Dragon DragonBones
Others
Fix text box for Web and Android platform Input Flag is invalid
Fix Label rendering related issues
Fix cc.game’s EVENT_HIDE and EVNET_SHOW callbacks may be called multiple times
Cocos Creator v1.9.2 is a minor upgrade to the recently released v1.9.1. This release mainly improves the support for WeChat games and QQ games. If you release on WeChat or QQ it is recommended that you upgrade to this release.
This version fixes the problem where a ZERO blending mode is invalid. If the image color is incorrect after the upgrade, check if the blending mode of the Sprite component is set to ZERO. If so, change it back to the default value.
This version rewrites the animation editor. If you encounter any errors please create a topic on our forums.
Features
[Editor] [Timeline] Animation Editor can edit “missing nodes” and allow node data to be migrated
[Editor] [Timeline] Animation Editor supports copying and pasting keyframes on multiple nodes at the same time
[Editor] [Timeline] Animation Editor Several Experience Optimizations
[Editor] Place the adaptation layer code of QQ Play and Wechat games into the Contents/Resources/builtin directory of the editor for users to upgrade
[Engine] Upgrade Facebook Instant Games SDK to 6.2
[Engine] Optimizing Label’s Memory Usage on Non-native Platforms
WeChat Games
Fixed an issue where the AudioSource component may report an error when it is destroyed
Optimize the implementation of sounds on WeChat games
Use openDataContext to define the open data field in the game.json of the WeChat game. Change the entry file of the open data field to index.js
Fix the issue of loading remote resources in the WeChat open data domain
Fix errors that may occur when loading plist particles on WeChat games
Fix gl.texImage2D error caused by calling cc.RenderTexture.create in WeChat game
Fixed an error on WeChat getting old WeChat game open data domain on old version
Allows simulation of system information obtained through cc.sys.os on the WeChat mini game developer tools
Fixed an issue where the subdomain could not be correctly identified on the old version of WeChat
QQ Play
Optimized QQ to play a sound on the realization
Fix QQ playing a problem with the following blue screen in iOS 10
Repair QQ may play an error when loading plist particles
Fixed plug-in script loading exception when posting to QQ to play with Windows
Improve header processing in XMLHttpRequest for QQ
Perfect userAgent for QQ
Fixed QQ playing a text stroke effect
Bug Fixes
[Editor] Fix Documentation Links for AudioSource and MotionStreak Components
[Editor] Fix the problem that the editor might preview the animation if the animation changes the node’s active
[Editor] Fixed an issue where the editor could not be accessed when the login server went down
[Editor] Fix the issue that when you repeatedly drag to the same prefab as a child of other prefab
[Engine] Fixed an issue where the sprite’s blend mode could not be set to ZERO on the web platform
[Engine] Fixed a problem in cc.sequence where nesting other calls to the repeat method’s action would cause abnormal speeds in special cases
[Engine] Fix Sprite error after scene change
[Engine] [JSB] Fixed an issue that triggered assertions after creating cc.GLProgram in the JS layer and adding it to cc.shaderCache
[Engine] [JSB] Fix Native Platform Physics Engine Binding Problem
[Engine] [Native] Fixed cc.Sprite.FillType enumeration error on native platform
[Engine] [UI] Fixed a positioning issue that may be caused when the scroll view is enabled with vertical, horizontal scrolling, and the inner size is too small.
[Engine] [Audio] Fixed an issue where playing audioEngine.resume repeatedly would start from scratch.
Cocos Creator v1.9.1 is a minor upgrade to the recently released v1.9.0. The detailed changes are:
WeChat Games
Support for publishing the entire project to the WeChat mini game sub-domain. For details, please refer to document.
Support WeChat game configuration in the build panel Remote server address option to facilitate the download of remote resources
Support for using TTF fonts on WeChat mini games
Switch the adaptation layer of the WeChat game from ES6 to ES5, users can not enable ES6 to ES5
Fix potential audio memory leak in WeChat game
QQ Play
Support QQ to play in the build panel to configure the remote server address option to facilitate the download of remote resources.
Fix some minor bugs in XMLHttpRequest with QQ
Fixed an issue where the js path could not be resolved during QQ build
Perfect QQ play with multi-touch support
Added QQ support for base64 encoded images
Perfect QQ Play Adaptation Layer
Perfect audio support for QQ
Fixed black screen issue after QQ checked MD5 Cache
Other Updates
[Editor] [Build] Bug fix for custom project build template functionality not working on the Facebook Instant Games platform
[Editor] [Build] Add build-start event to make it easier for users to do some processing before they build
[Engine] [Wechat] Fixed an issue where WeChat game audio could not be stopped
[Engine] [iOS] Fix the issue that the isTypedArray method fails on iOS 8-9
[Engine] [Web] Fixing particle system will remove memory if it is not activated yet
[Engine] cc.isValid adds an optional argument. Passing true will return false at the beginning of the destroy frame.
[Engine] [Android] Fix a Memory Leak on jni
DEPRECATION
As of v1.8.2, cc.eventManager is no longer recommended. Use cc.EventTarget or cc.systemEvent instead. The original API will be removed in 2.0.
As of v1.8.2, cc.inputManager is no longer recommended. Use the same interface as cc.systemEvent instead. The original API will be removed in 2.0.
As of v1.8.2, dragonBones.CCFactory.getFactory is no longer recommended. Please use dragonBones.CCFactory.getInstance instead. The original API will be removed in 2.0.
KNOWN ISSUES
When copying and pasting resources in the explorer, the resource properties will not be copied. (Since 1.9.0)
QQ Play known issues
QQ is still playing in the grayscale test, developers also need to obtain internal testing qualifications for development, and only supports compiling on Mac for the time being. In addition, our adaptation work for QQ has not been completely completed yet. The following modules are currently not supported:
Label: TTF is not supported, system font can only use the default font
Particle system: Map data is not stored in plist. Only support map URL
WebView
VideoPlayer
DeviceMotion
The above functions are expected to be supported one by one in future updates. We will also continue to closely communicate with the Play engineers and continue to optimize the fitting effect.
As of March 14, 2018, Facebook officially launched the Instant Games platform, worldwide, giving all developers an equal chance to enter and expand their overseas markets.
Many game studios have chosen Cocos Creator as their game development engine. Rapid development and continuous iteration make Cocos Creator the perfect choice. It has already formed a competitive advantage in the field of small games. The Cocos Creator editor is a powerful tool for developers to create excellent content and innovative games.
Cocos Creator is the best tool to create Facebook Instant Games. Already there are 24 games available produced by Chinese domestic companies and Cocos Creator already is sitting on 54% market share. The Cocos team is familiar with the workflow of online games and the requirements of the Facebook Instant Games platform. In order to help game studios successfully release their games on the Facebook Instant Games platform, and help them seize the opportunity opened up by the huge overseas HTML5 market, the engine team continuously worked overtime.
Cocos Creator 1.9 is released today with integrated Facebook Instant Games Support! Cocos Creator provides major features including:
Integrated Facebook Instant Games SDK and game templates, allowing users to quickly integrate features of Facebook Instant Games
A one-click packaging process in the Cocos Creator Build Panel. Games can be packaged directly into Facebook Instant Games. Developers only need to do a few simple steps. Cocos Creator handles all the technical aspects, you just need to code your game.
For more detailed technical documentation please refer to this link.
[Editor] Assets panel directly supports copy and paste resources (via right-click menu or shortcut keys)
[Editor] In the scene editor’s Rect edit mode, support for dragging a node’s white space, easy to change the value of the anchor
[Editor] Added “Sync” button to the particle component’s Property inspector. Clicking Sync will set the Custom parameter to be the same as File. (Synchronize button is only available if you check Custom and set File)
[Editor] Adds scale property to Timeline to facilitate editing of both scaleX and scaleY
[Engine] PhysicsManager Adds FIXED_TIME_STEP and MAX_ACCUMULATOR Parameters
Bug Fixes
[Engine] [Web] Fixed an issue where the input box could not pop up in some MIUI browsers
[Engine] Fix the issue that the audio may not stop after checking MD5 build
[Engine] Fixed issue where Label’s stroke may be truncated by one pixel
[Engine] Fixed an issue with exception-free messages in the cc.Class constructor
[Engine] [Animation] Fixed issue where one frame would be played less when the Animation component switched animations or manually set the AnimationState time
[Engine] [Wechat] Fixes Failed to Use Remote Service Loading After iOS Wechat Mini Game Native Code Pack Exceeding 4MB
DEPRECATION
As of v1.8.2, cc.eventManager is no longer recommended. Use cc.EventTarget or cc.systemEvent instead. The original API will be removed in 2.0.
As of v1.8.2, cc.inputManager is no longer recommended. Use the same interface as cc.systemEvent instead. The original API will be removed in 2.0.
As of v1.8.2, dragonBones.CCFactory.getFactory is no longer recommended. Please use dragonBones.CCFactory.getInstance instead. The original API will be removed in 2.0.
KNOWN ISSUES
When copying and pasting resources in the Assets panel, the resource properties will still not be copied. (Since 1.9.0)
On a native platform, calling the action.easing(cc.ease) method may cause the node’s logical data to be out of sync. Please use new cc.Ease(action) instead. (Since 1.8.2)
QQ Play Known Issues:
At present, QQ Play is still in AB Test. Developers are also required to obtain internal beta qualification in order to develop, and currently only support compiling on Mac. In addition, our adaptation work on QQ Play has not been completely completed yet. The following modules are still not supported at present:
Label: ttf is not supported, system font can only use the default font
Particle system: Map data is not supported in plist. Only texture urls are supported.
WebView
VideoPlayer
DeviceMotion
The above functions are expected to be supported one by one in future updates. We will also continue to closely communicate with QQ Play’s engineers to continuously optimize the matching effect.