예제 #1
0
    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);
        //  }
    }
예제 #2
0
    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;
        }
    }