LayaAir 3.2.0 Engine Library
更多版本日志以及IDE的下载,请前往LayaAir官网:https://layaair.com/#/engineDownload
Version 3.2.0 Release Changelog
Bug Fixes
Engine
- Fixed the issue where 3D video textures were displayed incorrectly on the Native Android platform in OpenGLES mode.
- Fixed the error caused by the unsupported
spine.PathAttachment
. - Fixed the bug where a part of the image was missing, and the animation could not play after using path constraints in Spine.
- Fixed the display anomaly when the number of Spine bones exceeded 100.
- Fixed the error in Spine caused by using the loading timing in the
onEnable
lifecycle. - Fixed the flickering issue in Spine animation frames.
- Fixed the position offset bug caused by setting both filters and anchor points simultaneously.
- Fixed the bug where video nodes could not play in Native standalone packages.
- Fixed the bug where the 3D navigation
navAgent.getCurrentPath()
interface reported an error. - Fixed the bug where the engine would freeze if the nine-slice data was unreasonable.
- Fixed the bug where the first click on a PC touch screen triggered
onmouseclick
twice. - Fixed the bug where setting the
speed
of a 2D animation to a negative value caused incorrect event calls.
IDE
- Fixed the issue with particle curve editing.
- Fixed the bug where selecting multiple UI components and dragging them to change the X/Y values of the bounding properties in the properties panel would misplace the UI components.
- Fixed the bug where FBX animation files exported from 3D Max could not play because the start time was not at frame 0.
Updates and Optimizations
-
New: Added the strikethrough text feature.
-
New: Added a package manager.
Note: Package manager import and management is supported only when the package contains
package.json
and has the relevant fields configured. -
New: Added the ability to set the entry function:
Note: This script must export a function named
main
. After the engine initializes, this function will be called directly, and the default scene will not be opened. Developers can decide which scene to open within the entry function. -
New: Added support for using the engine's WASM library on the WeChat Mini Game platform.
-
New: Added support for scene hooks, allowing custom logic insertion in specific processes like creating, loading, or saving objects in the scene. For example, if you want the pivot of all newly created UI nodes to initialize at (0.5, 0.5), you can write a plugin like this:
@IEditorEnv.regSceneHook() export class TestSceneHook implements IEditorEnv.ISceneHook { //载入场景后调用 onLoadScene() { } //保存场景后调用 onSaveScene(scene: IEditorEnv.IGameScene, data: any) { } //新建节点对象后调用 onCreateNode(scene: IEditorEnv.IGameScene, node: Laya.Node) { if (node instanceof Laya.Sprite) node.anchorX = node.anchorY = 0.5;//初始化锚点 } //场景中创建组件后调用 onCreateComponent(scene: IEditorEnv.IGameScene, comp: Laya.Component) { } }
-
New: Added the option to include or exclude source code when generating source maps during release.
-
New: The script collection feature now correctly isolates the code between different script collections. During development, scripts from different collections can be imported directly. The IDE will automatically convert these imports into indirect references during compilation to achieve bundle splitting.
-
New: Script collections can now choose whether to load before the main script collection.
-
New: The release interface now supports setting the main package as remote.
-
New: Spine resources can now be dragged directly from the asset library to the hierarchy or scene, automatically creating Spine render nodes and Spine components.
-
New: Added support for preset texture types. Since the default value sets imported textures as 3D textures, for 2D projects, this can be changed to sprite textures, eliminating the need for manual adjustments. UI components can now automatically recognize them as 2D sprite textures.
-
Optimization: When using the 2D empty project template, the default texture type is automatically adjusted to sprite texture, making it more user-friendly.
-
Optimization: After adding engine components, the corresponding engine libraries are automatically referenced to avoid runtime errors caused by missing engine libraries.
-
Optimization: Added destruction detection for Spine nodes to prevent errors caused by asynchronously loading already destroyed nodes.
-
Optimization: Performance improvements for handling a large number of files when using caching on the WeChat Mini Game platform.
-
Optimization: Improved the efficiency of Native standalone packages, reducing the initial black screen time.
-
Optimization: Resource management no longer generates meta files for all files in
node_modules
folders or files and folders ending with “~”. -
Optimization: If developers choose to use WASM libraries from the engine modules, such as physics and navigation, the platform will automatically switch to the corresponding pure JS library for platforms that do not support WASM.
-
Optimization: The build task interface has been changed from a dialog box to a panel.
3.2.0-beta.3 Changelog
Update Date: 2024-08-27
Bug Fixes
Engine
- Fixed an issue where a Spine animation within a Box would be occluded when another Spine animation was present on the Box.
- Fixed the discrepancy between Spine animations in LayaAir and previews in SpineTrial.
- Fixed a bug where Spine effects would not scale in certain situations.
- Fixed an issue where the official Cannon physics engine plugin could not add a 3D rigid body in the IDE under certain conditions.
- Fixed a bug in the 3D physics engine where spheres would slide but not roll on slopes.
- Fixed a bug in the 2D physics rigid body component where the linear velocity was not converted to pixel units.
- Fixed a compatibility issue in version 3.1 where particles using the default ParticleShuriken shader would not render.
- Fixed a shader error in WebGL1 for particles.
- Fixed a memory leak in 3D UI caused by the context initialization holding a Texture2D.
- Fixed an issue with abnormal shadow rendering in WebGPU mode.
- Fixed a memory leak caused by continuously updating masks.
- Fixed a bug in the
beforeInit
method related to the newly addedafterInit
method. - Fixed a screen tearing issue on certain platforms when caching 2D as a static image.
IDE
- Fixed an issue where file extensions would change from uppercase to lowercase after enabling version control.
- Fixed a bug in multi-agent scene pathfinding where adding multiple identical navMesh components to a node would prevent them from being fully baked.
- Fixed an issue where exiting the timeline animation and clicking the close button on the popup did not return to the editing interface.
- Fixed an issue in the plugin system where creating two radio buttons using the
IEditor.Menu.create
interface would only allow one selection and prevent a second selection. - Fixed a bug where the
IBuildPlugin.onCollectAssets
interface in the plugin system was not called during the build process.
Major New Features
- Added a visual programming module (Blueprint).
- Added support and build publishing for the HarmonyOS NEXT platform.
General Updates and Optimizations
- Removed Spine from widgets. Starting from version 3.2, the node mode for Spine is no longer supported and has been replaced with the Spine skeleton animation component.
- Improved engine performance, especially noticeable in iOS environments.
- Added
useFrame
andupdateFrame
properties tovideoTexture
for optimizing video playback, addressing video playback stutter issues in the Android WeChat browser. - Added support for simultaneous touch screen and mouse operations on laptops that support both inputs.
- Hid the unsupported destroy array function in the particle emitter to prevent misuse that could cause errors.
- Deprecated the
drawToTexture
interface inSprite
, replacing it with thedrawToRenderTexture2D
interface. - Changed the ES5 conversion function in Alipay mini-game publishing to be built into the IDE, no longer using Alipay's converter to prevent large files from being ignored by Alipay.
- Added a debug log window to the Native mode of
Window
. TheShowDebugConsole=true
option in theconfig.ini
file will display the log window, which is hidden by default. - Added support for modifying boolean properties in the 2D timeline animation panel.
- Added an option to change the layer property of all child nodes when modifying the layer property in the 3D node property panel.
- Added support for automatic edge adaptation based on polygon shapes in 2D physical polygon collisions.
- Improved the
type
property of thecustom
node in the shader blueprint. - Enhanced the novice user experience: a popup will guide users to download the official Visual Studio Code website if VSCode is not installed. Added a Help menu entry for a beginner's guide (development environment and process).
3.2.0-beta.2 Changelog
Update Date: 2024-06-27
Bug Fixes
Engine
- Fixed a bug where skeletal animation examples would not play in the native environment.
- Fixed a bug where Windows projects published natively would not run if the path included Chinese characters.
- Fixed a bug causing crashes in certain cases when running natively.
- Fixed an issue on native iOS where multi-light source examples displayed abnormally in OpenGLES mode.
- Fixed an issue on native Windows where the environment reflection example could not remove the reflection map in OpenGL.
- Fixed a bug where the scene preview had no effect after baking was completed, requiring an IDE refresh.
- Fixed a severe text aliasing issue in 2D examples under WebGPU mode.
- Fixed a vertex data format processing failure during WebGPU dynamic batching.
- Fixed a shadow rendering error when WebGPU render command caching was enabled.
- Fixed an issue with the UI3D being inverted under WebGPU.
- Fixed a shader compilation failure issue for particle systems under WebGPU.
- Fixed an issue where the WebGPU vertex shader did not support texture reading.
- Fixed an issue where Alipay mini-games could not display 2D content.
- Fixed an issue where the Physics2D debug tool always ran in the IDE.
- Fixed a bug where destroying an uninitialized Spine instance caused an error.
- Fixed a VolumetricGI bounds calculation issue.
IDE
- Fixed an error occurring after waking the computer from sleep mode.
- Fixed an issue where deleted resources did not immediately refresh in the scene.
- Fixed a bug where the atlas referenced by Animation was not automatically recycled after use.
- Fixed a bug where the NavMeshObstacles component required saving twice to apply the Radius parameter change when using CAPSULE type.
- Fixed an error caused by deleting elements from the post-processing stack array in the camera.
- Fixed an issue with BC1 and BC3 in compressed textures on the PC platform.
- Fixed a bug where the texture compression format meta file was inconsistent with each modification.
- Fixed a bug where NavMesh navigation area links were not displayed.
- Fixed a bug where publishing failed due to spaces in the directory name when publishing to Windows.
- Fixed a bug where the skybox material could not be set to null.
- Fixed a bug where selecting WebGPU when building for Web caused an error at runtime.
- Fixed a bug where pressing the delete key in a popup dialog deleted the selected component in the scene.
- Fixed a data error after copying nodes within prefabs.
- Fixed a bug where Native DCC did not correctly delete files.
- Fixed a VolumetricGI probe rendering issue.
- Fixed an image path error issue when publishing to Vivo mini-games.
Updates and Optimizations
- To ensure IDE stability and feature consistency, this version drops support for Windows 7 / 8 / 8.1. (The IDE's packaging framework Electron follows the Chromium deprecation policy, which will deprecate support for Windows 7 in Chromium 109.) Developers on Windows 7 / 8 / 8.1 should stay on versions below 3.2.
- Added support for adding multiple identical components to the same node.
- Added support for customizing the window title for Windows-published exe files.
- Added support for switching between AND and OR logic in 2D and 3D animation state machines involving multiple conditions.
- Changed Spine animations to be used as components.
- Optimized WebGPU rendering pipeline caching mechanism.
- Optimized Stat status bar data retrieval, allowing Stat data to be obtained in systemTimer.
- Added a rendering process for alpha pre-multiplied textures in WebGPU.
- Added support for 2D Spine animations in WebGPU.
- Added support for new resource types, allowing developers to add new recognizable resource types to the IDE via plugins. These resource types usually use special extensions for identification. A resource type can have the following customizable features:
- Resource icon
- Resource thumbnail
- Resource preview interface
- Resource category name
- Resource configuration interface displayed in the property inspector
- Resource loader support
- Resource modifications may need to be saved to disk
- Special processing during IDE import, with data written to the library
- Special processing during build and publish, such as dependency analysis and resource referencing
- Double-click to open
- Drag and drop into the scene to create nodes or other processes
3.2.0-beta.1 Changelog
Update Date: 2024-05-27
Engine Updates
New Features
- Added 3D navigation and pathfinding functionality.
- Added support for WebGPU graphics API rendering.
- Added support for the C++ version of the physics engine in the native engine.
Function Optimizations
- Greatly improved Spine performance.
- Greatly improved native runtime performance.
- Optimized 3D particles by reducing the number of shader defines and shader variants to improve performance and reduce compilation time.
- Removed Meshsprite3D and TrailSprite3D, which were deprecated in version 3.0. Developers using these APIs need to switch to using components.
IDE Updates
New Features
- Added automatic installation of the native packaging environment, avoiding packaging difficulties due to installation failures.
- Added one-click packaging for Windows platform to publish and package exe files.
- Added one-click packaging for Android platform to package apk files.
- Added one-click packaging for iOS platform to package ipa files.
- Added support for mobile simulators.
- Added six components related to 3D navigation and pathfinding.
- Added a material thumbnail preview panel.
- Added a switch to enable HTTPS protocol for web run previews.
Function Optimizations
- Optimized the existing process of native build and publish to make it more stable and user-friendly.
- Optimized IDE upgrade rules and installation update rules. Major version upgrades will no longer remind for updates, while minor versions will retain update reminders, avoiding frequent update reminders for users wanting to stay on lower versions. Manually downloaded major versions will not uninstall and overwrite the old version (requires a different installation directory).
- Optimized grid line processing when editing 3D scenes in the IDE. After using post-processing preview, the IDE grid lines can be occluded by the model.