LayaAir 3.3.0 Engine Library
·
313 commits
to LayaAir_3.3
since this release
更多版本日志以及IDE的下载,请前往LayaAir官网:https://layaair.com/#/engineDownload
Engine Updates
New Features
- Added 2D navigation pathfinding components, such as static navigation surfaces and agent pathfinding.
- Added 2D lighting and shadow components, including directional light, sprite light, free-form light, spotlight, and light occluder.
- Added 2D renderer components, such as mesh, trail, line, and tilemap layers.
- Added a 2D particle system.
- Added 2D camera.
- Added 2D area node.
- Added full support for 2D custom shaders. Previously, only custom materials were supported in 2D.
- Added brand-new tile map; the old TiledMap is now deprecated and not recommended, but still temporarily compatible.
- Added Windows platform custom extensions. Developers can use LayaAir's extension tools to generate dynamic libraries to extend project functionality, such as Steam integration.
- Added 2D global lighting properties:
lightDirection,ambientColor,ambientLayerMask,multiSamples,order,antiAlias,lightMode,sceneMode, andshadowDistance. - Added normal map support (
normalTexture) for 2D mesh renderer. - Added
positionproperty setting to 2D physics rigid bodies. - Added
Additionalrendering architecture supporting material batching based onBaseRender. Material batching reduces draw calls and improves GPU performance by merging render data for objects sharing the same material.
Example: Two hundred spheres with different colors rendered with only one draw call. - Added support for Spine 4.2 runtime library, allowing physical properties on Spine animations.
- Added
get positionandget rotationfor 2D rigid bodies, with coordinate conversion from world to local space. - Added mixed layout of text and frame animation, e.g.
<img src='animation.atlas'>. - Added
percentproperty tographics.drawCircle. - Added compound colliders and sleep detection for 3D physics.
- Refactored 2D rendering with a brand-new architecture. Static graphics performance increased by over 200%, dynamic graphics by over 50%.
- Added
zIndexoptimization. In a test with 4000 composites and 12,000 sprites, FPS improved from 4 to 60. - Added material
UBO-based instance batching, enabling batching even with many variables (Note: requires platform UBO support). - Added 2D post-processing effects.
Feature Optimizations
- Refactored the Tween system:
- Compatible with
Laya.Tween.to/Laya.Tween.from, butnew Tween()is no longer supported. - Supports number, Vector2/3/4, Color, Point, and string color values.
- Lightweight Tween objects, no reuse by default to avoid confusion.
- Avoids using
Handlerto prevent handler reuse issues. - Supports richer options and serial/parallel tasks.
- Compatible with
- Optimized 3D UI with camera-locked mode, suitable for VR UIs.
- Further modularized the engine library for minimal builds, helpful for ad demos.
- Optimized particle compilation with
mulShaderDefineModesetting inShuriKenParticle3DShaderDeclaration. - Refactored 2D sequence frame player
Animation, simplified interface, added new componentFrameAnimation. - Improved WebGL performance under Native.
- Improved new UI system: image components now support flipping, fill progress, circular clipping, etc.
- Added a Gears button to control visibility in the new UI system.
- Added release-time cleanup for
GTextFieldandGLoaderin the new UI system. - Added
GMovieClipto the new UI system. - New UI system now fully supports multi-language (i18n).
- Fully refactored and open-sourced mini-game adaptation libraries across platforms.
- Optimized blueprint database with many missing classes/functions added; trimmed during release to reduce size.
- Refactored Native JS/C++ interaction layer, removed redundant call paths, significantly improved rendering performance.
- Added mutual masking disable & warnings to prevent display issues.
IDE Updates
New Features
- Added a new UI system with architecture similar to FairyGUI.
- Added visual editing for 2D navigation pathfinding.
- Added visual editing for 2D lighting and shadows.
- Added visual editing for 2D particle system.
- Added template creation for 2D custom shaders - basic rendering.
- Added visual editor for new TileMap (old TiledMap not supported).
- Added Linux build process and UI.
- Added definitions for 2D render layer names.
- Added global settings for 2D lighting in project settings.
- Added options in engine modules to support both traditional LayaAir UI and FairGUI system, along with modular engine components.
- Added blueprint support for new UI system.
- Added support for importing maps (
tsx,tmx,tx) made in third-party TiledMap editor into LayaAir3-IDE, auto-converted to internaltileMapformat (tres). - Added
terrainSetsaccessor in TileSet to define tile connection rules for automatic terrain stitching. - Added animation property support to sprite atlases; a regular atlas can now become an animated resource.
- Added
addMenuItemAPI as an alternative to@menudecorator, supporting default handlers:Editor.extensionManager.addMenuItem("Hierarchy/MyPrefab/Button", null, { id: "67b6743c-3e75-446c-bdf2-8d1c4e320062" });
- Added WASM subpackage support in split modules.
- Added
statinfo toggle in preview panel. - Added source map protection in preview server (enabled by default).
- Added support for single-page HTML publishing with compression.
- Added prefab replacement function in node menu, keeping same name and matching property types.
- Added right-click on property title in inspector to copy, paste, or reset property.
- Added 2D post-processing effects (replaces filters; old filters still usable via code).
- Added project config for UI system.
Feature Optimizations
- Optimized 3D render layer name definitions.
- Hid unconfigurable properties in 2D particle editor.
- Added auto-import for 2D line renderer library.
- Optimized new UI system.
- Enhanced menu shortcut customization with dynamic key binding.
- Hierarchy panel now shows image thumbnails for Image and GImage nodes.
- Improved appearance and positioning of drawing-related buttons.
- Unified 2D and 3D physics usage:
- Removed 2D collider component; now added to rigid body.
- Added static collider for static bodies.
- Rigid body no longer supports static type directly.
- Optimized
showallmode to avoid canvas overdraw on PC browser zoom-out; adjustedfullmode to prevent UI clipping. - Exposed animation state machine events (
OnStartEnter,EVENT_OnStateUpdate,EVENT_OnStateExit,EVENT_OnStateLoop) for better animation logic control. - Centered prefab preview display for better visibility even if origin is offset.
- Improved new UI system with quick prefab creation entries under Tools menu (usable for plugin UI too).
- Optimized
WebIFrameclass in plugin system to avoid reload on tab switch. - Fully refined the FairyGUI-based new UI system.
- Optimized blueprint system for better stability and usability.