LayaAir3.3.0-beta.3重磅更新!Spine4.2、2D物理、UI系统、TileMap等全面升级!
正式版推出前,说明3.3的功能还没开发完。所以,又一大波更新来了~
下面对重点更新进行说明。
Spine的重要更新
3.3.0-beta.3版本开始,新增了Spine 4.2 的运行时库,Spine动画上可以支持物理特性了。例如,下图右侧女孩在启用物理更新后,头发与裙摆受物理力的影响,摆动的更加自然。

至此,Spine 已完成了 3.7、3.8、4.0、4.1、4.2版本的运行时库支持。
另外,beta.3版本完善了 Spine 使用的文档,IDE属性面板上增加了功能使用的说明。同时我们对 Spine 各模块功能也进行了更加全面与细致的测试,稳定性与易用性得以显著的提升。
2D物理的重要更新
3.3.0-beta.3版本开始,对2D物理的使用流程进行了优化重构,使得2D物理的流程与3D物理流程统一起来。
例如,取消2D碰撞体组件,碰撞形状改到刚体上添加。新增静态碰撞器,专门用于处理静态刚体。

将碰撞属性放到碰撞形状上的好处是,一方面结构更加清晰,另一方面,当存在组合碰撞体时,可以更灵活的在不同碰撞形状上设置不同的碰撞目标,而不再是统一在刚体上设置。
对于beta.3之前的旧版本2D物理引擎,我们也保持了兼容。不更新到新的物理流程,也可以使用。
但我们建议开发者直接升级到新版本的2D物理引擎,并为此内置了2D物理升级工具,方便开发者一键升级旧版本的2D物理数据。

需要注意的是,升级工具的操作不可逆。一旦使用物理升级工具升级,将无法在 beta.3 之前的 IDE 与引擎中使用。升级前一定要做好项目备份。

除了以上的更新外,2D刚体上增加了position与rotation访问器,用于获取位置和旋转角度。并对postion进行世界坐标与局部坐标转换,方便开发者按节点位置的理解来设置坐标。
TileMap的重要更新
3.3.0-beta.3版本开始,IDE支持第三方工具TiledMap编辑工具制作的地图(tsx\tmx\tx)导入到LayaAir3-IDE,并自动转换为LayaAir3内置的tileMap地图格式(tres)。方便习惯第三方编辑器的美术人员,在第三方工具中编辑后,直接导入 IDE 并使用引擎内置的 tileMap。

原地图中的图块图层与对象图层将被分别解析为带有 TileMapLayer 组件的层级节点,以及不含任何组件的空节点。对象图层下的各个对象将被解析为独立的精灵对象。
新增功能方面,在TileSet中新增了访问器terrainSets,用于描述一个集合的tile块拼接规则,然后在用terrain模式添加块时会自动拼接符合规则的块。
进一步完善了新UI系统
对于新UI系统,本次版本也进一步完善了。
例如,工具菜单下新增了“创建按钮、创建下拉框、创建进度条”等创建行为组件的入口,用于快捷创建按钮等预制体。(这个功能同样也可以用于创建插件UI)

图片组件补充了和fairygui类似的翻转、填充进度等效果,增加了裁剪为圆形等形状的效果。

在Controller中,Gears新增了一个按钮,可用于快速添加可见性控制。

除此之外,新UI系统中,还补充了GMovieClip。对于GTextField和GLoader补充了发布时清除功能。还完善了多国语言功能(i18n),使得该功能已经正常可用。
IDE的易用性更新
首先,3.3.0-beta.3版本开始,层级面板Image和GImage节点的图标优化为显示图片的缩略图,使得节点更容易识别。

另外,优化了绘图编辑、形状编辑、适配形状等按钮的位置与显示,使界面更加美观。

我们将预制体的运行预览调整为中心显示,这一优化可以使动画预制体原点以外的区域(坐标负值)也能在 IDE 内预览。

对于IDE中的菜单快捷键设置,我们从本版本开始,支持用户自定义动态添加。

在插件系统方面,本次版本新增了一个addMenuItem的API,相对于以往@menu装饰器,它可以不定义回调函数,这对于一些有默认处理函数的菜单有效果。
例如,层级菜单,如果不定义点击函数,会自动使用菜单的id作为类型去创建节点。
Editor.extensionManager.addMenuItem( "Hierarchy/我的预制体/Button", null, { id: "67b6743c-3e75-446c-bdf2-8d1c4e320062" }); 其它引擎与IDE的新增与优化
3.3.0-beta.3 版本中,我们还支持了文本与序列帧动画混排,例如文本中可直接使用标签 <img src='animation.atlas'>。

对于普通的图集,该版本开始,也新增支持了动画属性的设置,可以直接变成图集动画资源。

我们还开放了动画状态机的动画事件(进入状态时触发的OnStartEnter、状态更新时触发的EVENT_OnStateUpdate、退出状态时触发的EVENT_OnStateExit、状态循环时触发的EVENT_OnStateLoop),方便开发者根据事件来控制动画逻辑。
值的重点介绍的是,LayaAir 3.3.0-beta.3 版本完成了 Additional 渲染架构,并支持基于 BaseRender 的材质合批功能。

在渲染过程中,材质合批(Material Batching)可以减少渲染批次,提高 GPU 的渲染效率。原本,渲染系统在处理多个相同材质的对象时,可能会因渲染状态的切换导致额外的性能开销。而在新的架构下,BaseRender 作为基础渲染单元,通过合并相同材质的渲染数据,使得多个对象可以在同一个批次中被渲染,从而降低 DrawCall,提高帧率。
例如下图中,两百个颜色不同的球 只用了一个drawcall。

根据开发者的反馈,我们优化了showall适配模式,可以根据是否使用视网膜画布模式(useRetinalCanvas)来决定是否采用高分辨率的画布。以及优化了full模式等,让开发者满足各种适配需求。
对于Native方面,我们还优化了webgl模式的运行效率等。
欢迎大家前往引擎官网(layaAir.com)下载体验。

END
相关文章:
LayaAir3.3.0-beta.3重磅更新!Spine4.2、2D物理、UI系统、TileMap等全面升级!
正式版推出前,说明3.3的功能还没开发完。所以,又一大波更新来了~ 下面对重点更新进行说明。 Spine的重要更新 3.3.0-beta.3版本开始,新增了Spine 4.2 的运行时库,Spine动画上可以支持物理特性了。例如,下图右侧女孩在启…...
【AI学习】机器学习算法
1,线性回归模型(Linear Regression):预测连续数值 寻找自变量(解释变量)与因变量(被解释变量)之间的线性关联关系,通过构建线性方程来对数据进行拟合和预测。即两个变量之间是一次函…...
【渗透测试】Vulnhub靶机-FSoft Challenges VM: 1-详细通关教程
下载地址:https://www.vulnhub.com/entry/fsoft-challenges-vm-1,402/ 目录 前言 信息收集 目录扫描 wpscan扫描 修改密码 反弹shell 提权 思路总结 前言 开始前注意靶机简介,当第一次开机时会报apache错误,所以要等一分钟后重启才…...
【区块链+ 房产建筑】山东省建筑产业互联网平台 | FISCO BCOS 应用案例
山东省建筑产业互联网平台(山东省弘商易盟平台)是基于区块链技术构建的分布式产业互联网平台, 旨在把各企业内部的供应链协同管理系统(包括采购或者SRM 系统, 以及销售或CRM 系统)利用区块链技术链接起来&a…...
Node.js全局生效的中间件
目录 1. 目录结构 2. 代码实现 2.1 安装Express 2.2 app.js - 主文件 2.3 globalMiddleware.js - 全局中间件 3. 程序运行结果 4. 总结 在Node.js的Express框架中,全局生效的中间件是指应用程序启动后,对所有请求都有效的中间件。它通常用于日志记…...
国家天文台携手阿里云,发布国际首个太阳大模型“金乌”
2025年4月1日,中国科学院国家天文台与阿里云共同宣布推出全球首个太阳物理大模型“金乌”,在太阳活动预测领域实现颠覆性突破——其针对破坏性最强的M5级太阳耀斑预报准确率高达91%,远超传统数值模型,标志着人类对太阳的认知迈入“…...
数据结构(5)——栈
目录 前言 一、栈的概念及其结构 二、栈的实现 2.1说明 2.2动态栈结构体定义 2.3初始化 2.4销毁 2.5进(压)栈 2.6检验栈是否为空 2.7弹(出)栈 2.8栈的元素个数 2.9访问栈顶元素 三、运行 总结 前言 栈是一种常见的…...
Css径向渐变 - radial-gradient
由background-image: radial-gradient(at 75% 7%, blue 0px, transparent 50%);引出: 一、径向渐变是什么 径向渐变是颜色从一个中心点向外扩散的变化过程。 二、radial-gradient 函数是什么 1、使用语法: background-image: radial-gradient(shape si…...
理解激活函数,多个网络层之间如何连接
1. 激活函数如何在两个层之间作用 如果不在两个层之间添加激活函数,模型将无法学习非线性关系,表现出像线性模型一样的局限性。 LeakyReLU(0.2) 是一个激活函数,它的作用是对每一层的输出进行非线性转换。激活函数通常在神经网络中用于增加网…...
HTML5 Canvas绘画板项目实战:打造一个功能丰富的在线画板
HTML5 Canvas绘画板项目实战:打造一个功能丰富的在线画板 这里写目录标题 HTML5 Canvas绘画板项目实战:打造一个功能丰富的在线画板项目介绍技术栈核心功能实现1. 画板初始化与工具管理2. 多样化绘画工具3. 事件处理机制 技术要点分析1. Canvas上下文优化…...
2025亲测有用 yolov8 pt转onnx转ncnn 部署安卓
参考文章:pt转onnx转ncnn模型(yolov8部署安卓)_best.pt 转ncnn模型-CSDN博客 Yolov8-Ncnn模型部署Android,实现单一图片识别_yolov8转ncnn-CSDN博客 onnx转化为ncnn这条路径现在已经落后了,更多的是通过pnnx转化为nc…...
cursor的.cursorrules详解
文章目录 1. 文件位置与作用2. 基本语法规则3. 常用规则类型与示例3.1 忽略文件/目录3.2 限制代码生成范围3.3 自定义补全建议3.4 安全规则 4. 高级用法4.1 条件规则4.2 正则表达式匹配4.3 继承规则 5. 示例文件6. 注意事项 Cursor 是一款基于 AI 的智能代码编辑器,…...
MySQL 入门大全:运算符
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…...
Oracle数据库数据编程SQL<3.6 PL/SQL 包(Package)>
包是Oracle数据库中一种重要的PL/SQL程序结构,它将逻辑相关的变量、常量、游标、异常、过程和函数组织在一起,提供了更好的封装性和模块化。在大型项目中,可能有很多模块,而每一个模块又有自己的存过、函数等。而这些存过、函数默认是放在一起的,如果所有的存过函数都是放…...
Rust 语言语法糖深度解析:优雅背后的编译器魔法
之前介绍了语法糖的基本概念和在C/Python/JavaScript中的使用,今天和大家讨论语法糖在Rust中的表现形式。 程序语言中的语法糖:让代码更优雅的甜味剂 引言:语法糖的本质与价值 语法糖(Syntactic Sugar) 是编程语言中那些并不引入新功能&…...
React-Markdown详解
React-Markdown 详解(2025年最新实践指南) 一、核心特性与架构解析 React-Markdown 是一个基于 React 的 Markdown 渲染组件库,其核心设计理念是通过 Unified 生态系统实现安全、可扩展的 Markdown 解析。关键特性包括: 安全渲染…...
uniapp 微信小程序 使用ucharts
文章目录 前言一、组件功能概述二、代码结构分析2.1 模板结构 总结 前言 本文介绍一个基于 Vue 框架的小程序图表组件开发方案。该组件通过 uCharts 库实现折线图的绘制,并支持滚动、缩放、触摸提示等交互功能。文章将从代码结构、核心方法、交互实现和样式设计等方…...
mysql中将外部文本导入表中过程出现的错误及解决方法
问题一: MySQL Loading local data is disabled; this must be enabled on both the client and server sides (MySQL加载本地数据被禁用;这必须在客户端和服务器端同时启用) 解决方法: 1,依次输入以下命令…...
C#实现HiveQL建表语句中特殊数据类型的包裹
用C#实现搜索字符串中用’(‘和’)‘包裹的最外层的里面里面的字符串,将里面的记录按一个或多个空格、换行或tab,或者是它的在一起的组合作为分隔,分隔出多个字符串组,如果组中有字符串中同时包含’<‘和’>’,则…...
【idea】实用插件
SonarLint SonarLint:代码质量扫描工具 使用 SonarLint 可以帮助我们发现代码的问题,并且还提供了相应的解决方案. 对于每一个问题,SonarLint 都给出了示例,还有相应的解决方案,教我们怎么修改,极大的方便了我们的开发…...
关于mysql 数据库中的 慢SQL 的详细分析,包括定义、原因、解决方法及表格总结
以下是关于 慢SQL 的详细分析,包括定义、原因、解决方法及表格总结: 1. 什么是慢SQL? 定义: 慢SQL 是指执行时间超过预设阈值(如 2 秒)的 SQL 语句,通常会导致数据库响应延迟、资源占用过高&am…...
uniapp选择文件使用formData格式提交数据
1. Vue实现 在vue项目中,我们有个文件,和一些其他字段数据需要提交的时候,我们都是使用axios 设置请求头中的Content-Type: multipart/form-data,然后new FormData的方式来进行提交。方式如下: const sendRequest = () => {const formData = new FormData()formData…...
蓝牙数字音频和模拟音频优劣势对比?
蓝牙模块中我们常说的模拟音频和数字音频,是指两种不同的信号处理技术,它们都可以实现声音的录制、存储、编辑、压缩或播放,但也有一些区别和特点。本文将为您深入解析蓝牙数字音频和模拟音频的一些常见区别。 数字音频: 蓝牙数…...
WiFi(无线局域网)技术的多种工作模式
WiFi(无线局域网)技术支持多种工作模式,以满足不同的网络需求和应用场景。以下是主要的WiFi工作模式及其详细说明: 1. 基础设施模式(Infrastructure Mode) [无线接入点 (AP)]/ | \ [客户端…...
基于OpenCV的指纹验证:从原理到实战的深度解析
指纹识别的技术革命与OpenCV的轻量级方案 在生物特征识别领域,指纹识别始终以独特性和稳定性占据核心地位。随着OpenCV等开源视觉库的普及,这项看似"高大上"的技术正逐步走向民用化开发。本文将突破传统算法框架,提出一套基于OpenC…...
VMware+Ubuntu+VScode+ROS一站式教学+常见问题解决
目录 一.VMware的安装 二.Ubuntu下载 1.前言 2.Ubuntu版本选择 三.VMware中Ubuntu的安装 四.Ubuntu系统基本设置 1.中文更改 2.中文输入法更改 3. 辅助工具 vmware tools 五.VScode的安装ros基本插件 1.安装 2.ros辅助插件下载 六.ROS安装 1.安装ros 2.配置ROS…...
音视频(一)ZLMediaKit搭建部署
前言 一个基于C11的高性能运营级流媒体服务框架 全协议支持H264/H265/AAC/G711/OPUS/MP3,部分支持VP8/VP9/AV1/JPEG/MP3/H266/ADPCM/SVAC/G722/G723/G729 1:环境 ubuntu22.* ZLMediaKit downlaod:https://github.com/ZLMediaKit/ZLMediaKit or https://g…...
leetcode25.k个一组翻转链表
思路源自 【力扣hot100】【LeetCode 25】k个一组翻转链表|虚拟节点的应用 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(in…...
配置 UOS/deepin 系统远程桌面,实现多台电脑协同办公
由于开发工作的需要,我的办公桌上目前有多台电脑。一台是 i7 配置的电脑,运行 UOS V20 系统,作为主力办公电脑,负责处理企业微信、OA 等任务,并偶尔进行代码编译和验证软件在 UOS V20 系统下的兼容性;另一台…...
配置Next.js环境 使用vscode
配置 Next.js 的开发环境其实非常简单,下面是一个从零开始的完整步骤,适用于 Windows、macOS 和 Linux: ✅ 一、准备工作 确保你已经安装了以下软件: 1. Node.js(推荐 LTS 版本) 官网:https:/…...
