正式版推出前,说明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