コード例 #1
0
        static void DrawGizmo(ObjectTargetController scr, GizmoType gizmoType)
        {
            if (!EasyARController.Settings.GizmoConfig.ObjectTarget.Enable)
            {
                return;
            }

            Gizmos.color = Color.white;
            var boundingBox = scr.BoundingBox;

            if (boundingBox.Count == 8)
            {
                var scale = scr.Target.scale();
                for (int i = 0; i < 8; ++i)
                {
                    boundingBox[i] = scr.transform.localToWorldMatrix.MultiplyPoint(boundingBox[i] / scale);
                }
                Gizmos.DrawLine(boundingBox[0], boundingBox[1]);
                Gizmos.DrawLine(boundingBox[1], boundingBox[2]);
                Gizmos.DrawLine(boundingBox[2], boundingBox[3]);
                Gizmos.DrawLine(boundingBox[3], boundingBox[0]);
                Gizmos.DrawLine(boundingBox[4], boundingBox[5]);
                Gizmos.DrawLine(boundingBox[5], boundingBox[6]);
                Gizmos.DrawLine(boundingBox[6], boundingBox[7]);
                Gizmos.DrawLine(boundingBox[7], boundingBox[4]);
                Gizmos.DrawLine(boundingBox[0], boundingBox[4]);
                Gizmos.DrawLine(boundingBox[1], boundingBox[5]);
                Gizmos.DrawLine(boundingBox[2], boundingBox[6]);
                Gizmos.DrawLine(boundingBox[3], boundingBox[7]);
            }
        }
コード例 #2
0
 public void UnloadTarget(ObjectTargetController target)
 {
     if (target.Target != null && !TryGetTargetController(target.Target.runtimeID()))
     {
         return;
     }
     target.Tracker = null;
 }
コード例 #3
0
 internal void LoadObjectTarget(ObjectTargetController controller, Action <Target, bool> callback)
 {
     Tracker.loadTarget(controller.Target, EasyARController.Scheduler, (target, status) =>
     {
         if (TargetLoad != null)
         {
             TargetLoad(controller, target, status);
         }
         if (callback != null)
         {
             callback(target, status);
         }
     });
     allTargetController[controller.Target.runtimeID()] = controller;
 }
コード例 #4
0
        private void UpdateScale(ObjectTargetController controller, float s)
        {
            if (Application.isPlaying)
            {
                return;
            }
            var vec3Unit = Vector3.one;

            if (controller.HorizontalFlip)
            {
                vec3Unit.x = -vec3Unit.x;
            }
            controller.transform.localScale = vec3Unit * s;

            scale          = s;
            scaleX         = controller.transform.localScale.x;
            horizontalFlip = controller.HorizontalFlip;
        }
コード例 #5
0
 internal void UnloadObjectTarget(ObjectTargetController controller, Action <Target, bool> callback)
 {
     if (allTargetController.Remove(controller.Target.runtimeID()))
     {
         controller.OnTracking(false);
         Tracker.unloadTarget(controller.Target, EasyARController.Scheduler, (target, status) =>
         {
             if (TargetUnload != null)
             {
                 TargetUnload(controller, target, status);
             }
             if (callback != null)
             {
                 callback(target, status);
             }
         });
     }
 }