本篇文档为熟悉 Unity 的用户概述了 LayaAir 引擎的主要技术差异,以及帮助 Unity 开发者快速上手 LayaAir 引擎。
编辑器结构差异
与 Unity一样,LayaAir3-IDE是开发者日常开发的主要编辑工具。本小节先描述编辑器的相同与差异。
首先我们先看两组界面截图:
Unity编辑器界面截图
LayaAir3编辑器界面截图
上图不同颜色的框中对应编辑器相同模块的功能,我们下面详细对应一下模块的术语名称。
与 Unity 所有不同的是,LayaAir 的 2D 编辑是真 2D 编辑模式,是独立的模块,仅在运行的时候,叠加在 3D 场景的屏幕上层,这与 Unity 的 锁轴 2D 有所不同。
其中最核心的体验区别是,锁轴的 2D 以中心点为坐标原点(0,0),而真2D是基于网页的坐标系,左上角为坐标原点(0,0)。
项目资源差异
对于项目资源,我们有一些是自己的独特命名,例如下图所示。
项目的美术与音频等资源保存到 assets 目录下,源代码(ts文件)存放在 src 目录下(插件源码除外)。
LayaAir3 IDE中支持导入的 3D、纹理、音频、视频、字体、动画等常见文件类型如下图所示。
开发流程
首先,打开LayaAir3的IDE,开发者在登录之后,点击创建项目。
在新项目创建的面板里,开发者可以根据需要,选择不同的项目模板来创建项目。这里以2D或3D空项目为例,创建一个空的项目。填写项目名称,并选择项目位置后,点击创建项目。
创建完成后,会自动加载并打开已创建的项目。
2D空项目默认没有3D场景节点,而3D项目空项目则会同时存在3D场景节点和2D场景的节点。
开发者在安装完成Vscode编码工具后,IDE通常会自己关联该编码工具。如果开发者要使用其它的编码工具,或者在某些情况下,IDE未能自动识别编码工具的情况下,也可以通过首选项内进行手动指定。
LayaAir3的IDE支持中文与英文,开发者可自行选择。需要重点提及的是,在中文界面中,支持属性名选择是否翻译。
考虑到有些开发者更习惯于英文的属性名称,以便于直观的在代码中使用,还考虑到有的开发者更习惯于中文属性名,以方便理解。因此,可以通过勾选翻译引擎符号
使用全中文的界面(Tips中仍然可查看英文属性名),去掉勾选,则引擎属性将不翻译。
项目预览用来查看项目在不同环境中的运行效果。LayaAir-IDE提供了四种模式(版本>=3.2),分别是IDE内预览,浏览器预览,移动端预览,Windows端预览。
IDE内置了浏览器预览环境,点击IDE内后,直接在IDE内预览运行效果。在该模式下,开发者可以更清晰地查看运行后的节点层级,以及直接调整节点属性的变化效果。
预览面板上的工具栏中,可以调整预览的分辨率、缩放、重置、声音开关、开发者工具、刷新。
浏览器预览,就是调用系统的浏览器来运行与调试,如果需要在浏览器中调试,我们推荐chrome浏览器,开发者系统中默认不是chrome浏览器的,也可以通过 首选项
-> 通用
-> 外部工具
-> 浏览器
选择开发者指定的浏览器。
移动端预览用于手机扫码预览移动端浏览器运行的真机效果。需要注意的是,移动端设备要与电脑设备处于同一局域网下。
Windows端预览是基于windows原生exe环境的一种预览模式,通常用于检测Native安装包中是否运行稳定或表现是否一致等问题。
如果是首次运行,没有安装相应的native模块,则会弹出提示,需要先安装环境构建的支持包。
点击确定后,会自动提示安装,点击安装即可。安装完成后,点击即可查看运行效果。
运行的入口
LayaAir3的项目入口设置有两种方式,一种是在构建发布的界面指定启动场景,这样发布后就会按指定的场景作为入口。另一种,是在项目设置里,指定启动脚本,开发者可以在启动脚本中,根据代码逻辑自行决定哪开哪个场景作为入口。
我们先来介绍如何通过构建发布
设置启动场景。首先在文件
导航菜单中打开 构建发布
面板。然后在通用
栏中,找到资源选项
的启动场景
设置项,通过输入框右侧的场景选择器选择目标场景,或者直接拖拽场景到输入框即可。
需要注意的是,构建发布这里的设置主要是用于发布后的入口启动场景,如果是IDE内的测试,更常见的是,运行当前打开的场景 ,而不是启动场景。所以在运行的时候,我们可以选择是运行当前场景还是启动场景。
另一种模式需要创建一个启动脚本(TS)。这个脚本必须是一个异步的main函数,不能修改命名,我们的入口逻辑写到main函数内即可。
创建一个Entry.ts,示例代码如下:
export async function main() {console.log("Hello LayaAir!");//加载场景并打开场景Laya.Scene.open('Scene.ls');
}
然后,我们在项目设置
的脚本编译
栏中,找到脚本编译选项
分类下的启动脚本
设置项,通过输入框右侧的脚本选择器选择目标脚本,或者直接拖拽脚本到输入框即可。
一旦启动脚本设置生效,无论是IDE内还是发布后,将不再打开默认场景。即便是运行设置里勾选的是打开默认场景,默认也只会执行启脚本main函数内的逻辑。Entry.ts里执行了打开场景Scene.ls逻辑,如果我们加上逻辑判断,就可以根据不同环境,打开不同的入口场景了。
编码方式
LayaAir3的脚本需要添加到场景上运行。脚本有两种,一种是用于在场景根节点或预制体根节点管理大量 UI 交互的 ”UI 运行时“。另一种是基于ECS的组件脚本。我们以更通用的组件脚本为例,带大家入门。
首先,开发者选中层级面板中的根节点,在属性面板中,依次点击 增加组件
与 新建组件脚本
,然后输入名称
,点击创建并添加,
即完成了脚本的创建,以及场景上绑定脚本的操作。
除了这种方式外,我们也可以在项目资源面板中创建脚本,然后将脚本拖拽到属性面板进行绑定组件。
然后,我们双击属性面板的脚本或资源面板的脚本,打开Vscode编码工具,在onAwake生命周期方法里,添加第一行代码,打印"Hello, World!",
回到LayaAir-IDE中,运行查看控制台,就可以看到打印了日志。
日常开发
对于如何使用UI编辑器、3D编辑器、动画编辑、物理编辑、粒子编辑、材质编辑、蓝图编辑、IDE的插件系统等等,LayaAir3提供了全面详尽的文档。开发者可以打开以下链接,查看文档。
https://layaair.com/3.x/doc/basics/UnityToLayaAir/readme.html
文档中具有方便的文档检索能力,并且可以根据不同引擎版本查看对应的文档。
我们也可以通过B站,查看官方提供的教学视频。链接如下:
https://space.bilibili.com/1736809941
对于新上手 LayaAir3 的开发者,我们建议在创建项目的时候,创建示例模板项目,先分析研究引擎提供的示例。
除了官方的示例,我们的资源商店中,不仅有高性价比的付费资源,也有开发者奉献的大量免费项目源码以及资源。以供新接触LayaAir的开发者学习。
资源商店链接如下:
https://store.layaair.com/
如果您在学习过程中遇到引擎的使用问题或 BUG,可以在 LayaAir 官方的问答社区中提出,我们每天会有专职的社区工程师进行值守。对于BUG,只要提供重现 DEMO 的,我们都会第一时间处理。对于日常问题的,只要清晰地描述好问题,我们也会给予解答。
社区链接如下:
https://ask.layaair.com/
Unity资源转换
我们提供了 Unity 资源导出插件并进行了开源,通过Unity 资源导出插件,我们可以导出 Unity 的 3D 场景,并对场景中的模型、动画等资源导出到LayaAir引擎项目中使用。
开源地址如下:
https://github.com/layabox/LayaAir3.0UnityPlugin.git
开发者可以直接在github里的发布版中,直接下载Unity插件资源包来使用。
https://github.com/layabox/LayaAir3.0UnityPlugin/releases
需要注意的是,LayaAir为线性颜色空间,对于Unity颜色空间设置为Gamma的开发者可能会出现导出效果与LayaAir不一致的情况,开发者需要确认Unity是否设置为Linear颜色空间。
可以使用以下步骤查看Unity颜色空间的设置:Editor -> Project Setting -> Player -> Other Setting -> Color Space
,
另外需要注意的是,Unity的法线贴图经过了压缩,在导出的时候可能会存在LayaAir IDE预览与Unity不一致的情况,对于自定义Shader的用户需要注意法线的变换。
更具体的 Unity 资源导出插件使用说明,由于文档较长,建议复制链接到PC网页中查看。文档链接如下:
https://layaair.com/3.x/doc/3D/advanced/Unity/readme.html
END