Skip to content

LayaAir 3.3.0 Engine Library

Choose a tag to compare

@LayaCharley LayaCharley released this 05 Aug 06:10
· 313 commits to LayaAir_3.3 since this release
e050030

更多版本日志以及IDE的下载,请前往LayaAir官网:https://layaair.com/#/engineDownload

Engine Updates

New Features

  1. Added 2D navigation pathfinding components, such as static navigation surfaces and agent pathfinding.
  2. Added 2D lighting and shadow components, including directional light, sprite light, free-form light, spotlight, and light occluder.
  3. Added 2D renderer components, such as mesh, trail, line, and tilemap layers.
  4. Added a 2D particle system.
  5. Added 2D camera.
  6. Added 2D area node.
  7. Added full support for 2D custom shaders. Previously, only custom materials were supported in 2D.
  8. Added brand-new tile map; the old TiledMap is now deprecated and not recommended, but still temporarily compatible.
  9. Added Windows platform custom extensions. Developers can use LayaAir's extension tools to generate dynamic libraries to extend project functionality, such as Steam integration.
  10. Added 2D global lighting properties: lightDirection, ambientColor, ambientLayerMask, multiSamples, order, antiAlias, lightMode, sceneMode, and shadowDistance.
  11. Added normal map support (normalTexture) for 2D mesh renderer.
  12. Added position property setting to 2D physics rigid bodies.
  13. Added Additional rendering architecture supporting material batching based on BaseRender. 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.
  14. Added support for Spine 4.2 runtime library, allowing physical properties on Spine animations.
  15. Added get position and get rotation for 2D rigid bodies, with coordinate conversion from world to local space.
  16. Added mixed layout of text and frame animation, e.g. <img src='animation.atlas'>.
  17. Added percent property to graphics.drawCircle.
  18. Added compound colliders and sleep detection for 3D physics.
  19. Refactored 2D rendering with a brand-new architecture. Static graphics performance increased by over 200%, dynamic graphics by over 50%.
  20. Added zIndex optimization. In a test with 4000 composites and 12,000 sprites, FPS improved from 4 to 60.
  21. Added material UBO-based instance batching, enabling batching even with many variables (Note: requires platform UBO support).
  22. Added 2D post-processing effects.

Feature Optimizations

  1. Refactored the Tween system:
    • Compatible with Laya.Tween.to / Laya.Tween.from, but new 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 Handler to prevent handler reuse issues.
    • Supports richer options and serial/parallel tasks.
  2. Optimized 3D UI with camera-locked mode, suitable for VR UIs.
  3. Further modularized the engine library for minimal builds, helpful for ad demos.
  4. Optimized particle compilation with mulShaderDefineMode setting in ShuriKenParticle3DShaderDeclaration.
  5. Refactored 2D sequence frame player Animation, simplified interface, added new component FrameAnimation.
  6. Improved WebGL performance under Native.
  7. Improved new UI system: image components now support flipping, fill progress, circular clipping, etc.
  8. Added a Gears button to control visibility in the new UI system.
  9. Added release-time cleanup for GTextField and GLoader in the new UI system.
  10. Added GMovieClip to the new UI system.
  11. New UI system now fully supports multi-language (i18n).
  12. Fully refactored and open-sourced mini-game adaptation libraries across platforms.
  13. Optimized blueprint database with many missing classes/functions added; trimmed during release to reduce size.
  14. Refactored Native JS/C++ interaction layer, removed redundant call paths, significantly improved rendering performance.
  15. Added mutual masking disable & warnings to prevent display issues.

IDE Updates

New Features

  1. Added a new UI system with architecture similar to FairyGUI.
  2. Added visual editing for 2D navigation pathfinding.
  3. Added visual editing for 2D lighting and shadows.
  4. Added visual editing for 2D particle system.
  5. Added template creation for 2D custom shaders - basic rendering.
  6. Added visual editor for new TileMap (old TiledMap not supported).
  7. Added Linux build process and UI.
  8. Added definitions for 2D render layer names.
  9. Added global settings for 2D lighting in project settings.
  10. Added options in engine modules to support both traditional LayaAir UI and FairGUI system, along with modular engine components.
  11. Added blueprint support for new UI system.
  12. Added support for importing maps (tsx, tmx, tx) made in third-party TiledMap editor into LayaAir3-IDE, auto-converted to internal tileMap format (tres).
  13. Added terrainSets accessor in TileSet to define tile connection rules for automatic terrain stitching.
  14. Added animation property support to sprite atlases; a regular atlas can now become an animated resource.
  15. Added addMenuItem API as an alternative to @menu decorator, supporting default handlers:
    Editor.extensionManager.addMenuItem("Hierarchy/MyPrefab/Button", null,
        { id: "67b6743c-3e75-446c-bdf2-8d1c4e320062" });
  16. Added WASM subpackage support in split modules.
  17. Added stat info toggle in preview panel.
  18. Added source map protection in preview server (enabled by default).
  19. Added support for single-page HTML publishing with compression.
  20. Added prefab replacement function in node menu, keeping same name and matching property types.
  21. Added right-click on property title in inspector to copy, paste, or reset property.
  22. Added 2D post-processing effects (replaces filters; old filters still usable via code).
  23. Added project config for UI system.

Feature Optimizations

  1. Optimized 3D render layer name definitions.
  2. Hid unconfigurable properties in 2D particle editor.
  3. Added auto-import for 2D line renderer library.
  4. Optimized new UI system.
  5. Enhanced menu shortcut customization with dynamic key binding.
  6. Hierarchy panel now shows image thumbnails for Image and GImage nodes.
  7. Improved appearance and positioning of drawing-related buttons.
  8. 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.
  9. Optimized showall mode to avoid canvas overdraw on PC browser zoom-out; adjusted full mode to prevent UI clipping.
  10. Exposed animation state machine events (OnStartEnter, EVENT_OnStateUpdate, EVENT_OnStateExit, EVENT_OnStateLoop) for better animation logic control.
  11. Centered prefab preview display for better visibility even if origin is offset.
  12. Improved new UI system with quick prefab creation entries under Tools menu (usable for plugin UI too).
  13. Optimized WebIFrame class in plugin system to avoid reload on tab switch.
  14. Fully refined the FairyGUI-based new UI system.
  15. Optimized blueprint system for better stability and usability.