//Log Dir http://docs.unity3d.com/Manual/LogFiles.html // requisiçao http get no unity // vlibras.lavid.ufpb.br:5000/glosa?texto=CASA%LAVID%123 using UnityEngine; using System.Collections; using System.Collections.Generic; using System; using System.IO; using System.Text; using System.Runtime.InteropServices; using UnityEngine.UI; using System.Threading; public class PlayerManager : GenericPlayerManager { private const string BASE_URL = "http://150.165.205.9/anims/ANDROID/"; private const string SERVER_URL = "http://vlibras.lavid.ufpb.br/glosa?texto="; protected VoiceRecognition voiceRecognizer; public InputField translateScreenText; private int version = 1; private string[] randomAnimationNames = new string[] { "[RELAXAR]", "[BOCEJAR]", "[COCHILAR]", "[ESPREGUI_ADA]" }; public GameObject textButton; public GameObject pauseButton; public GameObject pauseMenu; private SwitchImageAttribute pauseButtonImage; public ScreenManager screenManager; public override void Start() { this.pauseButtonImage = this.pauseButton.GetComponent(); base.setRandomAnimations(randomAnimationNames); base.Start(); // DEBUG: var onLoadPlayer = function(){} Application.ExternalCall("onLoadPlayer"); voiceRecognizer = new VoiceRecognition(); Screen.fullScreen = false; // Hide input text preview TouchScreenKeyboard.hideInput = true; } public void start_play() { base.play(); } // Stop loading, if loading // Don't stop animations, if playing // Load glosa, enqueue animations public void forcePlayInCache() { base.play(true, false, true); } public void start_play(string glosa) { if (glosa == null || String.IsNullOrEmpty(glosa.Trim())) return; base.glosa = glosa; forcePlayInCache(); } public void playDict(string word) { base.glosa = word; base.play(true, true, true); this.screenManager.hideScreen(); this.screenManager.setPauseMenuState(false); } public void playTranslate() { stopTranslation(); StartCoroutine("translate", translateScreenText.text); this.screenManager.setPauseMenuState(false); } public void stopTranslation() { StopCoroutine("translate"); this.randomAnimations.unlockFor("translate"); } public Text debugText; protected override WWW loadAssetBundle(string aniName) { return WWW.LoadFromCacheOrDownload(BASE_URL + aniName, version); } private bool playingState = false; private void setPlayingState(bool state) { if (this.playingState != state) { this.playingState = state; this.textButton.SetActive( ! state); this.pauseButton.SetActive(state); } } private System.Object stateLocker = new System.Object(); protected override void onPlayingStateChange() { lock (this.stateLocker) { if (base.isPlaying() && ! base.isPlayingIntervalAnimation()) { setPlayingState(true); if (base.isPaused()) { this.pauseButtonImage.switchAttribute(true); this.screenManager.setPauseMenuState(true); } else { this.pauseButtonImage.switchAttribute(false); this.screenManager.setPauseMenuState(false); } } else setPlayingState(false); } } // Called from microphone icon at main interface public void callVoiceRecognizer() { string glosa = voiceRecognizer.callRecognition(); //voiceRecognizerScreenConfirm.SetActive(true); InputField inp = GameObject.FindGameObjectWithTag("field_text_entry").GetComponent() as InputField; inp.text = glosa; this.screenManager.switchScreen("translate"); } private System.Object translateLocker = new System.Object(); private IEnumerator translate(string glosa) { lock (this.translateLocker) { base.randomAnimations.lockFor("translate"); this.screenManager.setLoadingSnippetState(true); WWW glosaRequest = new WWW(SERVER_URL + WWW.EscapeURL(glosa)); if (glosaRequest != null) { yield return glosaRequest.isDone; if (glosaRequest.error == null) { yield return glosaRequest; if ( ! String.IsNullOrEmpty(glosaRequest.text)) { Debug.Log("Server answer: " + glosaRequest.text); base.playNext(glosaRequest.text); this.screenManager.setLoadingSnippetState(false); base.randomAnimations.unlockFor("translate"); yield break; } else Debug.Log("Error at PlayerManager.translate: empty answer."); } else Debug.Log("Error at PlayerManager.translate: (WWW) glosaRequest: " + glosaRequest.error); } else Debug.Log ("Error at PlayerManager.translate: (WWW) glosaRequest is NULL."); base.glosa = glosa.ToUpper(); this.screenManager.setLoadingSnippetState(false); this.screenManager.showConnectionErrorDialog(); base.randomAnimations.unlockFor("translate"); } } }