-
Notifications
You must be signed in to change notification settings - Fork 0
/
TotemTracker.cs
68 lines (59 loc) · 2.03 KB
/
TotemTracker.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Vuforia;
public class TotemTracker : MonoBehaviour, ITrackableEventHandler
{
TrackableBehaviour mTrackableBehaviour;
TrackableBehaviour.Status m_PreviousStatus;
TrackableBehaviour.Status m_NewStatus;
[SerializeField]
OSCsender oscs;
void Start()
{
oscs = GameObject.Find("ARCamera").GetComponent<OSCsender>();
mTrackableBehaviour = GetComponent<TrackableBehaviour>();
if (mTrackableBehaviour)
mTrackableBehaviour.RegisterTrackableEventHandler(this);
}
void OnDestroy()
{
if (mTrackableBehaviour)
mTrackableBehaviour.UnregisterTrackableEventHandler(this);
}
public void OnTrackableStateChanged(
TrackableBehaviour.Status previousStatus,
TrackableBehaviour.Status newStatus)
{
m_PreviousStatus = previousStatus;
m_NewStatus = newStatus;
if (newStatus == TrackableBehaviour.Status.DETECTED ||
newStatus == TrackableBehaviour.Status.TRACKED ||
newStatus == TrackableBehaviour.Status.EXTENDED_TRACKED)
{
OnTrackingFound();
}
else if (previousStatus == TrackableBehaviour.Status.TRACKED &&
newStatus == TrackableBehaviour.Status.NO_POSE)
{
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();
}
}
void OnTrackingFound()
{
oscs.EnviarMarcadorEncontrado(mTrackableBehaviour.TrackableName);
Debug.Log("Marcador encontrado: " + mTrackableBehaviour.TrackableName);
}
void OnTrackingLost()
{
oscs.EnviarMarcadorPerdido(mTrackableBehaviour.TrackableName);
Debug.Log("Marcador perdido: " + mTrackableBehaviour.TrackableName);
}
}