高通AR-关于切换相机跟踪图片的控制

原创 2015年11月20日 15:51:06
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">        当跟踪到图片,并且显示模型的时候,调用SetTrackerSwitch(false)函数,模型会保持显示,移开图片,不会对模型产生影响.此时如果调用SetTrackerSwitch(true),就会回到正常状态。</span>

    

using UnityEngine;
using System.Collections;
using Vuforia;
public class MyTrackableEventHandler : MonoBehaviour, ITrackableEventHandler
{

    #region PRIVATE_MEMBER_VARIABLES

    private TrackableBehaviour mTrackableBehaviour;
    bool _trackerSwitch = true; //作为可否跟踪的开关.

    //private ImageTargetAbstractBehaviour mImageTarget;
    #endregion // PRIVATE_MEMBER_VARIABLES



    #region UNTIY_MONOBEHAVIOUR_METHODS



    void Start()
    {
        mTrackableBehaviour = GetComponent<TrackableBehaviour>();
        if (mTrackableBehaviour)
        {
            mTrackableBehaviour.RegisterTrackableEventHandler(this);
        }
        //mImageTarget = GetComponent<ImageTargetAbstractBehaviour>();
    }

    #endregion // UNTIY_MONOBEHAVIOUR_METHODS



    #region PUBLIC_METHODS
    /// <summary>
    /// 设置跟踪开关的状态
    /// </summary>
    /// <param name="sitchValue"></param>
    public void SetTrackerSwitch(bool sitchValue)
    {
        _trackerSwitch = sitchValue;
        Fix();
    }

    /// <summary>
    /// 改变跟踪开关为相反值
    /// </summary>
    public void ChangeTrackerSwitch()
    {
        _trackerSwitch = !_trackerSwitch;
        Fix();
    }

    /// <summary>
    /// 跟踪开关改变后进行的调整.
    /// </summary>
    void Fix()
    {
        if(_trackerSwitch == true)
        {
            mTrackableBehaviour.enabled = true;
            OnTrackingLost();
        }
        else
        {
            mTrackableBehaviour.enabled = false; 
        }
    }
    /// <summary>
    /// Implementation of the ITrackableEventHandler function called when the
    /// tracking state changes.
    /// </summary>
    public void OnTrackableStateChanged(
                                    TrackableBehaviour.Status previousStatus,
                                    TrackableBehaviour.Status newStatus)
    {
        if (newStatus == TrackableBehaviour.Status.DETECTED ||
            newStatus == TrackableBehaviour.Status.TRACKED ||
            newStatus == TrackableBehaviour.Status.EXTENDED_TRACKED)
        {
            OnTrackingFound();
        }
        else
        {
            OnTrackingLost();
        }
    }

    #endregion // PUBLIC_METHODS



    #region PRIVATE_METHODS


    private void OnTrackingFound()
    {
        if (_trackerSwitch == false) return;
        Renderer[] rendererComponents = GetComponentsInChildren<Renderer>(true);
        Collider[] colliderComponents = GetComponentsInChildren<Collider>(true);

        // Enable rendering:
        foreach (Renderer component in rendererComponents)
        {
            component.enabled = true;
        }

        // Enable colliders:
        foreach (Collider component in colliderComponents)
        {
            component.enabled = true;
        }

        Debug.Log("Trackable " + mTrackableBehaviour.TrackableName + " found");
    }


    private void OnTrackingLost()
    {
        if (_trackerSwitch == false) return;

        Renderer[] rendererComponents = GetComponentsInChildren<Renderer>(true);
        Collider[] colliderComponents = GetComponentsInChildren<Collider>(true);

        // Disable rendering:
        foreach (Renderer component in rendererComponents)
        {
            component.enabled = false;
        }

        // Disable colliders:
        foreach (Collider component in colliderComponents)
        {
            component.enabled = false;
        }

        Debug.Log("Trackable " + mTrackableBehaviour.TrackableName + " lost");
    }

    #endregion // PRIVATE_METHODS
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

高通AR图片识别演示

  • 2015-09-10 01:04
  • 19.66MB
  • 下载

Unity3D制作高通AR(增强现实)图片识别应用

最近在做游戏和AR,反正能做就做,这里简单介绍下高通AR图片识别的应用制作。 高通官网:https://developer.vuforia.com/ 首选下载unity3d的开发包 然后注...

使用高通Vuforia开发AR增强现实游戏之Single Image Target单一图片识别(一)

@废话在前 之前开篇已经做好了开发vuforia增强现实游戏的准备工作,现在接着可以正式开发AR游戏。我们理想情况期望的是在游戏中能够像人一样识别某一样物体,比如一棵树,不管是什么样的树,我们都能知道...

高通 AR SDK对模型进行控制(平移、旋转、缩放)

1、  写本地方法 [java] view plaincopy // 设置缩放尺寸、旋转角度      privatenative void setSc...

Vuforia SDK---- AR开发vuforia 相机前后摄像头动态切换功能实现

在vuforia sdk中默认的是调用手机的后置摄像头,但是你可以通过ARCamera进行设置,设置成为前置摄像头,有时候在项目中需要用到前置摄像头,而且在群里也有很多人问过如何使用按钮进行动态的切换...

高通AR的SDK103版本

  • 2015-03-30 10:46
  • 51.31MB
  • 下载

高通 AR for Unity 文档

  • 2012-03-03 14:03
  • 266KB
  • 下载

[探讨] 高通AR制作过程中发布到android平台的问题

最近研究高通AR,几乎查看了网络上现有所有的相关资料,但是发现对于最后的发布问题都只是蜻蜓点水的说了句“发布出来就行了”。 我先抛砖引玉的说一下我发布过程中遇到的问题,希望各位大神不吝赐教。 首先,我...

高通AR插件

  • 2016-02-21 19:02
  • 33.17MB
  • 下载

高通AR SDK

  • 2015-02-27 01:50
  • 18.36MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)