关于3D的学习文章,算上本篇,我一共写了两篇。上一篇是面向零3D基础的《科普:零基础了解3D游戏开发》。这篇是学习LayaAir3D引擎的入门级必读文章,也可以作为使用LayaAir引擎开发3D项目美术同学随时查阅的手册。
由于LayaAir引擎当前是依托于Unity工具编辑3D场景并导出资源的,那Unity中到底是哪些功能可以用,哪些功能不可用,本文会进行全面和系统的介绍。
建议:
1、如果是零3D基础,建议先去看看上一篇《科普:零基础了解3D游戏开发》
2、建议点开本篇左下角的 阅读全文,把本文对应的官网文档收藏起来。如果后续引擎和插件版本更新了。会直接在官网文档中进行修改丰富。
一、3D场景编辑器的研发规划
有开发者问过LayaAir引擎是否会有自己的3D场景编辑器,首先可以肯定的讲,一定会有。3D编辑器是LayaAir3.x引擎规划的基础组成部分(3.x正在研发中)。
采用Unity插件方案的主要原因,一是可以让有Unity经验的优质开发者可以更低学习成本进入HTML5和小游戏产业中来。二是1.x和2.x引擎还处于功能丰富的阶段,引擎功能与Unity还有差距,所以这个阶段以完善引擎功能为主,让小游戏产业的众多3D游戏开发者可以使用更多3D渲染能力,让3D产品的表现更自由、更丰富、更炫酷。因此我们把更多精力先放到引擎功能的研发上。工具方面保障不影响开发者的开发工作流即可。
随着引擎功能越来越丰富,当前甚至拥有大量Unity也不具有的特色引擎功能,所以自有3D编辑器也在研发进行中,未来与LayaAir 3.x引擎一起推出。
本篇,我们将全面学习Unity的插件工具使用,以及LayaAir引擎支持Unity中的哪些功能。由于Unity的学习资料非常丰富,即便是没有用过Unity的开发者,在阅读本篇遇到不能理解的地方,也可以通过本篇中的关键字百度搜索答案。
如果是没有使用过Unity的开发者,不需要系统学习全部Unity工具功能与引擎。仅需通过本篇文档的支持列表,来了解LayaAir引擎支持的功能使用即可。
二、LayaAir的3D场景编辑环境配置
在当前,创建LayaAir引擎项目和编辑UI是基于自研的工具LayaAirIDE。而编辑3D场景是基于第三方工具Unity以及我们自研的LayaAir引擎Unity插件。所以本小节先引导大家安装好这些基础的工具与开发环境。
2.1、下载Unity编辑器工具
LayaAir引擎的Unity插件不会支持导出Unity所有的功能,毕竟不是同一个引擎,具体支持哪些后面会详细介绍。
因此,我们的插件工具也不需要支持Unity所有的版本,开发者要根据引擎的版本来选择安装不同的Unity版本。
2.1.1 Unity 5.6.x版本
在LayaAir 2.3版本之前(不含2.3)支持采用Unity5.6.x的版本进行3D场景的编辑。
国内下载地址:https://unity.cn/releases?signup=true
国际下载地址:https://unity3d.com/get-unity/download/archive
需要登陆,再找到对应的历史版本(国内打开国际地址需要翻墙)
2.1.2 Unity 2018.4.7版本
从LayaAir 2.3版本开始(含2.3)支持采用2018.4.7进行3D场景的编辑。
有的开发者会问其他版本的行不行,例如Unity 2019或者2018的其他版本。
如果是小版本的差别,例如2018.4.x的其他系列版本,理论上是没有问题的,但是建议采用2018.4.7。因为2018.4.7版本是经过我们每次的插件发版测试的版本。
但是,开发者要是采用了例如2019.x等其他版本,则可能会使用到一些2018.4.7不支持的功能,这样就会在导出时报错,或者出现LayaAir引擎运行效果与unity编辑效果不一致的情况。所以开发者尽可能采用我们推荐的Unity版本2018.4.7。
国内下载地址:https://unity.cn/releases?signup=true
国际下载地址:https://unity3d.com/get-unity/download/archive
需要登陆,再找到对应的历史版本(国内打开国际地址需要翻墙)
2.2 、下载LayaAir的unity插件
2.2.1 下载地址
LayaAir引擎unity插件下载地址:
https://ldc2.layabox.com/layadownload/?type=layaairide
2.2.2 要对应的版本
LayaAir引擎unity插件在下载时,一定要对应好引擎的版本号,
例如,引擎采用的是2.6.1,那插件也需要去LayaAirIDE 2.6.1版本下载页面中去下载对应的Unity3D插件
版本,如下图所示。否则可能因为引擎与插件的功能支持没有对应,导致运行报错。
这里需要重点提醒的是,
插件对应的是引擎版本,不是IDE版本。
有些开发者,以为升级了LayaAirIDE的版本,就是对应了引擎版本,并不是这样。
切换引擎版本,是在LayaAirIDE里点开左上角IDE图标,打开菜单项目 -> 类库管理 -> 下载(并选中引擎库版本) -> 应用
切换引擎类库。
2.3、 导入LayaAir的Unity插件
Unity里有一个导入自定义包的功能,通过这个功能,可以在Unity里导入LayaAir引擎提供的专属功能包,用来导出Unity里编辑好的场景和资源,然后再用以LayaAir引擎3D的开发。在Unity里导入这个自定义的LayaAir功能包的过程,我们可以视为安装了一个LayaAir引擎资源导出的Unity插件。本小节会针对这个过程进行详细介绍。
2.3.1 创建一个空项目
除非是在已经安装过LayaAir3D插件的Unity项目上进行升级安装,否则,
我们建议去创建一个新的空项目。
因为直接打开一个Unity已有项目,可能会有冲突,会导致插件安装不成功。
如果想使用已有Unity项目的场景资源和编辑好的场景,建议在Unity空项目里安装好LayaAir引擎的插件,然后再把旧项目的资源目录(也就是Unity项目中的Assets目录)复制到新建的项目里。
Tips: 旧项目中的其他文件对于导出插件而言都用不上,只复制Assets目录即可
2.3.2 两种插件导入方式(项目中首次安装)
菜单式导入
在资源菜单Assets或者资源面板的Assets,右键import Package-> custom Package
,如下图所示。
(上图为从菜单导入)
(上图为从资源面板导入)
以上的两种导入方式,任选一种点开后,选择之前下载好的LayaAir引擎unity插件(xx.unitypackage)打开,如下图所示。
点击打开
后,会有插件包含的内容列表展示,如果有我们不想要的功能,比如在Unity里直接预览这个功能不想要,也可以把相关默认的勾选去掉,但是我们建议全部导入(默认就是)。
所以,我们直接点击Import
按钮,开始全部导入,即可。
导入完成后,我们可以看到菜单栏多出一个LayaAir3D
,如下图所示。此时说明,已经导入成功。
拖拽式导入
拖拽式安装的操作方式是把下载好的插件(xx.unitypackage)直接拖拽到Assets面板下,如下图所示。其他后续操作与菜单式安装一样。就不重复介绍了。
插件导入安装的提醒
对于Unity还不太熟悉的开发者,需要提醒的是,LayaAir引擎Unity插件,不是一次导入所有项目通用,本质上这并不是真的为Unity安装工具插件,而是为项目导入自定义的功能包,虽然我们可以理解为工具插件,但要明白这个插件的本质。所以,在每次创建新的项目工程后,都要重复上面导入LayaAir插件包的过程。
2.3.3 升级版本的安装
当LayaAir引擎与Unity插件出现了新版本,我们打算在已导入插件的项目上进行升级的时候,不仅要升级引擎,还要下载对应引擎版本的LayaAir引擎Unity插件。
然后,将资源目录(Assets)下的 LayaAir3D
与 StreamingAssets
文件夹删除,如下图所示。然后再按照首次安装的方式,去安装下载的新版本Unity插件。
三、初识LayaAir的Unity插件功能模块
当LayaAir的Unity插件导入成功(安装)后,在Unity中能见到的主要是三个组成模块,我们先对这几个组成模板进行初步的了解。
3.1、LayaAir3D菜单
成功导入插件包后,会在菜单栏看到LayaAir3D的菜单列表项,如下图所示。
3.1.1 帐号 Account
插件工具的功能,一部分是免费的常用与通用功能,另一部分是不影响开发者使用,或者是可以自己找到第三方替代方案,但使用插件集成更方便或者效果更好的增值(VIP)功能。
当要使用VIP(增值)功能时,需要从LayaAir3D菜单项的Account登录帐号,购买或使用VIP功能。
关于VIP的具体功能,在后面会有详细介绍的部分,这里重点介绍帐号(Account)
点击LayaAir3D菜单项的Account,弹出登录界面如下图所示。如果已有社区(ask.layabox.com)开发者帐号的开发者可以直接登录,否则也可以点击这个界面的文本链接注册
,跳转到注册网页。
当开发者登录后,界面如下图所示,如果是已购买VIP的帐号,在帐号名下会显示VIP到期时间。否则,会不显示到期时间,皇冠图标也是灰色的。
充值
按钮用来购买VIP授权时间,或者续费延长时间。
首次充值,如果因网络原因,帐号权限未能即时刷新时,可以通过点击
刷新
或者退出
重新登录来解决。
发票
按钮可以跳转到发票申请的网页。
VIP功能
的描述,为了不占用空间,显示的并不全,可以点击了解更多,跳转到全面介绍的文档(https://ldc2.layabox.com/doc/?nav=zh-ts-0-3-3)进行查看。
绑定设备
是插件自动识别的,无需手动绑定,但如果设备绑定达到帐号上限,需要切换设备时,需要点击解绑
,才能在其它的设备上登录该帐号。此时当前设备则无法再登录成功。
3.1.2 导出工具 Export Tool
点击菜单 LayaAir3D
—> Export Tool
,会弹出如下图所示的导出工具面板。这个面板可以拖拽到我们习惯的位置上,这是开发者导出Unity中场景与资源的最核心面板,后面会有详细的介绍,这里就不多做阐述。
3.1.3 快捷功能 shortcut
LayaAir3D
的菜单项Shortcuts
是快捷功能,当前有两个快捷功能,如下图所示:
Switch to LayaAir3D BlinnPhongMateria Shader
可以将Unity的材质一键转换成为LayaAir引擎BlinnPhong材质。
Switch to LayaAir3D PBRStandardMaterial Shader
可以将Unity的材质一键转换成为LayaAir引擎PBRStandard材质。
一键转换材质的重要提示:
Unity的材质是不能在LayaAir引擎中使用的,所以,开发者必须要使用LayaAir引擎中提供的材质。如何切换LayaAir的材质,本文后面还会有介绍,这里提供两种常用材质的一键转换功能,比较方便实用。在资源导出前,如果以上的材质符合项目需求,可以在这里快速的切换为LayaAir引擎的材质。
3.1.4 帮助 help
帮助菜单项里,下级菜单有示例Demo
、学习文档Study
、问答社区Answsers
这些外链菜单项,方便开发者快速进入对应的官网页面中。还有插件导出功能说明Tutorial
、插件版本About LayaAir
,如下图所示。
帮助菜单项的下级菜单,这里就不去详细介绍了,基本上点开就能理解,其中的插件导出功能说明Tutorial
是介绍了当前插件支持哪些Unity功能导出,如果不能理解的也没关系,在本文中还会有相关的介绍。
3.1.5 设置 Setting
设置项,当前只有一个可配置功能,就是插件的语言(Language),默认是中文,如下图所示。
习惯了英文界面的开发者,可以在这里配置成为English语言。
3.2、 资源面板Assets
插件导入成功后,开发者可以在Unity的Assets(资源)面板中,看到新增了两个目录,LayaAir3D
和StreamingAssets
。如下图所示。
这两个目录开发者都不需要动,这里简单概述一下,开发者知道即可。
3.2.1 LayaAir3D 目录
LayaShader
LayaShader目录下是LayaAir引擎下的材质等Shader。
LayaSupoortList
LayaSupoortList目录下是插件支持的功能列表文档,不过建议看我的这篇,更全更细。
LayaTool
LayaTool目录是插件功能操作面板的功能实现目录。
3.2.2 StreamingAssets 目录
StreamingAssets目录下,只有一个LayaDemo目录,这里不是示例目录,是效果预览的anywher(本地Server)等环境目录。如果不需要在Unity里直接预览LayaAir引擎运行效果,该目录也可以删除,但建议保留。
新手注意:
对于刚接触LayaAir引擎新手,这里要重点强调一下,预览功能必须要先全局安装Node环境(推荐安装Node 10.x版本),我们看到上一个图中的StreamingAssets目录结构就可以看出,正常的目录结构需要node_modules,如果没有安装Node环境,目录结构与上图结构不符,预览功能也就无法正常使用。
当然,如果没有安装Node环境就直接预览(Run),插件工具也会提示下载安装Node环境,安装后需要重启Unity才会重生效,如果遇到重启Unity仍未生效的情况,建议重启电脑。
3.3、导出工具操作面板
之前的小节有介绍过,通过顶部菜单的Export Tool
,可以弹出一个导出工具面板,如下图所示。
之前是中文界面,下图换成了英文界面。
上图这个面板,