private async void Start()
        {
            _mainCamera = Camera.main;
            _trackableObjectDataLoader = TrackableObjectDataLoader.Instance;

            _awaiting = true;
            await _objectAnchorsService.InitializeAsync();

            _objectAnchorsService.Pause();
            bool hasObjects = await _trackableObjectDataLoader.LoadObjectModelsAsync(Application.persistentDataPath);

            _awaiting = false;

            // if the trackable object loader doesn't find anything, may as well give up.
            // future: add a refresh button...
            if (hasObjects)
            {
                _objectAnchorsService.ObjectAdded    += _objectAnchorsService_ObjectAdded;
                _objectAnchorsService.ObjectUpdated  += _objectAnchorsService_ObjectUpdated;
                _objectAnchorsService.ObjectRemoved  += _objectAnchorsService_ObjectRemoved;
                _objectAnchorsService.RunningChanged += _objectAnchorsService_RunningChanged;
                Debug.Log("Object detector ready");
            }
            else
            {
                Debug.LogWarning("no objects to detect.");
                enabled = false;
            }
        }
        private void Start()
        {
            _mainCamera = Camera.main;

            //
            // Find bounding box components.
            //
            _searchAreaBboxManipulationHandler = GetComponent <ObjectManipulator>();
            _searchAreaBboxManipulationHandler.OnManipulationEnded.AddListener(BoundingBoxMoved);
            _searchAreaBounds          = GetComponent <BoundsControl>();
            _objectAnchorsService      = ObjectAnchorsService.GetService();
            _trackableObjectDataLoader = TrackableObjectDataLoader.Instance;
            _trackableObjectDataLoader.ModelsLoaded += _trackableObjectDataLoader_ModelsLoaded;
            _automaticSearchAreaMovementController   = GetComponent <AutonomousSearchArea>();
            _searchAreaModelVisualization            = GetComponentInChildren <SearchAreaModelVisualization>();
        }
 public void Dispose()
 {
     _trackableObjects.Clear();
     _instance = null;
 }