5分钟使用Unity制作AR应用

今天这篇课程将为大家介绍使用Unity结合Vuforia
SDK制作AR应用的过程,非常简单且容易上手,适合Unity初学者。最后效果是制作出向上跳跃的Unity酱。

注意:本文教程使用Unity 5.3.4制作,Unity编辑器及Android设备测试通过。


第一步 注册Vuforia

首先需要到Vuforia官网进行注册,注册成功后跳转至License Manager页面。

然后点击“Add License
Key”按钮创建许可证,创建过程中需要输入应用名称、设备及许可证类型。这里应用名称任意填写,设备选择Mobile,许可证类型使用免费版即可。

点击下一步并同意条款后再点击“Confirm”按钮确认注册应用。成功注册后点击应用会显示License Key,后面会用到。


第二步 下载SDK并导入Unity

在Vuforia官网的下载页面找到Download for
Unity下载供Unity使用的SDK,本文使用最新版5.5.9。下载完成后双击打开文件,点击“Import”按钮将下载的SDK导入Unity项目。


第三步 添加并设置ARCamera

新建场景并将Prefabs文件夹下的ARCamera预设体拖拽至场景,如下:

将Vuforia网页上的License Key信息复制到Vuforia Behaviour脚本的App License Key字段,如下:


第四步 添加识别标记

首先挑一张分辨率高且比较有特点(尽量少有重复)的图。

然后打开Vuforia网页的Target Manager网页点击“Add
Database”按钮,随意填写名称并选择类型为“Device”。点击新创建的Database名称,会出现Add Target界面,设置如下:

将Width设为1并随意命名后点击“Add”按钮。回到列表页会发现Database中多了个5星级的识别标记。

点击页面上的“Download Dataset(All)”按钮,选择开发平台为Unity Editor后下载该资源。

将下载的资源导入Unity项目,然后选中层级视图中的ARCamera,勾选Database Load Behaviour脚本下的“Load XX
Database”与“Active”。

将Prefabs文件夹下的ImageTarget预设体拖拽至场景,然后点击Image Target
Behaviour脚本下的“Type”下拉列表,将类型设为“Predefined”,分别在“Database”和“ImageTarget”下拉列表中选择之前创建的Database和识别标记。此时场景示意图如下:


第五步 添加目标物体

接下来将UnityChan的模型作为目标物体添加为ImageTarget的子对象,可以按照自己的喜好调整UnityChan的位置及旋转角度或添加动画等。UnityChan的模型资源可在Asset
Store中免费下载,添加UnityChan后的场景如下:

到此就大功告成了,接下来打包运行,最终效果如下:

unity小技巧

大家使用Unity的经验都有多长呢?Unity编辑器中还有这样的隐藏功能你知道吗?本系列文章为大家介绍Unity使用小技巧,文末附上Unity大中华区Evangelist
Kelvin Lo录制的视频,希望对你有帮助。

技巧一

如果编辑器意外崩溃了,但场景未保存,这时可以打开工程目录,找到/Temp/_Backupscenes/文件夹,可以看到有后缀名为.backup的文件,将该文件的后缀名改为.unity拖拽到项目视图,即可还原编辑器崩溃前的场景。

技巧二

所有数值类型的字段,都支持在检视面板中直接输入简单的数值表达式。

技巧三

好不容易才调好的坐标,结果发现是在运行模式下,如果退出运行模式就还原了怎么办?可以在检视面板右键点击组件名,在弹出界面中选择Copy
Component,然后退出运行模式后同样右键点击组件名,在弹出界面中选择Paste Component Values即可。

技巧四

分别按键盘键Q、W、E、R、T可以依次切换界面上的小工具。除此之外,按数字键2或3还可以切换场景为2D模式或3D模式。

技巧五

右键点击检视面板下方的预览窗口即可让预览窗口跳出来,然后自己选择合适的地方停靠,这样切换模型查看就不会影响到其它面板。想让预览窗口回到原位,只需右键点击窗口,在弹出菜单中选择Close
Tab即可。

技巧六

在层次视图的搜索框中输入完整的脚本或组件名称,即可找到所有绑定了该脚本或组件的对象。或者在搜索框中输入t:加上某个类别如light,即可找到使用同类组件的对象。

技巧七

如果想在检视面板查看脚本的私有变量,只需点击Inspectore,在弹出菜单中选择Debug即可。

技巧八

如果希望游戏运行第一帧暂停,可以先点击暂停按钮,然后点击播放按钮,这样程序就会在Update函数执行一次后暂停。

技巧九

在使用Debug.Log函数时传递游戏对象给第二个参数,既可在点击控制面板的输出信息时自动定位到对应的游戏对象。

技巧十

可以借助编辑器自带的标记功能为脚本分类,在检视面板中点击脚本图标下方的小三角,即可为脚本设置颜色或选择图标。

上周为大家分享了两篇Unity小技巧介绍文章,不少开发者反应平时都忽视了这些技巧,原来编辑器已经默默帮大家实现了很多的快捷操作,今天继续为大家介绍第三篇。

技巧一

程序员们应该都知道,从项目视图点击右键创建的脚本会自动填充一些代码。其实这些自动填充的代码模板也是可以自定义的。

如果使用Mac,找到应用程序中的Unity.app,右键单击显示包内容,找到Resources>ScriptTemplates文件夹,然后选择你要创建模板的脚本类型,复制一份自己命名并编辑后保存,然后退出编辑器之后重新打开,再在项目视图中右键单击创建,就会出现刚刚添加的脚本类型。打开新建的脚本就可以看到自定义的模板代码。

如果使用Windows,则在ProgramFiles(x86)或ProgramFiles目录下的Unity/Data/Resources/ScriptTemplates文件夹下进行同样的操作即可。

技巧二

如果发现Unity打包安卓平台生成的apk体积过大,可以找到PlayerSettings中的安卓平台,默认情况下Device
Filter设定为FAT(ARMv7+x86),即同时打包32位和64位。如果只需发布到32位或64位平台则单独选择对应的一种即可。这样可以有效减小包体积。

技巧三

在项目视图的搜索框中输入资源名称,可以找到项目中所有具有该关键字的资源。将搜索类型换成Asset Store,则可以找到Asset
Store上所有拥有该关键字的资源,并按免费和付费分类。

技巧四

如果希望物体可以紧贴地面,但倾斜角度不好调整,这时可以在物体上添加Mesh
Collider和Rigidbody组件,然后点击运行,借助Unity的物体引擎来计算位置。待物体坠落到地面后复制所有物体,停止运行后删除原先的物体再粘贴运行时复制的内容,并删除所有物体上的Mesh
Collider和Rigidbody组件即可。

技巧五

如果需要拼合两个物体,可以自己分别在两个物体上创建立方体当作锚点,按住V键进入顶点选择模式,然后选择锚定立方体上需要拼合的两个顶点,即可将物体无缝拼接在一起。

如果需要旋转物体,可以按下Cmd/Ctrl键后用鼠标操作旋转,这样可以让物体每次固定旋转15度,最终转到正确位置。

技巧六

在场景中按住右键可以以视点为中心查看整个场景。如果希望物体始终保持在焦点处,可以在层次面板双击该物体,然后按住Alt键后用鼠标查看周围场景,并且物体一直位于焦点。

技巧七

如果脚本出现错误,Unity编辑器会因为检查到出错而无法进入运行模式,这时可以在项目视图中新建文件夹WebplayerTemplates,然后将出错的脚本拖入此文件夹下,所有位于该文件夹下的文件都会被识别为一般文件从而不会当作脚本被编译,这样就可以运行游戏了。

技巧八

如果你的鼠标的中键是可以按下的,可以按住鼠标中键来平移整个场景。或者将鼠标移至物体上后点击中键按钮,编辑器会以平移的方式将物体中心移动鼠标位置。

技巧九

当需要拖拽对象至检视面板时,常常会因为操作原因导致检视面板的内容已经改变了。这时可以点击检视面板右上方的锁图标,锁定检视面板,这样不论其它视图如何切换,检视面板都会显示固定内容。

技巧十

如果编辑2D游戏的图片时总是不小心点选到背景,可以在Layer里边设置哪些层是锁定或不可见的,将背景层锁定后就不能点选到它了,这样在编辑时就不会出现误操作。但锁定图层后还是可以从层次面板上选中背景来进行调整,这样就不用每次反复锁定和解锁图层。

前面已经为大家分享了三篇Unity小技巧相关的文章,涉及到编辑器操作及脚本等多方面的内容,掌握这些小技巧能大大提高我们的开发效率。今天为大家介绍第四篇。

技巧一

在float型的字段前添加范围属性声明如[Range(0, 10)],即可在检视面板中使用滑动条来设置该字段的值。

技巧二

对一组字段使用属性声明[Heaader(“XX”)],可以在检视面板中将字段进行分组。

技巧三

从Unity 5开始,新建场景默认会带有天空盒,可以利用Unity自带的天空盒材质来自定义天空盒颜色。

技巧四

如果常常不小心进入播放模式后编辑场景内容,其实可以依次点击菜单项Edit > Preferences > Colors >
Playmode设置编辑器在进入播放模式后的颜色,与正常模式下明显区分开来。

技巧五

将鼠标聚焦于编辑器内的某个窗口,按住Shift+空格键,可以将该窗口最大化至编辑器范围或者还原为原先大小。

技巧六

如果场景中某个物体与另一物体相对的位置、旋转及缩放均保持不变,那么在调整目标物体的方向时,可以先选中编辑器界面的小工具,按住Ctrl/Cmd+Shift键,这样在操作其中一个物体时,另一个也会随之变化。

技巧七

如果脚本中有变量名打错,需要批量修改,在Mac上可以按住Cmd+R键,Windows上按住F2键,然后选中需要修改的变量名进行批量修改。

技巧八

使用UI中的Mask组件时,需要指定一张图片作为遮罩对其子对象进行裁剪,取消勾选组件上的Show Mask
Graphic则可以在保持裁剪效果的同时隐藏Mask本身的图片。

技巧九

在设置所有颜色类型的属性时,可以将当前颜色值加入预设,该预设会保存在本地且可以在不同的工程间共用。

技巧十

你知道矩形工具也可以用来操作3D物体吗?

Unity中的Daydream开发与实例

本文将由Unity大中华区技术经理马瑞,为大家分享在Unity中进行Daydream平台的开发与实例。

2016年9月,我们发布了原生支持Daydream平台的Unity技术预览版。本文将帮助您了解开发Daydream应用所需的设备和软件并介绍安装过程,以便您可以立即开始创建Daydream平台的游戏,最后提供几个优秀的案例,为您带来更好的游戏设计思路。

入门

创建Daydream游戏之前,我们需要做开发前的软硬件准备,包括Daydream设备和Unity的Google VR技术预览版。

Daydream设备

Daydream设备包括一个Daydream
View头盔、控制器和支持Daydream的手机。真机测试游戏需要以上所有设备。如果您仅希望在Unity编辑器的运行模式下测试游戏,则任何类型的Android手机均可。我们会在下文关于编辑器中的VR模拟器一节中继续讨论这个问题。

Daydream View套装包括虚拟现实头盔和控制器。该套装可在线购买。Cardboard和Daydream的最大区别是:Daydream
头盔由布料制造,质量更好,并配备了NFC芯片。

支持Daydream的手机

目前有五类手机可用:

Pixel (Pixel, Pixel XL)

Moto Z (Moto Z, Moto Z Droid, Moto Z Force Droid)

支持Daydream的手机正在不断增加。有关详细信息,您可以查看Google官方网站。如果您没有此列表中的任何手机,也可以使用Daydream开发套件与Nexus
6P手机,但Nexus 6P的散热性能不及支持Daydream的手机。

Unity的Google VR技术预览版

创建Daydream的Build需要使用Unity的Google VR技术预览版。您可以在Unity官网下载,OS
X和Windows版本都有。它包含基于Unity 5.4.2版本的自定义编辑器和Android Player。

Google VR SDK

Google VR SDK是开发Daydream所必需的。SDK提供原生集成的Google VR,还包含一些其它功能,详情见下文。

SDK内容

原生集成的功能:

头部跟踪

并排立体渲染

检测用户与系统的交互

针对特定头戴设备的自动立体渲染配置

VR头盔镜头的失真校正

对齐标记 - 当您将手机插入到头盔中时,帮助您将手机屏幕与镜头对齐

自动陀螺仪运动检测

附加功能:

Daydream控制器支持

空间音频渲染

一个简单取景器(reticle)预制件和基于凝视的用户交互相关脚本

在Unity编辑器的运行模式下进行VR模拟,您可以使用鼠标和Alt / Ctrl键平移或旋转VR摄像头

“Headset Demo”场景 - 演示一个简单的Cardboard游戏

“Controller Demo”场景 - 演示与Daydream控制器的集成

显示FPS的预制件

安装指南

下载GoogleVR SDK以及支持Daydream的Unity预览版。打开Unity,建立一个新的3D项目,然后将SDK导入项目。

在Player Settings下的Android选项卡下,单击”Virtual Reality
Support”并选择Daydream平台。在Minimum API Level选择Android 7.0 Nougat或更新的版本。

经过以上的步骤,您的Daydream开发环境基本就搭建完毕了。

两个演示场景

  1. 控制器演示:ControllerDemo.asset

本场景展示了Daydream控制器的简单使用。 在Unity编辑器中,您可以使用Android手机与控制器仿真来模拟Daydream控制器。

  1. 头盔演示:DemoScene.asset

本场景展示了简单的Cardboard或Daydream头盔行为。可以通过按下“Alt”键并移动鼠标在Unity编辑器中移动摄像机,
您也可以通过按下“Ctrl”键并移动鼠标来旋转摄像机。

控制器

Cardboad和Daydream的主要区别是Daydream有一个控制器,控制器使用户体验更类似于HTC Vive或者Oculus Rift。

_ _

仿真的控制器

控制器由三个区域组成:

TouchPad - 检测触摸区域上是否有手指,并检查手指的位置。 TouchPad也可以点击。

App按钮 - TouchPad下方的按钮。

Home按钮 - 为Android系统保留的按钮。

可以通过场景中的GvrController类来获得有关控制器的输入和状态的信息。此类通过访问此单例的静态属性来提供连接状态、方向、陀螺仪读数、加速度、触摸板和按钮状态。

编辑器中的VR模拟器

因为Daydream平台是最近才发布的,所以您可能无法及时获得必需的硬件,在Unity编辑器的运行模式下测试游戏也是个不错的选择。在这种情况下,VR模拟器非常有用。谷歌提供一个APP,可以安装在所有类型的Android手机,它会模仿真实的Daydream控制器的行为。

使用控制器仿真可能有一点不便,就是不能触摸真的控制器。谷歌提供了解决方案: 可以下载并打印一个屏幕覆盖层,包括letter,
A4和SVG三种格式。打印好后将相应按键的位置挖洞,并放在手机上面,就可以获得更真实的体验。

开发实例

最好的学习方法就是查看示例。 Google VR的GitHub代码库包含4个非常有用的示例,可帮助您全面了解如何使用新的Google VR:

Daydream Labs Controller Playground

这是一个结合了15个小游戏的大合集,该项目供了许多不错的例子,告诉用户如何充分利用控制器与VR头盔。介绍一些VR游戏中控制器常用的使用方法。

源码下载地址:

https://github.com/googlevr/gvr-unity-
sdk/tree/master/Samples/DaydreamLabsControllerPlayground

Cardboard Design Lab

如果您是VR初学者,那么可以从该示例开始。 在整个项目中,您将学习从设计VR的基础到创建沉浸式环境等VR设计相关内容。

源码下载地址:

https://github.com/googlevr/gvr-unity-
sdk/tree/master/Samples/CardboardDesignLab

Castle Defense

这是一个简单的VR手游示例。

源码下载地址:

https://github.com/googlevr/gvr-unity-sdk/tree/master/Samples/CastleDefense

Spatial Audio

这个项目将帮助您了解在VR项目中实现真实音频效果的最佳做法。它用到了Google VR的音频渲染功能。

源码下载地址:

https://github.com/googlevr/gvr-unity-sdk/tree/master/Samples/CastleDefense

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×