如何在Unity中利用nReal制作AR应用

2019-09-11 09:05:24   来源:新浪VR

  nReal眼镜是今年最有趣的增强现实小工具之一。它们已经在CES上展示过了,几个月前笔者在北京亲自试用过,在我的评测中,我强调了它们不仅非常轻、时尚,而且还能提供非常明亮的全息视图。

  如果你和我一样是一名开发人员,并且像我一样对这些设备感兴趣,你可能会问自己这样的问题:“我如何为nReal眼镜开发?”,“已经可以为它们开发了吗?”、“SDK在哪里?”、“有模拟器吗?”

  幸运的是,有一个你最喜欢的ghost可以帮助你。在本文中,您可能会找到以上所有问题的答案:我将指导您为nReal眼镜(典型的灰色立方体!)开发一个小的Unity体验,并通过在编辑器中模拟它来测试它,感谢nReal的“模拟器”。你准备好了吗?

  如何在Unity中开始使用nReal开发(视频教程)

  •   我拍了一段很长的视频给你看:
  •   如何安装开发nReal眼镜的先决条件;
  •   如何下载SDK并将其导入Unity;
  •   SDK的当前状态是什么(关于它的一点评论);
  •   如何配置Unity来构建nReal眼镜;
  •   如何创建您的第一个Hello World应用程序;
  •   什么是nReal“模拟器”以及如何使用它。

  这是很多主题:你需要知道在Unity中开始使用nReal开发所需要的所有内容。。。。。。你可以在一个视频中找到它们,你也可以在下面看到它们!

  如何在Unity(文本教程)中开始nReal开发(和模拟器)

  当然,作为一个热爱阅读和写作的人,我不得不提供上述教程的文本版本。所以,如果你不喜欢视频,你可以继续阅读,我将以书面形式提供相同的信息。

  必备软件安装

  为了能够为nReal眼镜开发,你必须在你的系统上安装这个软件:

  •   Unity(至少版本2018.2);
  •   Android SDK(至少7.0版)。
  •   当然,你还需要下载nReal Unity SDK。
  •   让我简要地向您展示如何下载和安装所有这些东西。

  Unity

  如果你还没有安装Unity,直接在Unity网站上下载。如果你正在自己做测试,选择你想尝试的个人版,你可以永远免费使用,直到你(或你的公司)每年赚超过10万。

  就我个人而言,我仍然在使用Unity 2018.3.6f1,因为它是我正在为我的咨询公司开发的其他项目,但实际上,nReal建议使用Unity 2018.2.x。我认为如果你下载了最新的版本,也就是2019.2,你应该也没有问题。在任何情况下,您都可以直接从Unity Hub或这个页面下载您想要的特定版本的Unity。

  安装Unity时,请确保安装Android Build Support。

  正如Ivan Berg让我注意到的,您可以在选择Android Build Support之后,在Unity安装过程中直接安装为nReal glasses开发的Android SDK。如果发生这种情况,您可以跳过下面的大部分内容,我将在这里向您展示如何安装Android SDK。

  Android SDK

  安装Android SDK最简单的方法是下载并安装Android Studio。Android Studio是谷歌用来创建Android应用程序的IDE,通过安装它,您还可以下载和安装Android开发所需的所有工具。

  我不会在这里详细介绍细节,因为它只需要一个单独的指南。无论如何,最重要的是安装Android Studio从其网站下载它。安装完成后,必须使用其IDE安装所需的Android SDK,在本例中为7.0版。打开Android Studio并选择Tools-> Android  - > SDK Manager以打开SDK Manager。在其中,您可以安装Android开发所需的SDK。

  我建议安装Android 4.4 (SDK API level 19)和Android 7.0 (SDK API level 24)。同时安装各种SDK工具和平台工具。在此之后,将目录\platform-tools放入PATH环境变量中,因为这可能有助于您在将来获得nReal glasses时使用ADB调试和录制视频。如果您安装了Android Studio而没有指定自定义目录,可以在Windows pc中的“C:\Users\\appdata\local\ Android \sdk”中找到。

  nReal SDK

  在下载之前,您必须通过单击网页右上角的按钮进行注册。 您必须提供您的姓名,电子邮件并回答一些分析问题。 注册后,忽略您将找到的“我的项目”页面(将项目提交给nReal以便他们可以为您提供devkit非常有用,因此它实际上非常有趣。。。。。。但它对于此目的没有用 创建您的第一个AR应用程序),并返回下载页面,选择您要下载的SDK版本(编写本文时为1.1 Beta),然后同意条件条款并点击下载按钮。

  您将下载ZIP文件。 解压缩它,你会发现一个Unity Package文件,它代表我们将在Unity中使用的实际SDK。

  我们导入SDK吧!

  是时候开始Unity了。

  在Unity startup中,选择你想要创建一个新项目(有一个写着“new”的按钮和一张白纸上的图标,里面有一个“+”),并按照你的意愿将其命名,例如,“nRealMagicTest”。它必须是一个3D项目(它应该是默认选项)。

  选择您喜欢的盘符创建一个文件夹。请记住,Unity将在这个文件夹中创建一个带有项目名称的子文件夹,它将包含项目本身的所有元素。

  当你准备好了,点击“创建项目”。

  当Unity界面弹出时,我们必须导入nReal插件。选择Assets -> Import Package -> Custom Package…并选择我们从nReal网站下载的Unity Package。Unity将检查包的内容,然后询问您要导入什么。选中所有内容,勇敢地点击导入按钮。

  此时,在编译了一些资源之后,您将在NRSDK文件夹中找到nReal SDK的所有内容。

  我对它的印象

  在研究了SDK并进行了尝试之后,我的第一印象是复杂的。

  在较高的级别上,SDK组织得非常好,所有各种元素都整齐划分为文件夹。开发增强型应用所需的所有高级元素:用于眼镜的专用相机,输入管理,预制件以及用于标记和无标记增强现实的脚本。它还有一个“模拟器”,我们很快就会看到。因此,它具有潜力,因为它结构良好。

  但与此同时,它也有各种各样的错误:正如我在视频中所展示的那样,有许多拼写错误的东西:“Debuger”而不是“Debugger”,“UNITY_DEITOR”而不是“UNITY_EDITOR”等。。。奇怪的是,各种脚本的两个不同的命名空间。。。。。。还有一个脚本仍然报告谷歌的版权(??)。有些评论采用Doxygen格式,没有人在C#中使用。用于在图像标记上定位东西的测试脚本被窃听。然后,每个文件的开始注释都值得一提:

  “NRSDK是分布式的,希望它将是有用的”。这有点有趣…我想象中国开发者花了无数的时间去开发它,然后说:“呃,我们整天都在这里开发SDK,而不是在外面玩…谁知道它是否有用,或者我们只是在浪费时间…”拜托,伙计们,至少我在用它,所以你们做的很有用,开心点。您可以更改“nrsdk是分布式的”中的注释,因为它至少对Tony有用。

  让我们制作第一个nReal应用程序

  是时候制作我们的第一个应用程序了!

  1. 你应该在Unity为你创建的“SampleScene”中;
  2. 从场景中删除“主摄像头”,方法是单击它并按下CANC键;
  3. 在Project窗口中,转到Assets \ NRSDK \ Prefabs并将NRCameraRig预制件拖入场景。这将处理nReal眼镜的AR相机;
  4. 拖动到场景中的NRInput预制件,将处理来自设备的输入;
  5. 现在转到Assets \ NRSDK \ Emulator \ Prefabs并将NRTrackableImageTarget prefab拖入场景。这个预制件可以让你将增强现实元素放在图像标记上(你通常使用Vuforia做什么);
  6. 如果需要,请在场景中选择NRTrackableImageTarget元素,然后在检查器中查找脚本NR可跟踪图像行为。在其中,有一个名为“图像目标”的下拉列表,您可以在其中选择要跟踪的图像。 nReal为您提供3个标准的:您也可以添加您的,但这不是本教程的一部分;
  7. 更改NRTrackableImageTarget元素的位置。在Transform行为中,将位置设置为X:0,Y:0,Z:2;
  8. 在Hierarchy窗口中,使用鼠标右键单击,然后选择Create - > 3D Object - > Cube;
  9. 选择刚刚创建的立方体,在检查器中,将其比例更改为X:0.25,Y:0.25,Z:0.25以使其更小;
  10. 创建一个新的空游戏对象:创建 - >创建空;
  11. 在Inspector中,单击“添加组件”,然后在搜索文本框中写入“Test”,然后从找到的脚本中选择TrackableFoundTest。 TrackableTest是nReal提供的示例脚本(不是生产中可以使用的东西!),它将3D对象放到图像标记上,并且仅在标记可见时才显示3D对象。这正是我们想要的基于标记的AR;
  12. 我们必须告诉TrackableTest什么是图像标记以及要在其上显示的3D对象是什么。将之前创建的Cube对象拖到TrackableTest的“Obj”属性上。然后将我们之前创建的“NRTrackableImageTarget”拖到“Observer”属性上。

  至此,我们完成了!实际上,提供的TrackableTest脚本会有漏洞(至少在编辑器中工作时)。因此,双击它并用以下代码替换所有代码:

  注意,“+ new Vector3(0, +0.125f, 0)”被添加到使我们的立方体(即高0.25)完美地位于标记上。我提供给你的这段代码只是一个快速的测试,它不是你可以用于所有AR应用程序的最终解决方案。

  在上面提供的代码的Update方法中(第20-21行),我还添加了两行代码,每当用户按下nReal oreo控制器的触发按钮时,这两行代码就会使立方体变色。访问nReal中的输入与查询NRInput类一样简单。

  现在,我们已经开发了一个应用程序,它可以在增强现实的图像上显示一个立方体……现在是测试它的时候了!

  完成配置Unity

  在进行测试之前,我们必须正确配置Unity以构建nReal:

  1. 在菜单中选择File - > Build Settings 。。。;
  2. 在构建设置窗口的上部场景中,选择“已删除”条目(如果有),然后按键盘上的Canc将其删除;
  3. 单击“添加打开场景”按钮,将刚刚创建的惊人立方体场景添加到项目的构建中;
  4. 在Platform选项卡中,选择Android,然后单击Switch Platform。这需要一段时间;
  5. Unity完成后,单击窗口左下角的“播放器设置。。。”按钮。这将打开Unity主窗口的Inspector中的Player Settings(右侧);
  6. 根据需要在播放器设置的上半部分更改公司名称和产品名称;
  7. 向下滚动并展开“决议和演示”部分;
  8. 使用Nreal Light计算单元时,将Orientation - > Default Orientation设置为“Landscape Left”,使用智能手机时设置为“Portrait”。如果您没有设备,请选择Landscape Left;
  9. 向下滚动并展开“其他设置”部分;
  10. 在“标识”部分中,更改“包名称”以使其与您的组织保持一致(例如,将其命名为com.yourcompanyname.nRealMagicTest);
  11. 始终在标识部分,将最低API级别更改为4.4 KitKat,将目标API级别更改为7.0牛轧糖;
  12. 在“渲染”部分中,禁用“多线程渲染”;
  13. 在Configuration部分中,将Write Permissions设置为“External(SDCard)”;
  14. 现在在Unity菜单中,选择编辑 - >项目设置。。。 - >质量,然后在弹出的窗口中,转到设置的末尾并将V同步计数设置为不同步。

  好的,现在我们的项目已经准备好了! 在Build Settings窗口中,您可以点击“Build and Run”并在nReal设备上尝试我们的神奇立方体!

  nReal“模拟器”

  因为在撰写本文时我们中没有人真正拥有nReal设备。。。如何测试我们梦幻般的立方体应用程序?我们使用“模拟器”,它允许您从Unity内部模拟用户头部的移动和控制器上的输入,这样您就可以在没有设备的情况下实际测试应用程序,而无需离开Unity!

  这意味着您只需点击Unity中的“播放”按钮(Unity窗口上部的那个),然后直接在“游戏”窗口中测试您的应用程序。点击“播放”后,您可以:

  • 使用WASD模拟用户头部的运动;
  • 使用SPACE +鼠标移动来模拟用户头部的旋转;
  • 使用SHIFT +鼠标移动来模拟nReal控制器的旋转(请记住nReal控制器是3DOF控制器);
  • 单击鼠标左键以模拟控制器触发器的单击;
  • 单击鼠标右键以模拟控制器主页按钮的压力;
  • 单击鼠标滚轮按钮以模拟控制器的App按钮的压力;
  • 使用箭头键模拟在控制器的触摸板上滑动。

  我对“模拟器”的看法

  nReal在添加这个“模拟器”方面做得很好,因为它允许我们直接在编辑器中尝试应用程序,而无需将其部署在设备上。 通过这种方式,开发时间变得更快(在Android设备上进行部署非常简单),并且还可以在没有设备的情况下开始为nReal开发。 有可能模拟设备和控制器是很好的。

  无论如何,我对此也有一些批评:

  • 该名称具有误导性:它不是模拟器,这就是为什么我一直把它写在引号内。 它可以帮助您进行开发,但真正的模拟器将是一个Android虚拟机,可以模拟设备的操作系统,您还可以在其中模拟设备在各个房间内的行为。 所有最流行的AR眼镜(HoloLens和Magic Leap One)都有这种仿真器,因为它需要实际测试应用程序。 在Unity内部进行测试并没有给出关于构建应用程序时会发生什么的真实反馈(例如,当UNITY_EDITOR部分没有被编译时);
  • 键的选择与Unity内的所有其他仿真(例如Vive Focus Plus,HoloLens之一等)不同。 我希望对未来进行某种标准化。

  测试时间!

  好了,教程结束了……现在是测试我们的应用程序的时候了!

  按Unity中的“播放”按钮,然后使用“模拟器”移动相机,直到出现您构建的图像,您应该看到立方体出现在它上面! 如果您使图像从玻璃视野中消失,立方体应该消失! 按下控制器触发按钮,立方体将改变颜色。。。。。。这不是有史以来最好的AR应用吗?

  其他参考文献

  如果您想深入了解nReal眼镜的开发,还需要一些其他参考:

  • Android快速入门指南:https://developer.nreal.ai/develop/unity/android-quickstart
  • nReal Emulator文档:https://developer.nreal.ai/develop/unity/emulator
  • NRSDK简介:https://developer.nreal.ai/develop/discover/introduction-nrsdk
  • 我的朋友Nikk Mitchell关于在真实的nReal设备上开发Unity应用程序的教程:https://www.youtube.com/watch?v = aFQgfQoh8T4
  • 您还可以查看插件的Assets \ NRSDK \ Demos文件夹中的示例场景。 观看演示,您可以了解有关此设备开发的新内容。

  如果您想加入nReal社区:

  • Reddit:http://reddit.com/r/nreal
  • Slack:http://nreal-dev.slack.com
  • Discord:http://discordapp.com/invite/7kemw5
新浪声明:新浪网登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
精彩推荐
相关新闻

Nreal回应Magic Leap诉讼指控 否认存在欺诈以及不正当竞争行为

上周,我们报道了AR公司Magic Leap对Nreal提起诉讼的事件,6月26日这件事有了新的进展。

相关Oculus推VRC Validator审查工具,提交应用前可自检
2019-06-28 09:10:21 来自:热点新闻

Nreal发布全新战略合作,携手共建5G新生态

  6月26日,“2019MWC上海”大会隆重开幕,众多科技创新成果齐聚一堂,引发业内外高度关注。在“5G+XR战略先锋合作启动仪式”上...

相关: 暂无...
2019-06-27 10:00:50 来自:快讯专栏

Nreal发布全新战略合作 共同推进5G XR产品成熟落地

  2019年6月26日(中国,上海)——在“5G+XR战略先锋合作启动仪式”上,Nreal宣布与多个生态合作伙伴达成合作,包括中兴手机、...

相关: 暂无...
2019-06-26 13:48:27 来自:快讯专栏

nreal light消费者版发布 售价499美元

今日,nreal在美国AWE上发布了旗下最新产品nreal light消费者版的智能眼镜,同时公开发售开发者版本。

相关nreal light联手爱奇艺 将共同探索智能娱乐
2019-05-31 08:17:35 来自:前沿数码

热门推荐

HOT RECOMMEND

新浪VR简介 | 论坛社区 | 网站合作 | 广告服务 | 联系我们 | 免责声明 | 招聘信息

Copyright © 1996-2015 SINA Corporation, All Rights Reserved 京ICP证000007  京网文【2017】10231-1157号

北京幻世新科网络科技有限公司 版权所有