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; }