如何做一个 unity easy ar 的unity离线安装包包

1768人阅读
& & & & 最近刚开始接触AR技术,结合u3d,算是对增强现实应用入个门。网上的例子不胜枚举,但有些浅尝辄止,根据自己几天来的摸索,毕竟新的技术源自国外,翻起晦涩的外文,一步一个脚印终于爬了出来。先上个史记效果图先,我取名之《鹿君下山》。
接下来说说步骤:
一、下载安装Unity Editor开发工具,我这里用的版本是最新的Unity 5.1.1f1 (32-bit)(个人注册免费版),因为用了64位发现没走通程序,换了32位(注:操作系统是64位win7),相信64位的u3d同样是可以走通的(这里不再赘述安装过程)。
二、在高通服务器注册一个账号,并通过上传图片创建自己的识别图数据,具体网址:& &ps:密码可以有大小写和字母组成。
1.选择target manager
2.选择create database创建你自己的识别图数据
3.点选进去之后选add target
4.生成之后就可以下载了图片识别数据了。注意:自从vuforiaSDK升级到4.x之后,license key要加入那个一长串的序列值而不要去引入短小的那串,因为它是适用于4.0以下的哈。
5.导入后缀名为unitypackage的资源包之后,就可以开始做AR应用啦~(高通是通过在图片上注册识别点来进行识别的,所以识别度与颜色没有关系。图片越复杂识别点越多,识别效果也就越好,所以相似的图片可能识别点分布相近导致识别效果差,上传的图片最好有四颗星这样才美美哒)
三、申请license key,详细可以深入研究,主要有for device跟for cloud,云服务则是通过公钥私钥的形式进行数据传递 ,费用也是有启动费(免费)、一次性付费(499元)、云起价(99美元)
四、对上面两点的一个补充, 主要也是讲明device跟cloud的一点异同。
紧接着,我选了device之后,重复第二点的步骤,做了如下图:
五颗星当然最好,点击 Hide Features就出来这张识别点的麋鹿,是不是很简单呢?Let us try!
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:37527次
排名:千里之外
原创:33篇
转载:13篇
(1)(1)(2)(4)(2)(1)(1)(1)(5)(2)(7)(3)(6)(3)(4)(3)扫一扫,访问微社区
后使用快捷导航没有帐号?
签到成功!您今天第{todayrank}个签到,签到排名竞争激烈,记得每天都来签到哦!已连续签到:{constant}天,累计签到:{days}天
当前位置: &
查看: 1917|回复: 4
怎样用Unity和Vuforia来制作一个AR Android App
7排名<font color="#FF昨日变化4主题帖子积分
在线时间63 小时
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
才可以下载或查看,没有帐号?
虚拟现实和增强现实最近得到了很多的关注,有很多很酷的头戴增强设备(HMDs)像Oculus,Hololens,HTC vive,FOVE,和Magic Leap已经出现。在这些HDMs中最简单和最便宜的是Google Cardboard,并且已经有超过一万用户在全世界。
Patrick(人名)已经在最近发布了教程Building Google Cardboard AR Apps in the Unity。在接下来的两个教程中,我们将会Unity开发一个基本平台的增强现实应用,而且我们还会用到一个增强现实SDK叫Vuforia。下面的这些软件和对应的版本将会用在接下来的版本Vuforia 5Unity 3D 5.xCardboard SDK version 0.5.x (将会用在下一个教程)Android Studio and SDK tools (这些需要安装并且建立在unity来工作. 更多的信息可以被发现在 “Integrating with Unity” 这个部分中)简要的总结:这些方法将会用来制作增强现实Apps.我们将会使用一个标签基于这个方法来使我们的ARapp在移动设备。在下一个教程中,我们将会添加Cardboard支持。 标记和识图 — 这是一个图片将会被识别通过和捕捉通过移动设备上的摄像机,这个动作是增强部分的开端。第一次识别,内容会通过程序显示出来。 这个教程大体上有三个部分:1 用Vuforia开始2 在Unity中整合3&&Demo(有趣的部分)用Vuforia开始要开始工作,我们讲需要去Vuforia’s Developer Portal 并且创建一个账户。第一次登陆进去,我们可以进行一个叫“Develop”的程序包。要使Vuforia与Unity结合,我们需要做两件事:1创建一个许可代码为我们的软件一个许可代码是一个确定的id可以用来确认创建一个app在Unity中可以使用Vuforia。要创建一个许可代码,我们需要完全的通过“develop&&License Manager”然后选择“Add License Key”我们将会进入一个提示页像这样。
Add License Key.png (167.06 KB, 下载次数: 4)
10:12 上传
然后我们填完信息,选择“Nxet”然后点“Confirm”。然后会引导我们回到“License Manager”页面然后会看到app的名字会显示出来。
License Key Created.png (65.68 KB, 下载次数: 0)
10:14 上传
我们选择“ARDemo”,我们会得到一个许可代码,这个代码我们之后会在Unity中使用。
License Key code (1).png (215.76 KB, 下载次数: 0)
10:15 上传
创建数据库和图片触发下一步我们会设置一个图片作为触发器。我们通过“Develop&&Target Manager”然后选择“Add Database”然后填写下面的信息
Create Database.png (44.19 KB, 下载次数: 6)
10:17 上传
接下来,我们将会添加图片在最新的我们的数据库中,然后,我们选择数据库然后点击“Add Target”Vuforia supports 各种各样不同样式的触发器像,单一图片,圆筒形,方形,3d图片等。为了这个教程,我们将会使用单一图片触发器和stones_hires图片,任何任意范围的阈值可以被选择例如高度,50
Add Target.png (155.5 KB, 下载次数: 8)
10:18 上传
经过一个短暂的上传时间,这个触发器将会被添加然后我们会有一个“Download Dataset”选项一个非常重要的注意事项是这里有一个“Rating”一个好的Rating意味着它可以被用来跟踪,反之一个坏的Rating意味着这个图片没有足够有效的点(追踪点可以是这个图片边缘,角落等等,只要可以用来追踪在图片进程中)。
Rating (1).png (67.58 KB, 下载次数: 6)
10:21 上传
我们同样可以查看我们图片的特征点通过选择“stones_hires&&Show feature”
Feature Points.png (1.79 MB, 下载次数: 3)
10:22 上传
然我们下载数据组通过选择“Download Dataset&&Unity Editor”。
Create Database.png (44.19 KB, 下载次数: 0)
10:22 上传
这将生成一个Unity Package是持续可跟踪的信息关于这个可跟踪的数据库整合UnityUnity是一个强大的并且广泛使用的,最近,它可以作为新兴的游戏引擎为HMDs,这个教程呈现非常基础的Unity知识,你可以找到一些有趣的unity教程在这里。 让我们开始,建立一个新的Unity工程命名为“ARDemo”。
Project Created.png (62.38 KB, 下载次数: 6)
10:23 上传
下一步我们将会导入Vuforia Unity packages,一个相应的代码 我们的数据库是(Image_Targets.unitypackage)与之相对的是Vuforia 5 SDK 在Unity上(vuforia-unity-5-0-5.unitypackage) 可以在这里被找到。
Packages Imported.png (56.49 KB, 下载次数: 3)
10:24 上传
是时候添加一些模型在我们的项目中,让我们打开从“Window&&Asset Store”这里我们可以找到一个武士的模型名字叫做“Red Samurai ”免费的,我们将会载入到我们的Unity Account 来下载和载入我们的模型。
Red Samurai.png (882.26 KB, 下载次数: 3)
10:25 上传
载入完成后,我们的Assets文件夹将会如下图这样
Samurai Imported.png (60.13 KB, 下载次数: 5)
10:25 上传
下一步,我们将会在我们的场景中添加一个AR摄像机“ARCamera”是一个预制格式的AR摄像机来自于Vuforia而且非常简单作为一个标准摄像机,我们可以从这个菜单之下找到它“Assets&&Vuforia&&Prefabs”并把它拖到我们的场景当中设置坐标为(0,0,0),然后删除场景中的主摄像机,这样我们就有一个AR摄像机了。为了让我们的AR摄像机运行起来,我们将要添加一个APP许可代码,在Inspector面板中,我们必须复制正确的许可代码我们之前从Vuforia’s License Manager获得的。
AR Camera Added.png (327.54 KB, 下载次数: 4)
10:24 上传
这个时候,如果我们点击play按钮在Unity Editor中,我们会看到我们的WebCam被提供在游戏窗口中。接下来,我们添加一个图片触发器在我们的场景中,我们可以在下面的菜单中找到“Assets&&Vuforia&&Prefabs”.然后添加到场景中坐标(0,50,0),现在在Inspector面板中,我们队图片触发器做成一些改变,在Image&&Target Behaviour(script)我们将“Data Set ”改成“Image Target”然后“Image Target”那一栏改成“stones_hires”.这些做完以后,叫做stone_hires的图片就会出现在我们的场景视窗中。下一步,我们拖动我们的武士模型到场景中,她可以被找到在“Assets&&prefab&&samuzai”为了这个武士模型可以出现通过图片触发器,它需要被放置在Image Target的子集中(也可以通过拖动武士模型预设到Hierarchy面板)这样,无论何时图片触发器都可以被手机的摄像机检测到,所有target的子集都会被检测出来,武士模型的大小需要改成x=0.5,y=0.5,z=0.5。
Samurai Added.png (286.59 KB, 下载次数: 5)
10:25 上传
现在我们需要激活Image_Targets 数据库,这个可以被完成通过选为“AR摄像机”并且在Inspector面板在“Data Load Behaviour(Script)”我们需要选择“Load Data Set Image_Target”然后选择激活。
Image Bundle Identifier.png (77.25 KB, 下载次数: 3)
10:24 上传
现在,我们选择运行,并且标记一个打印图片以外的点通过我们的webcam,我们可以看见一个武士在上面,我们还可以通过“attack ”可以用来拖延播放动画。我们几乎快要完成啦,让我们保存一下场景,命名为“ARDemo”最后一步是建立一个工程为Android。我们需要进入“File&&Build settings”我们需要添加一个当前的场景通过选择“Add Current”然后,我们选择平台“Android”这里,我们有一个多重选项。 ·Google Android Project:这个将允许我们导出当前Unity的工程到Android Studio,这样他就可以被编辑,并且可以添加更多的组件。·Developing Build:可以将分析器的更具功能性,也可以选择自动当前分析器和是代码调试选项可行。我们将会做一个简单发布,如图所示
Build Image.png (86.28 KB, 下载次数: 6)
10:24 上传
之后运行Build按钮,我们需要做一点点改变在“Player Settings”选项在Inspector 面板中,这里,公司名字需要更改,e.g改为“SitePoint”。下一步,我们需要改变Bundle Identifier 在“Other Settings”输入“com.SitePoint.ARDemo”。
Company Name.png (38.4 KB, 下载次数: 4)
10:24 上传
现在我们可以运行“Build and Run”其他的改变像Minimum API Level etc.可以作为每一个的额外条件。我们将需要连接一个Android手机设备通过无线usb或者可用的usb来排除bug。我们也需要建立一个Android开发环境,之前,我们可以测试一下我们的游戏在设备上,这些包括下载和安装Android SDK 在不同的平台上,以及添加一些物理的设备到我们系统中(这些完成会有一些不同在取决于我们是在windows还是mac上)因为这些复杂的进程,一个基础的外部框架被必须完成之前我们可以运行这些程序在Android设备或者Android模拟器上通过提供的unity文件,然后,一点点细节指导可以在Patrick的第一部分VR教程中。最后的结果(Demo)最后,有趣和奇妙的部分。这一次,app被发布和运行在Android我们显示出移动设备的中的标记物以及观看动画,这是动画怎么在我的Nexus 5中运行
图片1.png (259.24 KB, 下载次数: 3)
10:37 上传
这个AR app可以工作在这个石头背景的黑白照片上,因为特征仍然可以被识别出来(他们通常会取决于别的捕捉原因,像倾斜度,etc。替换颜色)。总结有很多很酷的东西可以用unity和 Vuforia做出来,在这个教程中,我们做了一个很简单的AR app并带有动画,没有写一个代码!跟随着教程,我们将会添加cardboard支持,和一些有趣的Vuforia特写代码到我们的app中。如果你被困住了在其中的任何一点或者想要看完整的代码,你可以在Github上找到,你只需要进入Vuforia应用许可代码来开发app。如果你想要下载和测试你可以在这里找到apk如果你想做一些在教程之外酷的东西,或者有任何和反馈,留下你的评论在评论区。 原文作者:Srinivas Rao
原文链接:/how-to-build-an-ar--app-with-vuforia-and-unity/》》《《& &&&蛮牛译林军福利多多哦!file:///C:\Users\suofe\AppData\Local\Temp\ksohtml\wps571E.tmp.jpg
本文由蛮牛译员:neosuo独家翻译,如有问题,请及时联系,除合作媒体及合作伙伴外,禁止转载。
(167.06 KB, 下载次数: 2)
10:24 上传
(155.5 KB, 下载次数: 7)
10:24 上传
(327.54 KB, 下载次数: 8)
10:24 上传
(44.19 KB, 下载次数: 6)
10:24 上传
(98.56 KB, 下载次数: 3)
10:24 上传
(60.79 KB, 下载次数: 12)
10:24 上传
(1.79 MB, 下载次数: 5)
10:24 上传
(1.79 MB, 下载次数: 3)
10:24 上传
(36.05 KB, 下载次数: 3)
10:24 上传
(215.76 KB, 下载次数: 3)
10:24 上传
(215.76 KB, 下载次数: 7)
10:24 上传
(65.68 KB, 下载次数: 4)
10:24 上传
(171.42 KB, 下载次数: 0)
10:24 上传
(62.38 KB, 下载次数: 10)
10:24 上传
(67.58 KB, 下载次数: 3)
10:24 上传
(67.58 KB, 下载次数: 3)
10:24 上传
(743.8 KB, 下载次数: 3)
10:25 上传
组图打开中,请稍候......
每日推荐:
3266/300排名<font color="#FF昨日变化3主题帖子积分
偶尔光临, 积分 266, 距离下一级还需 34 积分
偶尔光临, 积分 266, 距离下一级还需 34 积分
在线时间103 小时
不用插件,能实现背景透明不?
每日推荐:
18/50主题帖子积分
注册看看, 积分 8, 距离下一级还需 42 积分
注册看看, 积分 8, 距离下一级还需 42 积分
在线时间6 小时
每日推荐:
5746/1000排名<font color="#FF昨日变化1主题帖子积分
熟悉之中, 积分 746, 距离下一级还需 254 积分
熟悉之中, 积分 746, 距离下一级还需 254 积分
在线时间211 小时
不错的分享。。。。。。。。。
每日推荐:
251/150排名<font color="#FF昨日变化16主题帖子积分
初来乍到, 积分 51, 距离下一级还需 99 积分
初来乍到, 积分 51, 距离下一级还需 99 积分
在线时间13 小时
每日推荐:unity3D AR涂涂乐制作浅谈 - 博客频道 - CSDN.NET
Bě9oniǎ 的博客
记录点滴事情...回味成长历程
分类:Unity3D学习日记AR技术学习
& &AR为现在是虚拟现实较为火爆的一个技术,其中有个比较炫酷的就是AR涂涂乐的玩法,这个技术可以把扫描到的图片上的纹理 粘贴到模型上实现为模型上色的功能,但是我们需要怎么才能实现其功能呢?大体的方法是将扫描到图片保存成纹理,在将纹理保存到模型的材质球上然后实现上色的功能。
& &那么有什么方式可以实现这个功能呢?我在参考的EsayAR的Demo以及在网上查找的方法基本都是采用通过Shader进行图片的处理,因此在这样的条件下,若有多个模型的UV张开图就要写不同的Shader进行进行图片的处理,这样的方式并不方便。那么有没有方法可以不写Shader来实现图片上UV展开图的颜色准确粘贴到模型上呢?于是我想为什么不可以在屏幕上设置一个扫描对准框,然后将扫描框的的内容保存成纹理呢?
& 那么我先配置好AR的环境,这里我用EsayAR来制作AR涂涂乐的效果,这里为了方便我直接用EsayAR Coloring3D的例子来做这个效果吧!我们先去创建一个空的Gameobject将EsayAR例子中的EasyImageTargetBehaviour类拖入空的GameObject里然后我们将其改名为ImageTargetNamecard,设置好我们的识别图片红色框是图片名字,黄色框是图片放置的位置,记得要Storage属性要设置成Assets,如下图所示:
& &然后将模型拖入到刚刚创建的ImageTargetNamecard下这样我们就做好了识别图以及模型,摆放的模型要注意的是这个模型必须是要有纹理展开图的模型,然后作为模型的识别图的图片必须对是对应着其纹理的展开的图片,例子里面我是使用一个展开过纹理的Cube模型,其中色块的位置正是UV展开的位置,展开的纹理图片如图下图所示:
& &现在弄好了AR环境了,那么我们开始做扫描用的对准框吧,这里我用的是UGUI来制作对准框,这里我给对焦框设定好大小,因为我使用的识别图片是的所以我们的对焦框也要弄成正方形的520*520就可以了,然后在弄一个按钮在对准后帮模型“上色”!做好的效果大体就如下图所示一样:
& &那么开始写代码吧!这里我们在模型上添加一个InterceptTexture脚本,脚本内容如下:
using UnityE
using System.C
using System.IO;
using EasyAR;
using Image = UnityEngine.UI.I
public class InterceptTexture : MonoBehaviour {
public Image scanT
public bool isrealRender =
private Camera scanC
private RenderTexture renderT
private string pipingID;
private string scanP
private Rect scanR
private bool isScanTexture =//是否开启实时渲染
//ImageTargetBaseBehaviour targetB
// Use this for initialization
void Start()
scanPath = Application.dataPath + &/StreamingAssets/Drwaing/&;
scanRect = new Rect(scanTexture.rectTransform.position.x - scanTexture.rectTransform.rect.width / 2, scanTexture.rectTransform.position.y - scanTexture.rectTransform.rect.height / 2,
(int)scanTexture.rectTransform.rect.width, (int)scanTexture.rectTransform.rect.height);
//targetBehaviour = GetComponentInParent&ImageTargetBaseBehaviour&();
gameObject.layer = 31;
void Renderprepare()
if (!scanCamera)
GameObject obj = new GameObject(&ScanCamera&);
scanCamera = obj.AddComponent&Camera&();
obj.transform.parent = transform.
scanCamera.hideFlags = HideFlags.HideAndDontS
scanCamera.CopyFrom(Camera.main);
scanCamera.depth = 0;
scanCamera.cullingMask = 31;
if (!renderTexture)
renderTexture = new RenderTexture(Screen.width, Screen.height, -50);
if (!isScanTexture)
scanCamera.targetTexture = renderT
scanCamera.Render();
if(isrealRender)
GetComponent&Renderer&().material.SetTexture(&_MainTex&, renderTexture);
//RenderTexture.active = renderT
//StartCoroutine(ImageCreate());
void OnWillRenderObject()
Renderprepare();
void OnDestroy()
if (renderTexture)
DestroyImmediate(renderTexture);
if (scanCamera)
DestroyImmediate(scanCamera.gameObject);
public void ScanTextureClick()
StartCoroutine(ImageCreate());
IEnumerator ImageCreate()
isScanTexture =
if (isScanTexture)
scanCamera.targetTexture = renderT
scanCamera.Render();
RenderTexture.active = renderT
Texture2D scantTexture2D = new Texture2D((int)scanRect.width, (int)scanRect.height, TextureFormat.RGB24, false);
yield return new WaitForEndOfFrame();
scantTexture2D.ReadPixels(scanRect, 0, 0, false);
scantTexture2D.Apply();
scanCamera.targetTexture =
RenderTexture.active =
GameObject.Destroy(renderTexture);
byte[] bytes = scantTexture2D.EncodeToPNG();
string savePath = scanPath + gameObject.name + &.png&;
File.WriteAllBytes(savePath,bytes);
isScanTexture =
isrealRender =
///关闭实时渲染
this.gameObject.GetComponent&Renderer&().material.SetTexture(&_MainTex&, scantTexture2D);
Debug.Log(&截图完成!&);
}& 这里使用的UGUI来制作的扫描框,因此如果用NGUI的同学要自己改一下代码哟!因为公司极却摄像头,我就不做实时演示的截图了
& 通过对准框截图下来的图片如下:
& &然后看看我们的模型没贴纹理之前的样子,如下图所示:
& &然后是先附上贴非裁剪的正常纹理图,第二张是我们截图下来的做纹理的图片:
& &因为测试的时候用手机打开识别图,导致颜色有点变了,但是大体上位置都没有错!好了测试成功了~~~运行测试的时候千万被手抖哟!不如就没办法完美的对好UV位置!~~
& 因为是刚刚开始接触AR不久,所以可能做的不好望大家可以多多交流~第一次在公司写技术文章,写的不好请多多包含~
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &
& & & & & & & & & & & & & & & & & & & & & & & & & & & --Bě9oniǎ& & &
这里还有现在普遍的方法...
begonia__z
排名:千里之外
(21)(4)(1)(4)(0)(1)(2)文章最早发布于我的微信公众号中,欢迎关注公众号 Android_De_Home 获取更多干货资源。
本文为sydMobile原创文章,可以随意转载,但请务必注明出处!
这篇文章主要是分享怎么开发一款最简单的AR手机软件,这款软件可以实现最基本的的AR效果,由于时间原因,这里就一步一步的给大家演示一下,一些具体的理论随后再讲,大家只要跟着一步一步做下来一款简单的AR手机软件就可以运行在你的手机上了
首先我的开发工具是unity,这是一款游戏开发引擎。就是帮助我在开发游戏的时候不用从0开始,简单的说就是一款开发工具。下载地址:
选择Personal个人版的下载就可以了。
下载后安装
然后我们选择一款AR引擎,AR引擎其实有多款可以供我们选择,这里我们选择easyar来作为本次开发的ar引擎。
我们这个时候要去下载例子EasyAR SDK Unity Samples,我们就选择Basic版的就可以了,
下载完毕后是一个上面这种压缩包,然后我们解压
可以看到里面有很多的例子,每个代表一个项目在这里我们只演示打开HelloAR别的是一样的。
看到图中1的位置,找到选中的地方,然后将右边的HelloAR直接拖到上面,上图中我已经拖过去了
然后找到上图中1的地方,点击,在上图中2的位置输入你的APP的key,这个key,是在easyar的网站上面创建一个你要开发的app,然后就会获得一个key
然后把你的key输入到2的位置就可以了。
最后一步就是打包成APK
File–&Build setting
然后 点击 palyer settings,这里是要设置apk的包名,apk的包名是和你上面输入的key是对应的,都在easyar官网中你创建的应用的信息里面有。
包名填入后,点build开始打包APK。
最后上app运行结果图
这里就是主要讲一下怎么简单的制作一个AR软件,其实在这个基础上你可以更改要扫描的图片,你可改成生活中比较常见的图片来作为扫描的对象,然后扫描出现的模型也是可以根据你的喜好来换的。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:5782次
排名:千里之外
原创:12篇
欢迎关注我的公众号,定期分享我的原创技术文章以及职业记录!
欢迎加入我的QQ群,不仅为你推荐最新的博文,还有更多惊喜和资源在等着你!欢迎加入讨论!
(6)(2)(1)(4)

我要回帖

更多关于 unity做ar 的文章

 

随机推荐