Upgraded original RothenburgAR to Unity version 2017.4.5f1 (and upgrading from standalone vuforia to the version integrated in unity)
This commit is contained in:
116
Assets/Vuforia/Scripts/DefaultTrackableEventHandler.cs
Normal file
116
Assets/Vuforia/Scripts/DefaultTrackableEventHandler.cs
Normal file
@@ -0,0 +1,116 @@
|
||||
/*==============================================================================
|
||||
Copyright (c) 2017 PTC Inc. All Rights Reserved.
|
||||
|
||||
Copyright (c) 2010-2014 Qualcomm Connected Experiences, Inc.
|
||||
All Rights Reserved.
|
||||
Confidential and Proprietary - Protected under copyright and other laws.
|
||||
==============================================================================*/
|
||||
|
||||
using UnityEngine;
|
||||
using Vuforia;
|
||||
|
||||
/// <summary>
|
||||
/// A custom handler that implements the ITrackableEventHandler interface.
|
||||
/// </summary>
|
||||
public class DefaultTrackableEventHandler : MonoBehaviour, ITrackableEventHandler
|
||||
{
|
||||
#region PROTECTED_MEMBER_VARIABLES
|
||||
|
||||
protected TrackableBehaviour mTrackableBehaviour;
|
||||
|
||||
#endregion // PROTECTED_MEMBER_VARIABLES
|
||||
|
||||
#region UNITY_MONOBEHAVIOUR_METHODS
|
||||
|
||||
protected virtual void Start()
|
||||
{
|
||||
mTrackableBehaviour = GetComponent<TrackableBehaviour>();
|
||||
if (mTrackableBehaviour)
|
||||
mTrackableBehaviour.RegisterTrackableEventHandler(this);
|
||||
}
|
||||
|
||||
protected virtual void OnDestroy()
|
||||
{
|
||||
if (mTrackableBehaviour)
|
||||
mTrackableBehaviour.UnregisterTrackableEventHandler(this);
|
||||
}
|
||||
|
||||
#endregion // UNITY_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)
|
||||
{
|
||||
Debug.Log("Trackable " + mTrackableBehaviour.TrackableName + " found");
|
||||
OnTrackingFound();
|
||||
}
|
||||
else if (previousStatus == TrackableBehaviour.Status.TRACKED &&
|
||||
newStatus == TrackableBehaviour.Status.NOT_FOUND)
|
||||
{
|
||||
Debug.Log("Trackable " + mTrackableBehaviour.TrackableName + " lost");
|
||||
OnTrackingLost();
|
||||
}
|
||||
else
|
||||
{
|
||||
// For combo of previousStatus=UNKNOWN + newStatus=UNKNOWN|NOT_FOUND
|
||||
// Vuforia is starting, but tracking has not been lost or found yet
|
||||
// Call OnTrackingLost() to hide the augmentations
|
||||
OnTrackingLost();
|
||||
}
|
||||
}
|
||||
|
||||
#endregion // PUBLIC_METHODS
|
||||
|
||||
#region PROTECTED_METHODS
|
||||
|
||||
protected virtual void OnTrackingFound()
|
||||
{
|
||||
var rendererComponents = GetComponentsInChildren<Renderer>(true);
|
||||
var colliderComponents = GetComponentsInChildren<Collider>(true);
|
||||
var canvasComponents = GetComponentsInChildren<Canvas>(true);
|
||||
|
||||
// Enable rendering:
|
||||
foreach (var component in rendererComponents)
|
||||
component.enabled = true;
|
||||
|
||||
// Enable colliders:
|
||||
foreach (var component in colliderComponents)
|
||||
component.enabled = true;
|
||||
|
||||
// Enable canvas':
|
||||
foreach (var component in canvasComponents)
|
||||
component.enabled = true;
|
||||
}
|
||||
|
||||
|
||||
protected virtual void OnTrackingLost()
|
||||
{
|
||||
var rendererComponents = GetComponentsInChildren<Renderer>(true);
|
||||
var colliderComponents = GetComponentsInChildren<Collider>(true);
|
||||
var canvasComponents = GetComponentsInChildren<Canvas>(true);
|
||||
|
||||
// Disable rendering:
|
||||
foreach (var component in rendererComponents)
|
||||
component.enabled = false;
|
||||
|
||||
// Disable colliders:
|
||||
foreach (var component in colliderComponents)
|
||||
component.enabled = false;
|
||||
|
||||
// Disable canvas':
|
||||
foreach (var component in canvasComponents)
|
||||
component.enabled = false;
|
||||
}
|
||||
|
||||
#endregion // PROTECTED_METHODS
|
||||
}
|
||||
Reference in New Issue
Block a user