vuforia ar unity 案例从零制作 四 利用柱体和虚拟按钮制作可乐广告 彩蛋埋设

一 柱体识别

    上传target,选择柱体,设置上直径,下直径,高度  建议先把柱体贴图做好,根据贴图长度 l/π 获得直径 一般采用0-100以内的数值

  vuforia ar unity 案例从零制作 四 利用柱体和虚拟按钮制作可乐广告 彩蛋埋设_第1张图片

上传完成后点进去上传贴图,

vuforia ar unity 案例从零制作 四 利用柱体和虚拟按钮制作可乐广告 彩蛋埋设_第2张图片

完成后下载unity用的database 导入到项目

 

二,制作柱体识别

 ctrl+n 新建场景,删掉自带的camera,创建arcamera,点击vuforia-cylinder 创建柱体识别对象,点击它,设置识别信息:

   vuforia ar unity 案例从零制作 四 利用柱体和虚拟按钮制作可乐广告 彩蛋埋设_第3张图片

然后在arcamera上进入设置,loaddata勾选  吧要识别出现的对象放到cylindertarget下

三,播放视频

     导入项目将视频,创建一个画布canvas,添加rawimage,吧画布作为扫描显示对象,添加videopalyer,将视频指定,添加音频组件播放音频 

注意使用ui播放视频需要创建一个rendertexture 将抗锯齿开最高,分辨率尽量高可以高清显示:

vuforia ar unity 案例从零制作 四 利用柱体和虚拟按钮制作可乐广告 彩蛋埋设_第4张图片

vuforia ar unity 案例从零制作 四 利用柱体和虚拟按钮制作可乐广告 彩蛋埋设_第5张图片

vuforia ar unity 案例从零制作 四 利用柱体和虚拟按钮制作可乐广告 彩蛋埋设_第6张图片

vuforia ar unity 案例从零制作 四 利用柱体和虚拟按钮制作可乐广告 彩蛋埋设_第7张图片

四  测试  打包测试一下 顺利应该是没有问题

五,曲面视频

   为了实现曲面需要下载一个插件,曲面插件,导入插件后,再canvas上添加如下脚本,饼调整参数角度等:

vuforia ar unity 案例从零制作 四 利用柱体和虚拟按钮制作可乐广告 彩蛋埋设_第8张图片

动态调整角度:

using CurvedUI;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class FingerCtr : MonoBehaviour {

    public CurvedUISettings uisetting;
    public int angle;
    public bool changing = false;
   
    // Use this for initialization
    void Start () {
        angle = uisetting.Angle;
	}
	public void CHNAGE()
    {
        changing = true;
    }
    public void Reset()
    {
        changing = false ;
        uisetting.Angle  = -360;
    }
    void Update()
    {
        if(changing)
        {
            angle += 1;
            angle = Mathf.Clamp(angle, -360, 0);
            uisetting.Angle = angle;
        }
    }
}

 六,虚拟按钮

     虚拟按钮需要结合iamgetarget使用,截取识别图的某一部分作为彩蛋,用作虚拟按钮的识别也就是做一个图片识别,不过这个图片是罐体的一部分,不再赘述制作过程,不知道的去 这里

     点击imagetarget,点开advanced,点击 add virtualbutton即可创建虚拟按钮

vuforia ar unity 案例从零制作 四 利用柱体和虚拟按钮制作可乐广告 彩蛋埋设_第9张图片vuforia ar unity 案例从零制作 四 利用柱体和虚拟按钮制作可乐广告 彩蛋埋设_第10张图片

调整虚拟按钮大小,不要放到识别图边缘

vuforia ar unity 案例从零制作 四 利用柱体和虚拟按钮制作可乐广告 彩蛋埋设_第11张图片

这一部分再识别的时候如果手后者有东西挡住,就会判断按下虚拟按钮,就可触发对应绑定的事件,绑定事件网上有教程,这里贴一个自己做的;  可以在面板想UIbutton一样拖拽绑定

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
using Vuforia;

[Serializable]
public class ButtonEvent: UnityEvent { }

public class VirtualButtonCtr : MonoBehaviour, IVirtualButtonEventHandler
{
    public ButtonEvent onpress, onrelease;
    public void OnButtonPressed(VirtualButtonBehaviour vb)
    {
        if (onpress != null)
            onpress.Invoke();
    }

    public void OnButtonReleased(VirtualButtonBehaviour vb)
    {
        if (onrelease != null)
            onrelease.Invoke();
    }

    // Use this for initialization
    void Start () {
        GetComponent().RegisterEventHandler(this);
	}
	
	// Update is called once per frame
	void Update () {
		
	}
}

vuforia ar unity 案例从零制作 四 利用柱体和虚拟按钮制作可乐广告 彩蛋埋设_第12张图片

七,最后,如果你跟我的步骤一致,恭喜你打包可以看到效果,试试吧!

 

 

你可能感兴趣的:(vuforia,ar,unity)