Cocos Creator 2.4.6 is released
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
andnumTilesY
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 asVideoClip
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.
Upgrade from <2.4.0 version
-
cc.loader
is no longer recommended, please use the latestcc.assetManager
instead, please refer to the Resource Management Module Upgrade Guide -
The sub-package function has been upgraded to Asset Bundle, please refer to the Resource Subcontract Upgrade Guide
-
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 usecc.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 usecc.Color.fromHEX
interface
Upgrade from < 2.3.3 version
-
The
CCTexture2D
andCCTexture2DRGB
methods in the Effect have been abandoned. -
Vec3.FRONT
has been abandoned, please useVec3.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
andlibs
directories under theproj.android-studio
root directory, respectively. -
proj.android-studio
under the root directoryjni/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
andapp/jni/Application.mk
, Android Instant, please put ingame/jni/Android.mk
andgame/jni/Application.mk
. -
When Cocos Creator compiles for Android, it will execute
assembleRelease/Debug
by default, and when compiling for Android Instant, it will executeinstant: 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.
Upgrade from < v2.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.
Downloads
Download Creator from Dashboard
Cocos Dashboard
The Cocos Dashboard serves as a unified downloader and launch portal for Cocos Creator. 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: