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]); } }
public void UnloadTarget(ObjectTargetController target) { if (target.Target != null && !TryGetTargetController(target.Target.runtimeID())) { return; } target.Tracker = null; }
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; }
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; }
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); } }); } }