public void Initialize( [Inject] ITargetingManager targetingManager) { _targetingManager = targetingManager; _moveObjectRecognizer = new GestureRecognizer(); _moveObjectRecognizer.SetRecognizableGestures(GestureSettings.ManipulationTranslate); _moveObjectRecognizer.ManipulationStartedEvent += MoveObjectStarted; _moveObjectRecognizer.ManipulationUpdatedEvent += MoveObjectUpdated; _moveObjectRecognizer.ManipulationCompletedEvent += MoveObjectCompleted; _moveObjectRecognizer.ManipulationCanceledEvent += MoveObjectCanceled; }
public void Initialize( [Inject] ITargetingManager targetingManager) { _targetingManager = targetingManager; _scaleObjectRecognizer = new GestureRecognizer(); _scaleObjectRecognizer.SetRecognizableGestures(GestureSettings.NavigationX); _scaleObjectRecognizer.NavigationStartedEvent += ScaleObjectStarted; _scaleObjectRecognizer.NavigationUpdatedEvent += ScaleObjectUpdated; _scaleObjectRecognizer.NavigationCompletedEvent += ScaleObjectCompleted; _scaleObjectRecognizer.NavigationCanceledEvent += ScaleObjectCanceled; _originalScale = transform.localScale; _currentScaleMultiplier = 1.0f; }
public ProgramManager( [Inject(Id = "Info text field")] Text infoText, [Inject(Id = "Info text root object")] GameObject infotextObject, [Inject] ITargetingManager targetingManager, [Inject(Id = "TCP Port")] int tcpPort, [Inject(Id = "UDP Port")] int udpPort, [Inject] ILeapConnectionManager connectionManager, [Inject(Id = "Calibration status")] ReactiveProperty <bool> calibrationStatus, [Inject] ILeapHandDataVisualizer handVisualizer) { // Assign all variables _currentState = States.PROGRAM_STARTED; _keywordRecognizer = new KeywordRecognizer(_keywords); _keywordRecognizer.OnPhraseRecognized += OnPhraseRecognized; _keywordRecognizer.Start(); _infotext = infoText; _infoTextObject = infotextObject; _targetingManager = targetingManager; _tcpPort = tcpPort; _udpPort = udpPort; _connectionManager = connectionManager; _calibrationStatus = calibrationStatus; _handVisualizer = handVisualizer; // Initialize the info text _infoTextObject.SetActive(true); _infotext.text = "Hello there! Say 'Do startup' to get going."; _infotext.SetAllDirty(); // Start observing the calibration status // Make sure to observe and subscribe on main thread, since the text field can only be updated on the main thread _calibrationStatus.ObserveOn(Scheduler.MainThread).SubscribeOn(Scheduler.MainThread).Subscribe(calibDone => { if (calibDone) { _currentState = States.CALIBRATION_DONE; // TODO: Add option to redo calibration instead. _infotext.text = "Calibration done. Check the results. Say 'Looks good' when done."; _handVisualizer.ShowHands(); } }); }