Vuforia的学习(六)DefaultTrackableEventHandler脚本解析
来源:互联网 发布:愚人节整人软件 编辑:程序博客网 时间:2024/06/17 19:33
Vuforia重要脚本的介绍
关键Vuforia SDK脚本的学习,有一个特别重要,也相对简单的脚本,他就是DefaultTrackableEventHandler.cs脚本。该脚本被挂载在ImageTarget的prfab上,在我们学习Vuforia的过程中我们会经常用到它。所以下面我们来对这个脚本进行一些分析。
DefaultTrackableEventHandler 脚本分析
代码如下:
//该类属于 Vuforia的命名空间,所以在引用该类的时候要注意加上Vuforia的命门空间.namespace Vuforia{ /// <summary> /// A custom handler that implements the ITrackableEventHandler interface. /// </summary> public class DefaultTrackableEventHandler : MonoBehaviour, ITrackableEventHandler { #region PRIVATE_MEMBER_VARIABLES //Vuforia sdk提供的类,Vuforia的事件类 private TrackableBehaviour mTrackableBehaviour; #endregion // PRIVATE_MEMBER_VARIABLES #region UNTIY_MONOBEHAVIOUR_METHODS void Start() { //获得ImageTarget的TrackableBehaviour类 mTrackableBehaviour = GetComponent<TrackableBehaviour>(); if (mTrackableBehaviour) { //注册该ImageTarget,这样该ImageTarget就能收到Vuforia捕捉的到的事件 mTrackableBehaviour.RegisterTrackableEventHandler(this); } } #endregion // UNTIY_MONOBEHAVIOUR_METHODS #region PUBLIC_METHODS /// <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) //通过事件状态的改变来确定是不是IamgeTarget被发现 { OnTrackingFound(); //处理ImageTarget被发现 } else { OnTrackingLost(); //处理ImageTarget消失 } } #endregion // PUBLIC_METHODS #region PRIVATE_METHODS private void OnTrackingFound() { //获得该ImagetTarget上所有子节点的Renderer和Collder Renderer[] rendererComponents = GetComponentsInChildren<Renderer>(true); Collider[] colliderComponents = GetComponentsInChildren<Collider>(true); //显示所有节点 // Enable rendering: foreach (Renderer component in rendererComponents) { component.enabled = true; } //激活Collider // Enable colliders: foreach (Collider component in colliderComponents) { component.enabled = true; } Debug.Log("Trackable " + mTrackableBehaviour.TrackableName + " found"); } private void OnTrackingLost() { Renderer[] rendererComponents = GetComponentsInChildren<Renderer>(true); Collider[] colliderComponents = GetComponentsInChildren<Collider>(true); //隐藏子节点 // Disable rendering: foreach (Renderer component in rendererComponents) { component.enabled = false; } //取消Collider // Disable colliders: foreach (Collider component in colliderComponents) { component.enabled = false; } Debug.Log("Trackable " + mTrackableBehaviour.TrackableName + " lost"); } #endregion // PRIVATE_METHODS }}
通过源码的注释,相信大家会对该类的理解有帮助,该类也相对简单,希望大家通过代码注释好好理解一些,因为实际开发项目的过程中,该类会被经常用到,是非常重要的一个类。
阅读全文
0 0
- Vuforia的学习(六)DefaultTrackableEventHandler脚本解析
- Vuforia的学习(一)---Vuforia的介绍
- Vuforia的学习(二)Vuforia的安装
- Vuforia的学习(三) Vuforia ARCamer的使用
- (Unity3d)Vuforia开发基础六-音频
- Vuforia的学习(四)ImageTarget的配置
- Vuforia的学习(五)ImageTarget的使用
- Vuforia的Samples详细解析(Android)
- 根据metalink脚本学习undo(六)
- shell 脚本编程学习(六) 函数
- Ogre源代码浅析——脚本及其解析(六)
- Vuforia学习实践笔记(一)
- vuforia + zxing 解析二维码
- Vuforia开发基础(六):音频
- Vuforia的学习(七)如何让游戏内摄像机跟着手机陀螺仪旋转
- linux学习(六) shell脚本(3)
- unity3d学习笔记(六)--单例脚本和单例类
- unity3d学习笔记(六)--单例脚本和单例类
- centos6.7安装jdk7
- 金融系统中的还款日计算(自用虽然比较low)
- Ubuntu U盘装
- Maven私服Nexus3.x环境构建操作记录
- 撰写一组SNORT规则防御SQL注入
- Vuforia的学习(六)DefaultTrackableEventHandler脚本解析
- 在Fedora 25上编译SELinux Policy
- angular2语法总结
- 递归-角谷定理
- redis使用watch秒杀抢购思路
- 自定义同时有图片文字的提示框
- mysql常用监控脚本命令整理
- 仿简书动态 searchview 的实现,代码就这么多点
- SimpleDateFormat安全的使用方法