/*===============================================================================
Copyright (c) 2021 PTC Inc. All Rights Reserved.
Confidential and Proprietary - Protected under copyright and other laws.
Vuforia is a trademark of PTC Inc., registered in the United States and other
countries.
===============================================================================*/
using UnityEngine;
using Vuforia;
///
/// A custom handler that inherits from the DefaultObserverEventHandler class.
///
/// Changes made to this file could be overwritten when upgrading the Vuforia version.
/// When implementing custom area target event handler behavior, consider inheriting from this class instead.
///
public class DefaultAreaTargetEventHandler : DefaultObserverEventHandler
{
protected override void OnTrackingFound()
{
SetAugmentationRendering(true);
OnTargetFound?.Invoke();
}
protected override void OnTrackingLost()
{
SetAugmentationRendering(false);
OnTargetLost?.Invoke();
}
void SetAugmentationRendering(bool value)
{
for (var i = 0; i < transform.childCount; i++)
SetEnabledOnChildComponents(transform.GetChild(i), value);
SetVuforiaRenderingComponents(value);
}
void SetEnabledOnChildComponents(Transform augmentationTransform, bool value)
{
var augmentationRenderer = augmentationTransform.GetComponent();
if (augmentationRenderer != null)
{
augmentationRenderer.SetActive(value);
return;
}
if (mObserverBehaviour)
{
var rendererComponent = augmentationTransform.GetComponent();
if (rendererComponent != null)
rendererComponent.enabled = value;
var canvasComponent = augmentationTransform.GetComponent