void Awake() { instance = this; }
// starts playing public bool StartPlaying() { if (isPlaying) { return(false); } isPlaying = true; inicializado = true; //para terminar de leer la misma frase move_finished = false; if (!_vista_previa && !_Movimiento_registrado_play) { // Movimientos Gesture_Action movimiento = Gesture_Action.Instance; movimiento.LeerMovimiento(filePath); movimiento.Comparar = true; } // avoid recording an playing at the same time if (isRecording && isPlaying) { isRecording = false; Debug.Log("Recording stopped."); } // stop playing if there is no file name specified //if(filePath.Length == 0 || !File.Exists(filePath)) //{ // isPlaying = false; // Debug.LogError("No file to play."); // if(infoText != null) // { // infoText.text = "No file to play."; // } //} if (isPlaying) { Debug.Log("Playing started."); if (infoText != null) { infoText.text = "Playing... Say 'Stop' to stop the player."; } // initialize times fStartTime = fCurrentTime = Time.time; fCurrentFrame = -1; // open the file and read a line #if !UNITY_WSA TextAsset asset = Resources.Load("movimientos/" + filePath) as TextAsset; // convert string to stream byte[] byteArray = Encoding.UTF8.GetBytes(asset.text); //byte[] byteArray = Encoding.ASCII.GetBytes(contents); MemoryStream stream = new MemoryStream(byteArray); // convert stream to string fileReader = new StreamReader(stream); #endif ReadLineFromFile(); // enable the play mode if (manager) { manager.maxTrackedUsers = 2; if (_registro_comparacion) { //para reproducir el movimiento con el usuario a la vez para ver errores manager.EnablePlayMode(true); _registro_comparacion = false; } else { // para reproducir la grabacion y usuario captado con la kinect manager.EnableCompareMode(true); } } } return(isPlaying); }
// stops recording or playing public void StopRecordingOrPlaying() { if (isRecording) { isRecording = false; Debug.Log("Recording stopped."); if (infoText != null) { infoText.text = "Recording stopped."; } } if (isPlaying) { // close the file, if it is playing CloseFile(); isPlaying = false; manager.maxTrackedUsers = 1; Debug.Log("Playing stopped."); Gesture_Action movimiento = Gesture_Action.Instance; //se resetea el gesto if (_click_buttón) { Int64 userID = manager ? manager.GetUserIdByIndex(0) : 0; manager.ResetGesture(userID, KinectGestures.Gestures.Move); inpose = false; movimiento.Comparar = false; movimiento.infoText_Movimiento.text = ""; movimiento.cambiar_calibrar_texto(""); _click_buttón = false; } play.interactable = true; cambiar_movimiento.interactable = true; //ref_hijos canvas_iteracion = GameObject.Find("Canvas iteración").GetComponent<ref_hijos>(); //GameObject.Find("KinectController").GetComponent<KinectGestures>().SetMostrar_Mensaje_Calibrar(true); _calibracion = true; Canvas_iteracion.GetComponent <ref_hijos>().button_Comparar.SetActive(true); Canvas_iteracion.GetComponent <ref_hijos>().button_Cancelar_Comparar.SetActive(false); if (infoText != null) { infoText.text = "Playing stopped."; } _Movimiento_registrado_play = false; } if (infoText != null) { infoText.text = "Say: 'Record' to start the recorder, or 'Play' to start the player."; } }
private void Mostrar_Errores_Movimiento() { int i = 1; Gesture_Action mov = Gesture_Action.Instance; AvatarPlay.GetComponent <huesitos>().Reset_Color_bones(); this.texto_pizarra.GetComponent <TextMeshProUGUI>().text = ""; List <string> texto = new List <string>(); while (i < 25) { Vector3 vectorplay = cubemanPay.GetComponent <CubemanController>().GetBones()[i].transform.localPosition; Vector3 vectorcord = cubemanRecorder.GetComponent <CubemanController>().GetBones()[i].transform.localPosition; float playx = vectorplay.x; float playy = vectorplay.y; float playz = vectorplay.z; float cordx = vectorcord.x; float cordy = vectorcord.y; float cordz = vectorcord.z; bool inpose = ((playx <= (cordx + mov.Error_Margin)) && (playx >= (cordx - mov.Error_Margin))) && ((playy <= (cordy + mov.Error_Margin)) && (playy >= (cordy - mov.Error_Margin))) && ((playz <= (cordz + mov.Error_Margin)) && (playz >= (cordz - mov.Error_Margin))); //huesito rojo y logica de corrección de movimiento if (!inpose) { AvatarPlay.GetComponent <huesitos>().Paint_Bone_red(i); string correccion = "\u2022<indent=3.5em>Mueve <#F74A05>" + BonetoString[i] + "</color> hacia la "; //Se identifica si es derecha o izquierda if ((playx - cordx) > 0) { //moverse a la izquierda correccion += " <#16B42B>derecha </color> y "; } else { //moverse a la derecha correccion += " <color=red>izquierda </color> y "; } //Se identifica hacia delante o hacia atás if ((playz - cordz) > 0) { //abajo correccion += "<#10B9F6>atrás </color>"; } else { //arriba correccion += "<color=purple>adelante </color>"; } //Se identifica arriba o abajo if ((playy - cordy) > 0) { //abajo correccion += "acompañado de un movimiento<#FC0EF4> descendente.</color></indent>"; } else { //arriba correccion += "acompañado de un movimiento<color=blue> ascendente. </color></indent>"; } Debug.Log(correccion); if (!texto.Contains(correccion)) { texto.Add(correccion); } } i++; } for (int j = 0; j < texto.Count; j++) { //Texto_correccion.text += texto[j] + "\n"; this.texto_pizarra.GetComponent <TextMeshProUGUI>().text += texto[j] + "\n"; } if (texto.Count == 0) { //Texto_correccion.text = "Error en calibración de movimiento intentelo de nuevo." + "\n"; this.texto_pizarra.GetComponent <TextMeshProUGUI>().text = "Error en calibración de movimiento intentelo de nuevo." + "\n"; } }