Example #1
0
    protected override IEnumerator Init()
    {
        //get Questionary from json
        questions = QuestionManager.Instance.GetQuestions(conf.questionAmount);

        panels = new AnswerPanel[2];

        GameObject left = Instantiate(panel, panelHolder, false);

        left.transform.SetAsFirstSibling();
        GameObject right = Instantiate(panel, panelHolder, false);

        panels[0] = left.GetComponent <AnswerPanel>();
        panels[1] = right.GetComponent <AnswerPanel>();


        ToggleSlider(false);

        if (AppManager.useVirtualWorld)
        {
            gameCamera.targetTexture = VirtualWorldController.Instance.triviaQuizRenderTarget;

            Camera virtualWorldCam = GameController.Instance.mainSceneCamera;
            //gameCamera.enabled = false;

            Transform chalkBoard     = VirtualWorldController.Instance.chalkBoard;
            Vector3   positionOffset = chalkBoard.right * cameraPositionOffset.x + chalkBoard.up * cameraPositionOffset.y + chalkBoard.forward * cameraPositionOffset.z;
            yield return(StartCoroutine(Tween.TweenPositionAndRotation(virtualWorldCam.transform, chalkBoard.position + positionOffset, chalkBoard.rotation * cameraRotation, 3f)));
        }

        hRC = BodyDisplay.handRaisedCompare;

        yield break;
    }
    protected override IEnumerator Execute()
    {
        yield return(new WaitForSeconds(1));

        int cornersToConfigure = 3;

        Vector3[] corners = new Vector3[cornersToConfigure];
        BodyDisplay.PositionCompare hRC = BodyDisplay.handRaisedCompare;

        for (int i = 0; i < cornersToConfigure; i++)
        {
            taskText.text = StringRes.Get("_GoToCorner");
            //glow a lamp
            //show UI Text
            //leave some time for the person to raise their hand
            //save the position in the corners[]

            float remainingTime = TIMEOUT;
            while (remainingTime > 0f)
            {
                remainingTime -= Time.deltaTime;
                yield return(null);

                if (BodyDisplay.Instance.JointCompare(JointId.Head, JointId.HandLeft, hRC) ||
                    BodyDisplay.Instance.JointCompare(JointId.Head, JointId.HandRight, hRC)
                    )
                {
                    Vector3 position = BodyDisplay.Instance.GetBodyPosition();
                    Instantiate(cornerMarker, position, Quaternion.Euler(90, 0, 0));
                    corners[i] = position;
                    //Debug.Log("DetectedHandRaised! Set Corner at " + position);
                    yield return(new WaitForSeconds(3));

                    //set corner at position
                    break;
                }
            }
            if (remainingTime <= 0f)
            {
                Debug.LogError("Corner Configuration timed out");
                yield break;
            }
        }

        RoomManager.Instance.CreateRoom(corners, true);
        yield break;
    }