Gracias
Lo que tengo hasta ahora:
Código:
public class Audiora : MonoBehaviour
{
public AudioClip otherClip;
public AudioSource audios;
private AudioSource[] allAudioSources;
private AudioSource audioN;
private readonly ImageTrackerFrameFilter filter = new ImageTrackerFrameFilter();
void Start()
{
//Aquí es donde necesito llamar a la función de la clase ImageTrackerFrameFilter
}
}
{
public AudioClip otherClip;
public AudioSource audios;
private AudioSource[] allAudioSources;
private AudioSource audioN;
private readonly ImageTrackerFrameFilter filter = new ImageTrackerFrameFilter();
void Start()
{
//Aquí es donde necesito llamar a la función de la clase ImageTrackerFrameFilter
}
}
Función que quiero llamar.
Código:
public List<KeyValuePair<Optional<TargetController>, Matrix44F>> OnResult(Optional<FrameFilterResult> frameFilterResult)
{
var resultControllers = new List<KeyValuePair<Optional<TargetController>, Matrix44F>>();
var targetIDs = new List<int>();
var lostIDs = new List<int>();
if (frameFilterResult.OnSome)
{
var targetTrackerResult = frameFilterResult.Value as TargetTrackerResult;
foreach (var targetInstance in targetTrackerResult.targetInstances())
{
using (targetInstance)
{
if (targetInstance.status() != TargetStatus.Tracked)
{
continue;
}
var targetOptional = targetInstance.target();
if (targetOptional.OnNone)
{
continue;
}
using (var target = targetOptional.Value)
{
var controller = TryGetTargetController(target.runtimeID());
if (controller)
{
targetIDs.Add(target.runtimeID());
resultControllers.Add(new KeyValuePair<Optional<TargetController>, Matrix44F>(controller, targetInstance.pose()));
}
}
}
}
}
foreach (var id in previousTargetIDs)
{
lostIDs.Add(id);
}
foreach (var id in targetIDs)
{
if (lostIDs.Contains(id))
{
lostIDs.Remove(id);
}
var controller = TryGetTargetController(id);
if (controller && controller.IsLoaded)
{
controller.OnTracking(true);
}
}
foreach (var id in lostIDs)
{
var controller = TryGetTargetController(id);
if (controller)
{
controller.OnTracking(false);
}
}
previousTargetIDs = targetIDs;
return resultControllers;
}
{
var resultControllers = new List<KeyValuePair<Optional<TargetController>, Matrix44F>>();
var targetIDs = new List<int>();
var lostIDs = new List<int>();
if (frameFilterResult.OnSome)
{
var targetTrackerResult = frameFilterResult.Value as TargetTrackerResult;
foreach (var targetInstance in targetTrackerResult.targetInstances())
{
using (targetInstance)
{
if (targetInstance.status() != TargetStatus.Tracked)
{
continue;
}
var targetOptional = targetInstance.target();
if (targetOptional.OnNone)
{
continue;
}
using (var target = targetOptional.Value)
{
var controller = TryGetTargetController(target.runtimeID());
if (controller)
{
targetIDs.Add(target.runtimeID());
resultControllers.Add(new KeyValuePair<Optional<TargetController>, Matrix44F>(controller, targetInstance.pose()));
}
}
}
}
}
foreach (var id in previousTargetIDs)
{
lostIDs.Add(id);
}
foreach (var id in targetIDs)
{
if (lostIDs.Contains(id))
{
lostIDs.Remove(id);
}
var controller = TryGetTargetController(id);
if (controller && controller.IsLoaded)
{
controller.OnTracking(true);
}
}
foreach (var id in lostIDs)
{
var controller = TryGetTargetController(id);
if (controller)
{
controller.OnTracking(false);
}
}
previousTargetIDs = targetIDs;
return resultControllers;
}