LayaAir3.2正式版来了:支持鸿蒙Next系统、程序蓝图(可视化编程)等重要的功能模块...

news2024/12/24 2:24:18

LayaAir3.2-beta.1的版本中,我们已介绍了3.2是真正的全平台发布版本《LayaAir3.2来了:性能大幅提升、一键发布安装包、支持WebGPU、3D导航寻路、升级为真正的全平台引擎》。

在其后的beta版本迭代中,我们不仅及时修复了开发者们反馈的BUG,补上了beta.1欠下的鸿蒙Next系统支持,还额外新增了包管理器、程序蓝图(可视化编程)等重要的功能模块。

(LayaAir3视频展示精简版)

完整版视频地址(点底部阅读原文可直接跳转):
https://www.bilibili.com/video/BV1u8xreREWu

经过四个多月的沉淀,今天,终于迎来了LayaAir3.2.0正式版,欢迎大家下载使用。

以下简要介绍beta.1之后陆续更新的功能与优化。

支持发布HarmonyOS Next系统   

鸿蒙系统(HarmonyOS)作为华为自主研发的操作系统,已建立了完整的生态体系。鸿蒙系统的新版本HarmonyOS NEXT 在继承前代优势的基础上,进行了深入的技术优化和生态拓展,涵盖从操作系统内核、文件系统,到编程语言、编译器/运行时、编程框架,再到设计系统、集成开发环境,以及 AI 框架和大模型等全栈自研。随着 HarmonyOS NEXT 的发布,鸿蒙生态将迎来更广阔的发展空间和丰富的应用场景,未来有望成为全球智能互联领域的领军者之一。

作为华为的技术合作伙伴,Layabox 已在 LayaAir1.8.16 和 LayaAir2.13.5 完成了 HarmonyOS NEXT 系统的适配和发布。如今LayaAir3.2.0 版本完成对 HarmonyOS NEXT 的适配,这意味着 LayaAir 引擎全系列版本现已全面支持 HarmonyOS NEXT 系统。

e0b957a1ad58eedd9b017c8eb7e732fd.png

(LayaAir3-IDE的项目构建发布界面截图)

对开发者而言,这一支持使他们能够更加轻松地将游戏或应用基于 LayaAir 引擎发布到 HarmonyOS NEXT 系统。该功能不仅简化了发布流程,减少了开发者的工作量,还为产品带来了更多的市场机会。

支持程序蓝图   

LayaAir3.2 新增对程序蓝图的支持,为开发者提供了一种更加直观、高效的开发方式,极大地提升了开发流程的可视化和易用性。程序蓝图作为一种图形化编程工具,允许开发者通过拖拽引擎API和连接线来实现逻辑功能,代替了传统的代码编写。这不仅降低了编程门槛,让没有深厚编程背景的开发者也能参与到项目的开发中,还显著提升了团队协作的效率,因为程序蓝图能够让开发流程更具可视性和易理解性,便于各成员之间快速沟通和调整。

3d05bae36fe868904dd40bf35f145613.gif(程序蓝图交互动图)

在游戏开发中,蓝图能够快速实现复杂的交互逻辑和视觉效果,这对于快速迭代和原型设计尤为重要。LayaAir3.2 对程序蓝图的支持,降低了开发复杂性,让开发者能够快速构建、测试和调整游戏逻辑,同时减少了编码错误的可能性。使得开发者可以在开发早期快速验证创意和游戏机制,从而减少了开发风险和成本。同时,蓝图的可扩展性和可重用性也大大增强了项目的灵活性。

670e133809ce0e975430ca1f7b78242e.png(点击查看高清大图)

平台发布的优化更新   

在构建发布的配置项上,3.2正式版新增支持了远程主包的设置,在小游戏平台这种包体受限的环境下,对于大型项目,主包中可以仅保留代码部分,所有的资源都通过远程进行加载使用。

9ab948d26558e374154b7f0b137e75cf.png

(远程主包设置界面截图)

微信小游戏平台方面,新增适配了引擎wasm库的使用。除此之外,还对使用微信小游戏缓存时,面对大量文件情况时存在的性能问题进行了优化。

支付宝小游戏的发布中的转es5功能,从3.2开始改为IDE内置,不再使用支付宝的转换,避免大文件被支付宝开发工具忽略的问题。

在客户端发布的方面,Windows发布的exe支持自定义窗口标题,并增加了调试日志窗口。安装包的进入效率也进行了优化,缩短了初始化黑屏的时间

最后,我们将构建任务界面从对话框改为面板,使用起来更加灵活。

其它功能新增与优化   

除了以上的重要更新外,beta.1之后还进行了大量其它的功能优化和新增。

01

新增支持包管理器

在之前的版本,资源商店的资源包可以通过资源商店网页来打开并导入,但导入到IDE后,插件或资源会分散在各处,并没有一个本地管理的统一入口。

从3.2正式版开始,不仅可以将购买的商店资源在IDE内导入,还可以对本地插件进行统一安装和管理,通过包管理器安装的本地的插件,包会集中到“packages”目录下,使得管理更加便捷。

2129e727dccedf836e2ed41d9b854357.png

(包管理器界面截图)

注意:如上图所示,只有在安装包中存在package.json并配置好相关的字段信息,才支持通过包管理器导入和管理。

02

新增设置启动脚本

LayaAir3.0开始,我们取消了固定的Main入口脚本,入口改为基于启动场景上挂载的自定义组件脚本或UI运行时。

为了让开发者更灵活的控制游戏启动入口,3.2.0正式版开始,增加了启动脚本的设置,允许开发者自定义设置自己的游戏启动入口,用启动脚本来替代启动场景,自行决定场景启动前要处理的逻辑,以及打开场景的时机。

8e99fb90b79549f08bb0815e79e3754d.jpeg

(设置启动脚本的界面截图)

注意:这个脚本需要导出一个名为main的函数。引擎初始化后将直接调用这个函数,不再打开默认场景,由开发者在入口函数中自行决定打开某个场景。

f30ffd2cc00f7ed292319fa8ace50d41.jpeg

(入口函数示例截图)

03

新增支持场景钩子

3.2.0正式版中还新增支持了场景钩子,用于实现对场景新建对象、载入、保存等特定流程里插入自定义的逻辑。例如,如果希望所有新建的UI节点,轴心都初始化为中心点(0.5,0.5),可以写这样一个插件:

@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) {
    }
}

04

新增预设纹理类型

LayaAir3以前版本的IDE只支持2D编辑,所以默认的纹理都是2D纹理。

但是,LayaAir3支持3D和2D两种编辑模式,而3D与2D纹理类型又不相同,IDE并不知道导入时的纹理是用于3D还是2D,所以默认值为3D使用的纹理,只有使用了LayaAir专属的UI组件命名规则才会被识别为2D纹理。

这就导致了没有使用UI组件命名规则的旧引擎使用者,在使用LayaAir3版本IDE时的误解:在旧版本引擎中显示正常的纹理为什么就在LayaAir3里显示异常了?

因此,3.2.0允许预先设置导入时的纹理类型,如果开发者的项目使用2D纹理的频率更高,可以在“项目设置->编辑->预设值->纹理类型”中,将纹理导入的“默认值”改为“精灵纹理”类型。并且,我们已调整了3.2正式版的2D空项目模板,如果是选择创建2D项目,则默认就设置导入的纹理类型为精灵纹理。

d0a40a9f2648af949cca0acfbf5f78b1.png

(更改纹理类型的界面)

如果是3D项目,只是会用到2D的UI纹理,我们不建议对导入时的默认纹理类型做出修改。而是需要针对2D纹理,采用UI命名规则,具体规则可以参照官方文档。

05

不再支持Windows8.1以下系统

为保障IDE的稳定性以及功能一致性,3.2开始底层采用新版本Electron,该版本的Chromium不再对Windows 7 / 8 / 8.1进行支持。因此,Windows8.1及以下系统版本的开发者需要升级系统,或者需要停留在LayaAir3.2以下的版本。

06

WebGPU的优化与新增

3.2.0-bata.1开始支持了WebGPU,我们在后续版本不仅修复了若干WebGPU模式下的BUG,也做了很多优化工作。例如,优化了WebGPU渲染管线缓存机制、新增了WebGPU对贴图进行Alpha预乘的渲染流程、新增了WebGPU对2D Spine动画的支持能力等。

07

Spine的优化

除BUG修复外,beta.1之后的版本,仍然对Spine不断进行优化。

首先,废弃了节点方式的Spine小部件,改为使用Spine骨骼动画组件的方式来使用Spine。

然后支持直接从资源面板拖入Spine资源到层级或场景即可自动创建Spine渲染节点和添加Spine动画组件。

还增加了Spine节点销毁检测,避免因异步加载已销毁的节点而引起报错等优化,使得Spine更健壮和易用。

尽管使用方式有所改变,但我们引擎和IDE均做了兼容,3.2以下版本升级上来的时候,IDE会将原节点自动改变为组件的使用方式。

08

其它

    • 文本增加了删除线功能

    • 添加引擎组件后,会自动引用对应的引擎库,避免因没有勾选引擎库而导致运行报错

    • 脚本集功能新增支持正确隔离不同脚本集的代码。开发时,不同的脚本集之间的代码可以直接import,IDE在编译时会自动将这些import转化为间接引用,达到分包的目的。

    • 脚本集支持可以选择是否在主脚本集之前加载

    • 提升了引擎运算性能,尤其是在iOS环境下更为明显

    • 对于同时可以屏幕触碰和鼠标操作的笔记本,新增支持两种操作同时生效

    • 隐藏粒子爆发器不支持的销毁数组功能,避免误用导致报错

    • 废弃Sprite的drawToTexture接口增加drawToRenderTexture2D接口

    • 2D时间轴动画面板上,新增支持布尔值属性的修改

    • 2D和3D动画状态机新增支持在涉及多个条件时在AND和OR逻辑之间进行切换

    • 3D节点修改属性面板中的层时,新增可以改变全部子节点层属性值的可选项

    • videoTexture新增useFrame与updateFrame属性,用于优化视频播放,解决Android微信的自带浏览器视频播放卡顿问题

    • 同一个节点新增支持添加多个相同的组件

    • 优化了Stat状态栏数据获取功能,可在systemTimer中获取Stat数据

    • 支持增加新的资源类型,开发者可以通过插件为IDE增加新的可识别的资源类型。

    • 资源管理不再为名称为node_modules文件夹里的所有文件,以及以“~”结尾的文件或文件夹生成meta文件。

    • 如果开发者选择了使用引擎模块中的wasm库,例如物理和寻路,对不支持wasm的游戏平台,自动切换为对应的纯js库。

    • 在生成源代码映射上增加了是否包含源代码功能。

写在最后   

LayaAir3.1分支版本我们维护了十个多月,与此同时,我们也在不断开发与更新3.2的新功能。

本次LayaAir3.2.0正式版的推出,标志着3.2引擎分支的新功能开发阶段已结束,从十月起进入3.2的日常BUG维护与优化更新阶段,以及LayaAir3.3 beta版本大量新特性功能的推出与持续开发阶段。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2197955.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

知识改变命运 数据结构【java对象的比较】

0:前言 在基本数据类型中,我们可以直接使用号比较是否相等,还记的学堆哪里时候,插入一个数据,就会与其他数据进行比较,当时我们传入的是Integer类型,在Integer类里面已经实现了compare。 如果…

Ubuntu22.04 获取docker 镜像失败如何处理

最近在使用docker 获取镜像发现 如下错误 无法正常的访问 如果能正常上网的情况下,可以尝试如下操作 首先进入/etc/docker/daemon.json文件 然后在里面加入下面的配置 { "registry-mirrors": ["https://docker.registry.cyou", "htt…

探索杨辉三角形的奥秘:C#实现

文章目录 杨辉三角形简介特点 C#实现杨辉三角形环境准备代码实现代码解释1. 用户输入2. 输入验证3. 初始化第一行4. 生成杨辉三角形5. 打印杨辉三角形 结论 杨辉三角形,也被称为帕斯卡三角形,是一个历史悠久且充满数学魅力的数字模式。它不仅在数学领域有…

论文速读:基于概率教师学习的域自适应目标检测

原文标题:Learning Domain Adaptive Object Detection with Probabilistic Teacher 中文标题:基于概率教师学习的域自适应目标检测 代码地址: GitHub - hikvision-research/ProbabilisticTeacher: An official implementation of ICML 2022 p…

【计算机毕设】springboot-家具销售电商平台(附源码)

摘 要 Abstracts 目 录 第1章 绪论 1.1课题背景 1.2研究意义 1.3研究内容 第2章 技术介绍 2 2.1相关技术 3 2.2 Java技术 3 2.3 MySQL数据库 4 2.4 Tomcat介绍 4 2.5 Spring Boot框架 5 第3章 需求分析 5 3.1需求分析概述 6 3.2可行性分析 6 3.2.1经济可行性 6 3.2.2技…

Docker:快速部署

docker安装: ​‌​‬​⁠​‍‬​‍‬‬‌​‬‬‬​⁠​‍​​‌‬‌​​​​​​‌​​​​⁠​‍⁠‌安装Docker - 飞书云文档 (feishu.cn) docker命令解读 docker run -d \ > --name mysql \ > -p 33…

OpenHarmony(鸿蒙南向开发)——轻量系统内核(LiteOS-M)【异常调测】

往期知识点记录: 鸿蒙(HarmonyOS)应用层开发(北向)知识点汇总 鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~ 持续更新中…… 基本概念 OpenHarmony LiteOS-M提供异常接管调测手段,…

【基础算法总结】字符串篇

目录 一,算法简介二,算法原理和代码实现14.最长公共前缀5.最长回文子串67.二进制求和43.字符串相乘 三,算法总结 一,算法简介 字符串 string 是一种数据结构,它一般和其他的算法结合在一起操作,比如和模拟&…

守护数据安全:.rmallox勒索病毒的防范与应对策略

导言 在当今这个数字化时代,网络空间已成为人们生活、工作和娱乐不可或缺的一部分。然而,随着互联网的普及和技术的飞速发展,网络安全问题也日益凸显,成为了一个全球性的挑战。其中,.rmallox勒索病毒作为一种恶意软件…

【linux】进程间的通信(一)

1. 了解进程通信 两个或者多个进程实现数据层面的交互 因为进程独立性的存在,导致进程通信成本较高(通信需要成本) 2. 进程间通信目的 进程间通信的本质是,让不同的进程看到同一份"资源"(即同一份内存空…

基础算法之前缀和--Java实现(下)--LeetCode题解:-和为 K 的子数组 - 和可被 K 整除的子数组 -连续数组-矩阵区域和

这里是Themberfue 和为 K 的子数组 题目解析 返回子数组中所有元素的和等于给定k的个数。 算法讲解 这题好像是用滑动窗口解决,但其实不能,因为 nums 中的元素可能存在负数,就不能保证其单调性的性质。 用前缀和求也不易想到,…

Java编码方式:Base64编码与解码

1、Base64 算法介绍 Base64 是一种基于 64 个可打印字符来表示二进制数据的表示方法。它主要用于在不支持二进制数据的场合(如电子邮件、URL、文件系统名等)传输二进制数据。严格来说 Base64 并不是一种加密/解密算法,而是一种编码方式。Bas…

数据挖掘学习笔记:朴素贝叶斯 | Python复现

数据挖掘学习笔记:朴素贝叶斯 机器学习系列(四):朴素贝叶斯(华强买瓜版) - yyxy的文章 - 知乎 十分钟,让你再也忘不掉贝叶斯分类 - VoidHaruhi的文章 - 知乎 《机器学习》(西瓜书&am…

快速生成单元测试

1. Squaretest插件 2. 依赖 <dependency><groupId>junit</groupId>

Spring异步线程池的问题

今天看一视频&#xff0c;提到说 Spring默认的异步线程池比较简单&#xff0c;每次执行异步任务&#xff0c;都会新建一个线程进行处理&#xff0c;不会重复利用&#xff0c;所以在用Spring框架开发的时候&#xff0c;需要自定义异步线程池。第一次听到这个说法。遂开始百度。 …

迷你世界表白神器爱心脚本lua

--迷你世界专用爱心表达公式 local a,angle,count,id30,0,0,math.random(668, 681) -- 根据需要调整θ的遍历范围和步长 while true do angle angle0.01 local ra*(math.sin(angle)*(math.sqrt(math.abs(math.cos(angle)))/(math.sin(angle)1.4)-2)2) if r>10…

动手学深度学习59 双向循环神经网络

1. 双向循环神经网络 视频&#xff1a;https://www.bilibili.com/video/BV12X4y1c71W/?p2&spm_id_frompageDriver&vd_sourceeb04c9a33e87ceba9c9a2e5f09752ef8 课件&#xff1a;https://courses.d2l.ai/zh-v2/assets/pdfs/part-3_7.pdf 课本&#xff1a; https://zh-…

机器学习K近邻算法——分类问题K近邻算法示例

针对“数据8.1”&#xff0c;讲解分类问题的K近邻算法&#xff0c;以V1&#xff08;转型情况&#xff09;为响应变量&#xff0c;以V2&#xff08;存款规模&#xff09;、V3&#xff08;EVA&#xff09;、V4&#xff08;中间业务收入&#xff09;、V5&#xff08;员工人数&…

【C++篇】继承之韵:解构编程奥义,领略面向对象的至高法则

文章目录 C 继承详解&#xff1a;初阶理解与实战应用前言第一章&#xff1a;继承的基本概念与定义1.1 继承的概念1.2 继承的定义 第二章&#xff1a;继承中的访问权限2.1 基类成员在派生类中的访问权限2.2 基类与派生类对象的赋值转换2.2.1 派生类对象赋值给基类对象2.2.2 基类…

多端同步的收银系统源码

随着经济的不断发展&#xff0c;很多门店越来越趋向连锁品牌化&#xff0c;收银系统自然也成为很多连锁门店必不可少的软件工具。希望通过一套软件可以帮助门店解决门店线下销售、会员管理、连锁多门店管理、线下线上一体化、商品库存管理等难题实现降本增效&#xff0c;为了方…