using UnityEngine.SceneManagement;
using System.Collections;
using System.Collections.Generic;
public class DefaultTrackableEventHandler : MonoBehaviour, ITrackableEventHandler
#region PROTECTED_MEMBER_VARIABLES
protected TrackableBehaviour mTrackableBehaviour;
protected TrackableBehaviour.Status m_PreviousStatus;
protected TrackableBehaviour.Status m_NewStatus;
public GameObject creatButoon;
public GameObject Rock_FB;
public GameObject Soil_FB;
public GameObject Chip_FB;
#region UNITY_MONOBEHAVIOUR_METHODS
protected virtual void Start()
mTrackableBehaviour = GetComponent<TrackableBehaviour>();
mTrackableBehaviour.RegisterTrackableEventHandler(this);
creatButoon = GameObject.Find("CreateButton");
Rock_FB = GameObject.Find("Rock_FB");
Soil_FB = GameObject.Find("Soil_FB");
Chip_FB = GameObject.Find("Chip_FB");
protected virtual void OnDestroy()
mTrackableBehaviour.UnregisterTrackableEventHandler(this);
public void OnTrackableStateChanged(
TrackableBehaviour.Status previousStatus,
TrackableBehaviour.Status newStatus)
m_PreviousStatus = previousStatus;
if (newStatus == TrackableBehaviour.Status.DETECTED ||
newStatus == TrackableBehaviour.Status.TRACKED ||
newStatus == TrackableBehaviour.Status.EXTENDED_TRACKED)
Debug.Log("Trackable " + mTrackableBehaviour.TrackableName + " found");
ImgScan.text = mTrackableBehaviour.TrackableName;
else if (previousStatus == TrackableBehaviour.Status.TRACKED &&
newStatus == TrackableBehaviour.Status.NO_POSE)
Debug.Log("Trackable " + mTrackableBehaviour.TrackableName + " lost");
if (mTrackableBehaviour.TrackableName == "soil")
Soil_FB.SetActive(false);
if (mTrackableBehaviour.TrackableName == "rock")
Rock_FB.SetActive(false);
if (mTrackableBehaviour.TrackableName == "chip")
Chip_FB.SetActive(false);
#region PROTECTED_METHODS
protected virtual void OnTrackingFound()
if (mTrackableBehaviour.TrackableName == "rock")
if (mTrackableBehaviour.TrackableName == "soil")
if (mTrackableBehaviour.TrackableName == "chip")
creatButoon.SetActive(true);
var rendererComponents = GetComponentsInChildren<Renderer>(true);
var colliderComponents = GetComponentsInChildren<Collider>(true);
var canvasComponents = GetComponentsInChildren<Canvas>(true);
foreach (var component in rendererComponents)
component.enabled = true;
foreach (var component in colliderComponents)
component.enabled = true;
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);
foreach (var component in rendererComponents)
component.enabled = false;
foreach (var component in colliderComponents)
component.enabled = false;
foreach (var component in canvasComponents)
component.enabled = false;