// Use this for initialization void Start() { _bodyManager = BodyManager.GetComponent <BodyManager>(); _kinectSensor = _bodyManager.GetSensor(); if (_kinectSensor != null) { // # of bodies (which is max. 6 like here) _bodyCount = _kinectSensor.BodyFrameSource.BodyCount; Debug.Log(_bodyCount); _bodyFrameReader = _kinectSensor.BodyFrameSource.OpenReader(); // initialize Body array with # of of bodies _bodies = new Body[_bodyCount]; // Initialize new GestureDetector list _gestureDetectorList = new List <GestureDetector>(); // For every body add a new GestureDetector instance to the list for (int bodyIndex = 0; bodyIndex < _bodyCount; bodyIndex++) { GestureTextGameObject.text = "none"; _gestureDetectorList.Add(new GestureDetector(_kinectSensor)); } // open KinectSensor for usage _kinectSensor.Open(); } else { // kinect sensor not connected } }
// Use this for initialization void Start() { /* _gameObjectBM = BodyManager.BM; if (BodyManager == null) { return; } */ // _bodyManager = BodyManager.GetComponent<BodyManager>(); _bodyManager = BodyManager.BM; if (_bodyManager == null) { return; } _canvasExerciseManager = CanvasExerciseManager.GetComponent<CanvasExerciseManager>(); _kinectSensor = _bodyManager.GetSensor(); // initialize Body array with # of maximum bodies _bodies = _bodyManager.GetBodies(); Debug.Log(_bodyManager + " | " + _bodies); //_bodyFrameReader = _kinectSensor.BodyFrameSource.OpenReader(); // Initialize new GestureDetector list _gestureDetectorList = new List<GestureDetector>(); // For every body add a new GestureDetector instance to the list for (int bodyIndex = 0; bodyIndex < _bodies.Length; bodyIndex++) { GestureTextGameObject.text = "none"; _gestureDetectorList.Add(new GestureDetector(_kinectSensor)); } }
// Use this for initialization void Start() { // ----------------------------------------- // ------------ INITIALIZATIONS ------------ // ----------------------------------------- CanvasHandCursor = GameObject.Find("CanvasHandCursor"); // Disable handcursor in execution mode TODO all disable in testmode, enable in production bodyManager = GameObject.Find("BodyManager"); KinectManager = GameObject.Find("KinectManager"); if (KinectManager == null) { return; } _kinectManager = KinectManager.GetComponent <KinectManager>(); _interactionManager = _kinectManager.GetComponent <InteractionManager>(); if (CanvasHandCursor.activeSelf) { _interactionManager.enabled = false; CanvasHandCursor.gameObject.SetActive(false); } Debug.Log("IsUserDetected: " + _kinectManager.IsUserDetected()); _exerciseExecutionValidationManager = ExerciseExecutionValidationManager.GetComponent <ExerciseExecutionValidationManager>(); // Reference to exercise data of current user // _currentExerciseData = UserDataObject.currentUser.exerciseData[PlayerPrefs.GetInt("CurrentExerciseId")]; _currentExerciseData = UserDataObject.GetCurrentExercise(); _lastExercise = UserDataObject.GetLastTierExercise(); // Duration manager _durationManager = durationManager.GetComponent <DurationManager>(); _minTimeAlreadyReached = false; _repsIterator = 0; _methodCheckedArray = new bool[UserDataObject.GetCurrentChecksArray().Length]; // ----------------------------------------- // ------------- UI COMPONENTS ------------- // ----------------------------------------- // Exercise name titleText.text = UserDataObject.GetCurrentExerciseName().ToUpper(); standingLegText.text = UserDataObject.GetCurrentSide().direction; successPanel = successPanel.GetComponent <CanvasGroup>(); // TODO implement success animation for rep foreach (var check in UserDataObject.GetCurrentChecksArray()) { GameObject gameObjectCheckItem = Instantiate(checkItem); CheckItem currentCheckItem = gameObjectCheckItem.GetComponent <CheckItem>(); currentCheckItem.methodName = check.methodName; currentCheckItem.description.text = check.description; checkItemList.Add(currentCheckItem); gameObjectCheckItem.transform.SetParent(checkSpacer, false); } // Array of Toggles _toggleArray = new Toggle[UserDataObject.GetCurrentRepetitionsArray().Length]; // Create and check toggles for each rep of current exercise foreach (var repetition in UserDataObject.GetCurrentRepetitionsArray()) { GameObject gameObjectToggle = Instantiate(toggle); Toggle currentToggle = gameObjectToggle.GetComponent <Toggle>(); _toggleArray[Array.IndexOf(UserDataObject.GetCurrentRepetitionsArray(), repetition)] = currentToggle; // Check if exercise not already accomplished if (!_currentExerciseData.accomplished) { // look for accomplished reps, check regarding toggles and set current rep if (repetition.accomplished) { _repsIterator += 1; currentToggle.GetComponent <Toggle>().isOn = true; } else if (_currentRepetition == null) { _currentRepetition = repetition; } } else // If exercise already accomplished { // Set first rep as current rep if (_currentRepetition == null) { repetition.attempts = 0; repetition.confidence = 0.0f; repetition.userTime = 0.0f; _currentRepetition = repetition; } } // Append GO to group gameObjectToggle.transform.SetParent(toggleGroup, false); } textReps.text = "Reps " + _repsIterator + "/" + UserDataObject.GetCurrentRepetitionsArray().Length; // Set ID of current repetition PlayerPrefs.SetInt("CurrentRepetitionId", Array.IndexOf(UserDataObject.GetCurrentRepetitionsArray(), _currentRepetition)); // ----------------------------------------- // ---------------- KINECT ----------------- // ----------------------------------------- _bodyManager = bodyManager.GetComponent <BodyManager>(); if (_bodyManager == null) { return; } _kinectSensor = _bodyManager.GetSensor(); _bodies = _bodyManager.GetBodies(); Debug.Log(_bodyManager + " | " + _bodies); // Initialize gesture detector object _gestureDetectorList = new List <GestureDetector>(); for (int bodyIndex = 0; bodyIndex < _bodies.Length; bodyIndex++) { _gestureDetectorList.Add(new GestureDetector(_kinectSensor)); } // Foot joints for getting positions _jointFootRight = KinectInterop.JointType.FootRight; _jointFootLeft = KinectInterop.JointType.FootLeft; _startingHeightDifference = UserDataObject.GetCurrentExerciseStartingHeightDifference(); heightTestIterator = 0; // Initial foot position if (_kinectManager.IsUserDetected()) { long userId = _kinectManager.GetPrimaryUserID(); if (_kinectManager.IsJointTracked(userId, (int)_jointFootRight) && _kinectManager.IsJointTracked(userId, (int)_jointFootLeft)) { _initialStartingHeightLeft = _kinectManager.GetJointKinectPosition(userId, (int)_jointFootLeft).y; _initialStartingHeightRight = _kinectManager.GetJointKinectPosition(userId, (int)_jointFootRight).y; initialLeftFootText.text += _initialStartingHeightLeft.ToString(); initialRightFootText.text += _initialStartingHeightRight.ToString(); } } _bothFeetUp = false; _inStartingPosition = false; if (UserDataObject.GetCurrentExerciseFileName() == "WalkForward") { _progressMinConfidence = 0.8f; } if (UserDataObject.GetCurrentExerciseFileName() == "BobOne") { _progressMinConfidence = 0.4f; } Debug.Log("_progressMinConfidence: " + _progressMinConfidence); }