public IEnumerator SwitchFaceTrackingStatusWithBuffer(float waitTime, FaceTrackingStatus nextState) { // print("SwitchFaceTrackingStatusWithBuffer START: " + Time.time); // while (true) // { yield return(new WaitForSeconds(waitTime)); // print("SwitchFaceTrackingStatusWithBuffer END: " + Time.time); SwitchFaceTrackingStatus(nextState); // } }
void SwitchFaceTrackingStatus(FaceTrackingStatus nextState) { faceTrackingStatus = nextState; switch (faceTrackingStatus) { //Do any game setup here. Spawn player and level etc. case FaceTrackingStatus.TooFar: TUA_ScreenManager.Instance.OutsideOfScreenFlow_OpenPanelOverTop(TUA_ScreenManager.Instance.GetScreenAnimByName("screen_trackingFail"), TUA_ScreenManager.ScreenTranstitionType.Fade, 2f); TUA_PPSEffectsManager.Instance.ToggleGreyscale(true); break; case FaceTrackingStatus.TooFarBuffer: //nextFaceTrackingStatus = FaceTrackingStatus.TooFar; //StartCoroutine("SwitchFaceTrackingBuffer"); faceTrackingLoss_coroutine = StartCoroutine(SwitchFaceTrackingStatusWithBuffer(faceTrackingLossBufferTime, FaceTrackingStatus.TooFar)); // StartCoroutine(faceTrackingLoss_coroutine); break; case FaceTrackingStatus.Good: // StopAllCoroutines(); if (faceTrackingLoss_coroutine != null) { StopCoroutine(faceTrackingLoss_coroutine); } // StopCoroutine("SwitchFaceTrackingBuffer"); TUA_ScreenManager.Instance.OutsideOfScreenFlow_CloseSpecific(TUA_ScreenManager.Instance.GetScreenAnimByName("screen_trackingFail"), TUA_ScreenManager.ScreenTranstitionType.Fade, 2f); TUA_ScreenManager.Instance.OutsideOfScreenFlow_CloseSpecific(TUA_ScreenManager.Instance.GetScreenAnimByName("screen_tracking_tooClose"), TUA_ScreenManager.ScreenTranstitionType.Fade, 2f); TUA_PPSEffectsManager.Instance.ToggleGreyscale(false); break; case FaceTrackingStatus.TooCloseBuffer: //nextFaceTrackingStatus = FaceTrackingStatus.TooClose; //StartCoroutine("SwitchFaceTrackingBuffer"); faceTrackingLoss_coroutine = StartCoroutine(SwitchFaceTrackingStatusWithBuffer(faceTrackingLossBufferTime, FaceTrackingStatus.TooClose)); //StartCoroutine(faceTrackingLoss_coroutine); break; case FaceTrackingStatus.TooClose: TUA_ScreenManager.Instance.OutsideOfScreenFlow_OpenPanelOverTop(TUA_ScreenManager.Instance.GetScreenAnimByName("screen_tracking_tooClose"), TUA_ScreenManager.ScreenTranstitionType.Fade, 2f); TUA_PPSEffectsManager.Instance.ToggleGreyscale(true); break; } }