public static void RequestTrackingTarget(TargetTrackRequest _request)
    {
        ThreadStart threadStart = delegate
        {
            GetTracking().FindTarget(_request, instance.FinishedProcessing);
        };

        threadStart.Invoke();
    }
Example #2
0
 public void FindTarget(TargetTrackRequest _request, Action <TargetTrackResult> callback)
 {
     for (int i = 0; i < activeObjects.Count; i++)
     {
         TrackableObject possibleTarget = activeObjects[i];
         if (possibleTarget.objectType == _request.requestedType)
         {
             if (possibleTarget != _request.requestingObject)
             {
                 float targetDistance = Vector3.Distance(possibleTarget.objectPosition, _request.requestingObject.objectPosition);
                 if (targetDistance <= _request.requestRadius)
                 {
                     callback(new TargetTrackResult(possibleTarget, true, _request.callback));
                 }
                 else
                 {
                     callback(new TargetTrackResult(null, false, _request.callback));
                 }
             }
         }
     }
 }