unity用vuforia开发AR入门

概述:

  参考:http://www.chinaar.com/Vuforia/5192.html 按这篇文章写的做基本能做出来,但还是会遇到一些问题

一、插件下载

  去官网:https://developer.vuforia.com/downloads/sdk 选择Download Unity Extension (legacy),注册了就能下载

  image

二、插件使用

  1. 在unity中建好工程,导入插件

  2. 将场景中的MainCamera删掉,并将Vuforia/Prefabs目录下的ARCamera相机拖至场景中

  3. 将Vuforia/Prefabs目录下的ImageTarget也拖至场景中,调整相机位置和角度,直到浏览页出现如下视图:

  image

  4. 然后向这个面板上添加我们所要识别的图片,这时需要将这个图片先上传到高通内部的图片库中

三、后台准备

  1. 在vuforia官网点击Develop来到开发者后台

  2. 点击Target Manager、Add Database,创建一个Database

  image

  3. 输入名称,Type选Device

  image

  4. 在Database中创建Target

  image

  image

  注意这里的Width单位是米,另外,这里对上传的图片有一个要求,如果图片是彩色的,只能是24位RGB颜色

  image

  如果你要上传的图片是32位,可以用画图或者PS修改:在PS中新建一张图片,颜色模式选RGB8位,背景内容选白色。这里如果选白色出来的图片就是24位,选透明就是32位。然后把你的图片拖进来,裁剪一下,保存为png就好

  image

  5. 图片上传成功以后,会发现系统对图片有一个评分,评分越高表示图片特征分明,容易识别出来,据说至少要3星的图片才可以用

  image

  6. 选择你要的图片,点击Download Database,再选择Unity Editor,下载资源包

  image

  7. 来到Licence Manager,点击Get Development Key

  image

  8. 输入项目的名称,就能获取Licence Key

四、回到unity工程

  1. 将刚刚生成的test.unitypackage导入到工程中

  2. 来到ImageTarget物体的Image Target Behaviour组件,设置它的Database和Image Target

  image

  3. 这样操作之后如果发现ImageTarget仍然是白色的,就找到刚刚导入到工程的图片,将它的Texture Shape改为2D就好,这时就能看到ImageTarget已经显示了要识别的图片

  image

  image

  4. 将模型拖入场景中,并作为ImageTarget的子物体,以后在设备识别到图片的时候,模型会出现在相同的位置

  image

  5. 在ARCamera中打开Vuforia configuration,将之前得到的Licence Key填写到App License Key中,再勾选Load test Database和Activate

  image

  image

  6. 将项目发布到Android,就能在手机上运行了,电脑有摄像头的话,在编辑器中运行也能得到一样的效果

  7. 如果觉得手机上显示的图像很模糊,可以用下面方式进行对焦:新建一个脚本CameraMode.cs,复制下面的代码,再将它挂在ARCamera上,APP运行时点击一下手机屏幕进行对焦

using UnityEngine;
using System.Collections;

public class CameraMode : MonoBehaviour
{
    void Start()
    {
        Vuforia.CameraDevice.Instance.SetFocusMode(Vuforia.CameraDevice.FocusMode.FOCUS_MODE_CONTINUOUSAUTO);
    }

    void Update()
    {
#if UNITY_EDITOR
        if (Input.GetMouseButtonUp(0))
#elif UNITY_ANDROID || UNITY_IPHONE
            if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began)  
#endif
        {
            Vuforia.CameraDevice.Instance.SetFocusMode(Vuforia.CameraDevice.FocusMode.FOCUS_MODE_CONTINUOUSAUTO);
        }
    }
}

最后手机上运行的截图:

  image


猜你喜欢

转载自blog.csdn.net/h1042785680/article/details/80088234