Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*==============================================================================
- Copyright (c) 2010-2014 Qualcomm Connected Experiences, Inc.
- All Rights Reserved.
- Confidential and Proprietary - Protected under copyright and other laws.
- ==============================================================================*/
- using UnityEngine;
- namespace Vuforia
- {
- /// <summary>
- /// A custom handler that implements the ITrackableEventHandler interface.
- /// </summary>
- public class MyTrackableEventHandler : MonoBehaviour,
- ITrackableEventHandler
- {
- #region PRIVATE_MEMBER_VARIABLES
- private TrackableBehaviour mTrackableBehaviour;
- public bool isTracking;
- public GameObject[] receivers;
- #endregion // PRIVATE_MEMBER_VARIABLES
- #region UNTIY_MONOBEHAVIOUR_METHODS
- void Start()
- {
- mTrackableBehaviour = GetComponent<TrackableBehaviour>();
- if (mTrackableBehaviour)
- {
- 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)
- {
- OnTrackingFound();
- }
- else
- {
- OnTrackingLost();
- }
- }
- #endregion // PUBLIC_METHODS
- #region PRIVATE_METHODS
- private void OnTrackingFound()
- {
- isTracking = true;
- for (int i = 0; i < receivers.Length; i++) {
- if (receivers [i] != null)
- receivers [i].SendMessage ("OnTrackingFound", SendMessageOptions.DontRequireReceiver);
- }
- 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()
- {
- isTracking = false;
- for (int i = 0; i < receivers.Length; i++) {
- if (receivers [i] != null)
- receivers [i].SendMessage ("OnTrackingLost", SendMessageOptions.DontRequireReceiver);
- }
- 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
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement