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

一 柱体识别

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

  

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

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

 

二,制作柱体识别

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

   

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

三,播放视频

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

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

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

五,曲面视频

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

动态调整角度:

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即可创建虚拟按钮

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

这一部分再识别的时候如果手后者有东西挡住,就会判断按下虚拟按钮,就可触发对应绑定的事件,绑定事件网上有教程,这里贴一个自己做的;  可以在面板想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<VirtualButtonBehaviour>().RegisterEventHandler(this);
	}
	
	// Update is called once per frame
	void Update () {
		
	}
}

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

 

 

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现Unity_AR_Vuforia利用Virtual Button虚拟按钮显示图片的相关操作和代码如下: 1. 首先在Vuforia中创建一个Image Target,并在其上添加Virtual Button 2. 在Unity中导入Vuforia插件,并在场景中添加AR Camera和Image Target 3. 创建一个空物体,将其命名为VirtualButton,然后在其中添加一个Quad作为显示图片的载体,并将其缩放为合适的大小 4. 创建一个C#脚本,并将其命名为VirtualButtonBehaviour,并将其添加到VirtualButton物体上 5. 在VirtualButtonBehaviour脚本中添加以下代码: ``` using UnityEngine; using UnityEngine.UI; using Vuforia; public class VirtualButtonBehaviour : MonoBehaviour, IVirtualButtonEventHandler { public GameObject imageObject; public Sprite[] sprites; private int currentIndex = 0; private VirtualButtonBehaviour virtualButtonBehaviour; void Start() { virtualButtonBehaviour = GetComponent<VirtualButtonBehaviour>(); virtualButtonBehaviour.RegisterEventHandler(this); } public void OnButtonPressed(VirtualButtonBehaviour vb) { currentIndex = (currentIndex + 1) % sprites.Length; imageObject.GetComponent<Image>().sprite = sprites[currentIndex]; } public void OnButtonReleased(VirtualButtonBehaviour vb) { // do nothing } } ``` 6. 在Unity中将VirtualButton物体拖放到Image Target物体上,然后将Image Object拖放到VirtualButtonBehaviour脚本的Image Object字段中,并将需要显示的图片拖放到Sprites数组中 7. 运行程序,并在AR Camera中观察Image Target,当手指按下Virtual Button时,图片将会依次显示 以上就是Unity_AR_Vuforia利用Virtual Button虚拟按钮显示图片的相关操作和代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值