Cocos Creator has just taken the jump into the world of 3D with the release of Cocos Creator 2.1. While still a 2D game engine, the underlying renderer is fully 3D. This release adds a new 3D node, a new renderer component, a new animation node, a new 3D camera as well as the ability to load 3D content in FBX file formats. This release also marks a bit of a fork in Cocos Creator development, with the existing 2D only game engine staying on the 2.0.x versioning scheme, while the new 2.1.x will develop more rapidly in the future. This hopefully will fix some of the bad backward compatibility changes they have made in the past, but it will be interesting to see how much development both branches receive. If you are interested in learning Cocos Creator, be sure to check out our comprehensive tutorial series available over on DevGa.me.
Full release note details of the 2.1 release:
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 8.
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. .fbx is 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 1
Mesh Renderer Component
Mesh Renderer is used to draw grid resources. See Mesh Renderer 1.
Bone Animation Component
The Skeletal Animation component inherits from the Animation component. The Skeletal Animation component 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 Animation component 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 1.
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 4 for details.
- 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.
- [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 1.
- [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.
- 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.
- [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 1.
- [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.