Commit 86a015df8b49174823494466ed7c2ce0f6988713
1 parent
e37ad421
Exists in
master
and in
6 other branches
Adds frame wait on GPM; Fix traslation cancel button; Changes subtitles font; Im…
…proves Logger; Adds request waiter coroutine
Showing
11 changed files
with
227 additions
and
189 deletions
Show diff stats
Assets/Scenes/Main.unity
| ... | ... | @@ -4849,7 +4849,7 @@ MonoBehaviour: |
| 4849 | 4849 | m_CancelButton: Cancel |
| 4850 | 4850 | m_InputActionsPerSecond: 10 |
| 4851 | 4851 | m_RepeatDelay: 0.5 |
| 4852 | - m_ForceModuleActive: 0 | |
| 4852 | + m_ForceModuleActive: 1 | |
| 4853 | 4853 | --- !u!114 &842733393 |
| 4854 | 4854 | MonoBehaviour: |
| 4855 | 4855 | m_ObjectHideFlags: 0 |
| ... | ... | @@ -5796,9 +5796,10 @@ MonoBehaviour: |
| 5796 | 5796 | m_GameObject: {fileID: 970584908} |
| 5797 | 5797 | m_Enabled: 1 |
| 5798 | 5798 | m_EditorHideFlags: 0 |
| 5799 | - m_Script: {fileID: 11500000, guid: a9cc0ccbda0accb4ea816c19265b622f, type: 3} | |
| 5799 | + m_Script: {fileID: 11500000, guid: 2f9320693b408af41867b25eefd59d32, type: 3} | |
| 5800 | 5800 | m_Name: |
| 5801 | 5801 | m_EditorClassIdentifier: |
| 5802 | + maximumLines: 20 | |
| 5802 | 5803 | --- !u!114 &970584913 |
| 5803 | 5804 | MonoBehaviour: |
| 5804 | 5805 | m_ObjectHideFlags: 0 |
| ... | ... | @@ -7925,7 +7926,7 @@ RectTransform: |
| 7925 | 7926 | m_Children: |
| 7926 | 7927 | - {fileID: 1952387009} |
| 7927 | 7928 | m_Father: {fileID: 1620867682} |
| 7928 | - m_RootOrder: 0 | |
| 7929 | + m_RootOrder: 1 | |
| 7929 | 7930 | m_AnchorMin: {x: 0, y: 0} |
| 7930 | 7931 | m_AnchorMax: {x: 1, y: 1} |
| 7931 | 7932 | m_AnchoredPosition: {x: 0, y: 0} |
| ... | ... | @@ -10268,7 +10269,7 @@ RectTransform: |
| 10268 | 10269 | m_Children: |
| 10269 | 10270 | - {fileID: 1697118936} |
| 10270 | 10271 | m_Father: {fileID: 1620867682} |
| 10271 | - m_RootOrder: 1 | |
| 10272 | + m_RootOrder: 0 | |
| 10272 | 10273 | m_AnchorMin: {x: 0, y: 0} |
| 10273 | 10274 | m_AnchorMax: {x: 1, y: 0} |
| 10274 | 10275 | m_AnchoredPosition: {x: 0, y: 0} |
| ... | ... | @@ -10701,8 +10702,8 @@ RectTransform: |
| 10701 | 10702 | m_LocalScale: {x: 1, y: 1, z: 1} |
| 10702 | 10703 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
| 10703 | 10704 | m_Children: |
| 10704 | - - {fileID: 1265043070} | |
| 10705 | 10705 | - {fileID: 1533000892} |
| 10706 | + - {fileID: 1265043070} | |
| 10706 | 10707 | - {fileID: 1024302432} |
| 10707 | 10708 | - {fileID: 861767965} |
| 10708 | 10709 | - {fileID: 848083143} |
| ... | ... | @@ -11496,11 +11497,11 @@ MonoBehaviour: |
| 11496 | 11497 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, |
| 11497 | 11498 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null |
| 11498 | 11499 | m_FontData: |
| 11499 | - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} | |
| 11500 | + m_Font: {fileID: 12800000, guid: e0e3a41abb6c4a8419def4e22a7aa35e, type: 3} | |
| 11500 | 11501 | m_FontSize: 24 |
| 11501 | - m_FontStyle: 1 | |
| 11502 | + m_FontStyle: 0 | |
| 11502 | 11503 | m_BestFit: 0 |
| 11503 | - m_MinSize: 22 | |
| 11504 | + m_MinSize: 2 | |
| 11504 | 11505 | m_MaxSize: 80 |
| 11505 | 11506 | m_Alignment: 7 |
| 11506 | 11507 | m_AlignByGeometry: 0 | ... | ... |
Assets/Scripts/Player Manager/GenericPlayerManager.cs
| ... | ... | @@ -18,16 +18,17 @@ |
| 18 | 18 | * - Reprodução |
| 19 | 19 | * Quando não há acesso aos bundles dos sinais de pontuação, eles são ignorados. |
| 20 | 20 | * Ç adicionado como TYPE_WORD. |
| 21 | + * | |
| 22 | + * Log directory: http://docs.unity3d.com/Manual/LogFiles.html | |
| 21 | 23 | */ |
| 22 | 24 | |
| 23 | -//Log Dir http://docs.unity3d.com/Manual/LogFiles.html | |
| 24 | 25 | using UnityEngine; |
| 25 | 26 | using System.Collections; |
| 26 | 27 | using System.Collections.Generic; |
| 27 | 28 | using System; |
| 28 | 29 | using System.Threading; |
| 29 | 30 | using UnityEngine.UI; |
| 30 | -using LAViD.VLibras; | |
| 31 | +using LAViD.VLibras.Utils; | |
| 31 | 32 | |
| 32 | 33 | public abstract class GenericPlayerManager : MonoBehaviour { |
| 33 | 34 | |
| ... | ... | @@ -220,7 +221,7 @@ public abstract class GenericPlayerManager : MonoBehaviour { |
| 220 | 221 | return state; |
| 221 | 222 | } |
| 222 | 223 | catch (NullReferenceException nre) { |
| 223 | - LAViD.VLibras.Utils.Logger.Log("'" + name + "' não foi encontrado!\n" + nre.ToString()); | |
| 224 | + PlayerLogger.Log("'" + name + "' não foi encontrado!\n" + nre.ToString()); | |
| 224 | 225 | } |
| 225 | 226 | |
| 226 | 227 | return null; |
| ... | ... | @@ -245,21 +246,28 @@ public abstract class GenericPlayerManager : MonoBehaviour { |
| 245 | 246 | |
| 246 | 247 | /** |
| 247 | 248 | * Returns the asset bundle named aniName. |
| 248 | - * | |
| 249 | - * @return AssetBundle - se for encontrado. | |
| 250 | - * null - se ocorrer num erro. | |
| 249 | + * @return WWW - request. | |
| 251 | 250 | */ |
| 252 | 251 | protected abstract WWW loadAssetBundle(string aniName); |
| 253 | 252 | |
| 254 | - /** | |
| 255 | - * Listen to changes in the playing status. | |
| 253 | + /** | |
| 254 | + * Called when a bundle request causes error. | |
| 255 | + * @param gloss - gloss been loaded. | |
| 256 | + * @param word - bundle requested. | |
| 256 | 257 | */ |
| 257 | - protected abstract void onConnectionError(string gloss, string word); | |
| 258 | + public abstract void onConnectionError(string gloss, string word); | |
| 258 | 259 | |
| 259 | - /** | |
| 260 | + /** | |
| 260 | 261 | * Listen to changes in the playing status. |
| 261 | 262 | */ |
| 262 | - protected abstract void onPlayingStateChange(); | |
| 263 | + public abstract void onPlayingStateChange(); | |
| 264 | + | |
| 265 | + /** | |
| 266 | + * Waits for response or time runs out. | |
| 267 | + * Check for WWW.isDone, true if success, false if timeout. | |
| 268 | + * @param www - request. | |
| 269 | + */ | |
| 270 | + protected abstract IEnumerator WaitForResponse(WWW www); | |
| 263 | 271 | |
| 264 | 272 | protected abstract WWW getCheckConnectionRequest(); |
| 265 | 273 | |
| ... | ... | @@ -423,7 +431,7 @@ public abstract class GenericPlayerManager : MonoBehaviour { |
| 423 | 431 | this.subtitles.updateLetterSpeed(); |
| 424 | 432 | } |
| 425 | 433 | |
| 426 | - LAViD.VLibras.Utils.Logger.Log("Animação \"" + animName + "\" inexistente."); | |
| 434 | + PlayerLogger.Log("Animação \"" + animName + "\" inexistente."); | |
| 427 | 435 | } |
| 428 | 436 | else |
| 429 | 437 | { |
| ... | ... | @@ -505,10 +513,10 @@ public abstract class GenericPlayerManager : MonoBehaviour { |
| 505 | 513 | |
| 506 | 514 | if (checkConnectionRequest.responseHeaders.Count > 0) |
| 507 | 515 | { |
| 508 | - LAViD.VLibras.Utils.Logger.Log(checkConnectionRequest.responseHeaders["STATUS"]); | |
| 516 | + PlayerLogger.Log(checkConnectionRequest.responseHeaders["STATUS"]); | |
| 509 | 517 | connected = checkConnectionRequest.responseHeaders["STATUS"].Contains("404"); |
| 510 | 518 | } |
| 511 | - else LAViD.VLibras.Utils.Logger.Log("No response headers.");*/ | |
| 519 | + else PlayerLogger.Log("No response headers.");*/ | |
| 512 | 520 | |
| 513 | 521 | bool connected = true; |
| 514 | 522 | bool playingStarted = false; |
| ... | ... | @@ -523,21 +531,14 @@ public abstract class GenericPlayerManager : MonoBehaviour { |
| 523 | 531 | |
| 524 | 532 | if ( ! nonexistent && ! loaded && connected) |
| 525 | 533 | { |
| 526 | - WWW www = loadAssetBundle(aniName); | |
| 527 | - yield return www; | |
| 534 | + WWW bundleRequest = loadAssetBundle(aniName); | |
| 535 | + yield return WaitForResponse(bundleRequest); | |
| 528 | 536 | |
| 529 | - LAViD.VLibras.Utils.Logger.Log("Bundle request done (" + aniName + ")."); | |
| 537 | + PlayerLogger.Log("GPM", "lAP", "Bundle request done (" + aniName + ")."); | |
| 530 | 538 | |
| 531 | - if (www.error == null) | |
| 539 | + if (bundleRequest.isDone && bundleRequest.error == null) | |
| 532 | 540 | { |
| 533 | - AssetBundle bundle = www.assetBundle; | |
| 534 | - | |
| 535 | - /*LAViD.VLibras.Utils.Logger.Log("count: " + www.responseHeaders.Count); | |
| 536 | - if (www.responseHeaders.Count > 0) | |
| 537 | - LAViD.VLibras.Utils.Logger.Log(www.responseHeaders["STATUS"]); | |
| 538 | - | |
| 539 | - // if (www.responseHeaders.Count > 0 && www.responseHeaders["STATUS"].EndsWith("200 OK")); | |
| 540 | - */ | |
| 541 | + AssetBundle bundle = bundleRequest.assetBundle; | |
| 541 | 542 | |
| 542 | 543 | if (bundle != null && !String.IsNullOrEmpty(bundle.mainAsset.name)) |
| 543 | 544 | { |
| ... | ... | @@ -547,19 +548,22 @@ public abstract class GenericPlayerManager : MonoBehaviour { |
| 547 | 548 | if (aniClip) |
| 548 | 549 | { |
| 549 | 550 | COMPONENT_ANIMATION.AddClip(aniClip, aniName); |
| 550 | - yield return null; | |
| 551 | + if (playingStarted) yield return new WaitForEndOfFrame(); | |
| 551 | 552 | |
| 552 | 553 | loadedAssetBundles.Add(aniName); |
| 553 | 554 | loaded = true; |
| 554 | 555 | |
| 555 | - LAViD.VLibras.Utils.Logger.Log("Bundle \"" + aniName + "\" loaded!"); | |
| 556 | + PlayerLogger.Log("GPM", "lAP", "Bundle \"" + aniName + "\" loaded!"); | |
| 556 | 557 | } |
| 557 | - else LAViD.VLibras.Utils.Logger.Log("Sinal \"" + aniName + "\" foi não carregado corretamente."); | |
| 558 | + else PlayerLogger.Log("GPM", "lAP", "Sign \"" + aniName + "\" wasn't loaded successfuly."); | |
| 558 | 559 | } |
| 560 | + else PlayerLogger.Log("GPM", "lAP", "Bundle \"" + aniName + "\" wasn't loaded successfuly."); | |
| 561 | + | |
| 562 | + if ( ! loaded) nonexistentAssetBundles.Add(aniName); | |
| 559 | 563 | } |
| 560 | 564 | else |
| 561 | 565 | { |
| 562 | - LAViD.VLibras.Utils.Logger.Log("Connection error"); | |
| 566 | + PlayerLogger.Log("GPM", "lAP", "Connection error."); | |
| 563 | 567 | onConnectionError(gloss, aniName); |
| 564 | 568 | } |
| 565 | 569 | } |
| ... | ... | @@ -589,15 +593,7 @@ public abstract class GenericPlayerManager : MonoBehaviour { |
| 589 | 593 | // Soletra palavra |
| 590 | 594 | else |
| 591 | 595 | { |
| 592 | - // Se a animação não foi carregada e nem está marcada como não existente, | |
| 593 | - // adiciona ao set de animações não existentes | |
| 594 | - if ( ! nonexistent && connected) | |
| 595 | - { | |
| 596 | - LAViD.VLibras.Utils.Logger.Log("Non existent"); | |
| 597 | - nonexistentAssetBundles.Add(aniName); | |
| 598 | - } | |
| 599 | - | |
| 600 | - LAViD.VLibras.Utils.Logger.Log("~~ To spell: " + aniName); | |
| 596 | + PlayerLogger.Log("GPM", "lAP", "To spell: " + aniName); | |
| 601 | 597 | |
| 602 | 598 | if (this.flags.Contains(aniName) || this.intervalAnimations.Contains(aniName)) |
| 603 | 599 | { |
| ... | ... | @@ -626,8 +622,7 @@ public abstract class GenericPlayerManager : MonoBehaviour { |
| 626 | 622 | } |
| 627 | 623 | } |
| 628 | 624 | |
| 629 | - if (playingStarted) | |
| 630 | - yield return new WaitForEndOfFrame(); | |
| 625 | + if (playingStarted) yield return new WaitForEndOfFrame(); | |
| 631 | 626 | } |
| 632 | 627 | |
| 633 | 628 | // Default | ... | ... |
Assets/Scripts/Player Manager/Logger.cs
| ... | ... | @@ -1,28 +0,0 @@ |
| 1 | -using UnityEngine; | |
| 2 | -using UnityEngine.UI; | |
| 3 | - | |
| 4 | -namespace LAViD.VLibras.Utils { | |
| 5 | - | |
| 6 | - public class Logger : MonoBehaviour { | |
| 7 | - | |
| 8 | - public static Logger instance; | |
| 9 | - | |
| 10 | - private Text textObj; | |
| 11 | - | |
| 12 | - void Start() | |
| 13 | - { | |
| 14 | - Logger.instance = this; | |
| 15 | - this.textObj = this.gameObject.GetComponent<Text>(); | |
| 16 | - } | |
| 17 | - | |
| 18 | - public static void Log(string text) | |
| 19 | - { | |
| 20 | - if (Logger.instance != null) | |
| 21 | - Logger.instance.textObj.text = text + "\n" + Logger.instance.textObj.text; | |
| 22 | - | |
| 23 | - Debug.Log(text); | |
| 24 | - } | |
| 25 | - | |
| 26 | - } | |
| 27 | - | |
| 28 | -} |
Assets/Scripts/Player Manager/Logger.cs.meta
| ... | ... | @@ -1,12 +0,0 @@ |
| 1 | -fileFormatVersion: 2 | |
| 2 | -guid: a9cc0ccbda0accb4ea816c19265b622f | |
| 3 | -timeCreated: 1475716239 | |
| 4 | -licenseType: Pro | |
| 5 | -MonoImporter: | |
| 6 | - serializedVersion: 2 | |
| 7 | - defaultReferences: [] | |
| 8 | - executionOrder: 0 | |
| 9 | - icon: {instanceID: 0} | |
| 10 | - userData: | |
| 11 | - assetBundleName: | |
| 12 | - assetBundleVariant: |
| ... | ... | @@ -0,0 +1,32 @@ |
| 1 | +using UnityEngine; | |
| 2 | +using UnityEngine.UI; | |
| 3 | + | |
| 4 | +namespace LAViD.VLibras.Utils { | |
| 5 | + | |
| 6 | + public abstract class PlayerLogger : MonoBehaviour { | |
| 7 | + | |
| 8 | + public static PlayerLogger instance; | |
| 9 | + | |
| 10 | + protected virtual void Start() | |
| 11 | + { | |
| 12 | + PlayerLogger.instance = this; | |
| 13 | + } | |
| 14 | + | |
| 15 | + protected abstract void write(string text); | |
| 16 | + | |
| 17 | + public static void Log(string text) | |
| 18 | + { | |
| 19 | + if (PlayerLogger.instance != null) | |
| 20 | + PlayerLogger.instance.write(text); | |
| 21 | + | |
| 22 | + Debug.Log(text); | |
| 23 | + } | |
| 24 | + | |
| 25 | + public static void Log(string classSign, string methodSign, string text) | |
| 26 | + { | |
| 27 | + PlayerLogger.Log(classSign + "." + methodSign + ": " + text); | |
| 28 | + } | |
| 29 | + | |
| 30 | + } | |
| 31 | + | |
| 32 | +} | ... | ... |
| ... | ... | @@ -0,0 +1,12 @@ |
| 1 | +fileFormatVersion: 2 | |
| 2 | +guid: a9cc0ccbda0accb4ea816c19265b622f | |
| 3 | +timeCreated: 1475716239 | |
| 4 | +licenseType: Pro | |
| 5 | +MonoImporter: | |
| 6 | + serializedVersion: 2 | |
| 7 | + defaultReferences: [] | |
| 8 | + executionOrder: 0 | |
| 9 | + icon: {instanceID: 0} | |
| 10 | + userData: | |
| 11 | + assetBundleName: | |
| 12 | + assetBundleVariant: | ... | ... |
Assets/Scripts/Player Manager/Utils.cs
Assets/Scripts/PlayerManager.cs
| 1 | -//Log Dir http://docs.unity3d.com/Manual/LogFiles.html | |
| 2 | - | |
| 3 | -// requisiçao http get no unity | |
| 4 | -// vlibras.lavid.ufpb.br:5000/glosa?texto=CASA%LAVID%123 | |
| 5 | 1 | using UnityEngine; |
| 6 | 2 | using System.Collections; |
| 7 | -using System.Collections.Generic; | |
| 8 | 3 | using System; |
| 9 | -using System.IO; | |
| 10 | -using System.Text; | |
| 11 | -using System.Runtime.InteropServices; | |
| 12 | 4 | using UnityEngine.UI; |
| 13 | -using System.Threading; | |
| 14 | -using System.Net; | |
| 15 | 5 | using LAViD.VLibras.Utils; |
| 16 | 6 | |
| 17 | 7 | public class PlayerManager : GenericPlayerManager { |
| ... | ... | @@ -84,7 +74,7 @@ public class PlayerManager : GenericPlayerManager { |
| 84 | 74 | |
| 85 | 75 | public void playDict(string word) |
| 86 | 76 | { |
| 87 | - LAViD.VLibras.Utils.Logger.Log("Requesting dictionary: " + word); | |
| 77 | + PlayerLogger.Log("Requesting dictionary: " + word); | |
| 88 | 78 | |
| 89 | 79 | this.dictWord = word; |
| 90 | 80 | base.gloss = word; |
| ... | ... | @@ -130,20 +120,20 @@ public class PlayerManager : GenericPlayerManager { |
| 130 | 120 | |
| 131 | 121 | protected override WWW loadAssetBundle(string aniName) |
| 132 | 122 | { |
| 133 | - LAViD.VLibras.Utils.Logger.Log("Requesting bundle: " + BASE_URL + regionPath + aniName); | |
| 123 | + PlayerLogger.Log("PM", "lAB", "Requesting bundle: " + BASE_URL + regionPath + aniName); | |
| 134 | 124 | return WWW.LoadFromCacheOrDownload(BASE_URL + regionPath + aniName, this.regionHash); |
| 135 | 125 | } |
| 136 | 126 | |
| 137 | 127 | private System.Object LOCKER_STATE = new System.Object(); |
| 138 | 128 | |
| 139 | - protected override void onPlayingStateChange() | |
| 129 | + public override void onPlayingStateChange() | |
| 140 | 130 | { |
| 141 | 131 | lock (LOCKER_STATE) { |
| 142 | 132 | this.screenManager.changeStates(base.isPlaying(), base.isPaused(), ! String.IsNullOrEmpty(base.gloss)); |
| 143 | 133 | } |
| 144 | 134 | } |
| 145 | 135 | |
| 146 | - protected override void onConnectionError(string gloss, string word) | |
| 136 | + public override void onConnectionError(string gloss, string word) | |
| 147 | 137 | { |
| 148 | 138 | if (gloss.Equals(this.dictWord)) |
| 149 | 139 | { |
| ... | ... | @@ -156,11 +146,11 @@ public class PlayerManager : GenericPlayerManager { |
| 156 | 146 | // Called from microphone icon at main interface |
| 157 | 147 | public void callVoiceRecognizer() |
| 158 | 148 | { |
| 159 | - LAViD.VLibras.Utils.Logger.Log("Requesting voice recognizer"); | |
| 149 | + PlayerLogger.Log("Requesting voice recognizer"); | |
| 160 | 150 | |
| 161 | 151 | string gloss = voiceRecognizer.callRecognition(); |
| 162 | 152 | this.translateScreenText.text = gloss; |
| 163 | - LAViD.VLibras.Utils.Logger.Log("Voice recognizer answer: " + gloss); | |
| 153 | + PlayerLogger.Log("Voice recognizer answer: " + gloss); | |
| 164 | 154 | |
| 165 | 155 | this.screenManager.switchScreen("translate"); |
| 166 | 156 | } |
| ... | ... | @@ -179,11 +169,11 @@ public class PlayerManager : GenericPlayerManager { |
| 179 | 169 | if (connection.error == null) |
| 180 | 170 | { |
| 181 | 171 | if (connection.responseHeaders.Count > 0) |
| 182 | - LAViD.VLibras.Utils.Logger.Log(connection.responseHeaders["STATUS"]); | |
| 172 | + PlayerLogger.Log(connection.responseHeaders["STATUS"]); | |
| 183 | 173 | else |
| 184 | - LAViD.VLibras.Utils.Logger.Log("No STATUS"); | |
| 174 | + PlayerLogger.Log("No STATUS"); | |
| 185 | 175 | } |
| 186 | - else LAViD.VLibras.Utils.Logger.Log("ERROR: " + connection.error); | |
| 176 | + else PlayerLogger.Log("ERROR: " + connection.error); | |
| 187 | 177 | |
| 188 | 178 | return false;*/ |
| 189 | 179 | |
| ... | ... | @@ -199,7 +189,7 @@ public class PlayerManager : GenericPlayerManager { |
| 199 | 189 | { |
| 200 | 190 | if (e.Response != null) |
| 201 | 191 | { |
| 202 | - LAViD.VLibras.Utils.Logger.Log(((HttpWebResponse)e.Response).StatusCode); | |
| 192 | + PlayerLogger.Log(((HttpWebResponse)e.Response).StatusCode); | |
| 203 | 193 | return ((HttpWebResponse)e.Response).StatusCode == HttpStatusCode.NotFound; |
| 204 | 194 | } |
| 205 | 195 | } |
| ... | ... | @@ -210,90 +200,95 @@ public class PlayerManager : GenericPlayerManager { |
| 210 | 200 | return false;*/ |
| 211 | 201 | } |
| 212 | 202 | |
| 213 | - private IEnumerator translate(string gloss) | |
| 214 | - { | |
| 215 | - bool returnSuccess = true; | |
| 216 | - bool timeout = false; | |
| 203 | + protected override IEnumerator WaitForResponse(WWW www) | |
| 204 | + { | |
| 205 | + PlayerLogger.Log("PM", "WFR", "Stating time check."); | |
| 217 | 206 | |
| 218 | - LAViD.VLibras.Utils.Logger.Log("Requesting translator: " + gloss); | |
| 207 | +#if UNITY_ANDROID | |
| 208 | + const float timeoutLimit = 10f; | |
| 209 | +#elif UNITY_IOS | |
| 210 | + const float timeoutLimit = 3f; | |
| 211 | +#endif | |
| 212 | + | |
| 213 | + float timer = 0; | |
| 214 | + | |
| 215 | + while ( ! www.isDone) | |
| 216 | + { | |
| 217 | + if (timer > timeoutLimit) | |
| 218 | + { | |
| 219 | + PlayerLogger.Log("PM", "WFR", "Timeout."); | |
| 220 | + yield break; | |
| 221 | + } | |
| 219 | 222 | |
| 223 | +#if UNITY_ANDROID | |
| 224 | + timer += Time.deltaTime; | |
| 225 | + yield return null; | |
| 226 | +#elif UNITY_IOS | |
| 227 | + timer += 0.1f; | |
| 228 | + yield return new WaitForSeconds(0.1f); | |
| 229 | +#endif | |
| 230 | + } | |
| 231 | + | |
| 232 | + PlayerLogger.Log("PM", "WFR", "Done."); | |
| 233 | + } | |
| 234 | + | |
| 235 | + private IEnumerator translate(string gloss) | |
| 236 | + { | |
| 220 | 237 | base.randomAnimations.lockFor("translate"); |
| 221 | 238 | this.screenManager.setLoadingSnippetState(true); |
| 222 | 239 | |
| 223 | 240 | WWW glossRequest = new WWW(SERVER_URL + WWW.EscapeURL(gloss)); |
| 224 | - LAViD.VLibras.Utils.Logger.Log("Translate: Request: " + SERVER_URL + WWW.EscapeURL(gloss)); | |
| 225 | 241 | |
| 226 | - if (glossRequest != null) | |
| 227 | - { | |
| 228 | - const float timeoutLimit = 10f; | |
| 229 | - float timer = 0; | |
| 230 | - | |
| 231 | - LAViD.VLibras.Utils.Logger.Log("Translate: Stating time check."); | |
| 242 | + PlayerLogger.Log("PM", "t", "Gloss: " + gloss); | |
| 243 | + PlayerLogger.Log("PM", "t", "Request: " + SERVER_URL + WWW.EscapeURL(gloss)); | |
| 244 | + | |
| 245 | + yield return WaitForResponse(glossRequest); | |
| 232 | 246 | |
| 233 | - while (!glossRequest.isDone) | |
| 247 | + try { | |
| 248 | + if ( ! glossRequest.isDone) | |
| 234 | 249 | { |
| 235 | - if (timer > timeoutLimit) | |
| 236 | - { | |
| 237 | - timeout = true; | |
| 238 | - break; | |
| 239 | - } | |
| 240 | - | |
| 241 | - timer += Time.deltaTime; | |
| 242 | - yield return null; | |
| 250 | + this.screenManager.showConnectionErrorDialog( | |
| 251 | + PlayerManager.ERROR_STATUS_MESSAGE.CONNECTION_TIMEOUT_FAILURE); | |
| 252 | + | |
| 253 | + PlayerLogger.Log("PM", "t", "Timeout."); | |
| 243 | 254 | } |
| 255 | + else if (glossRequest.error != null) | |
| 256 | + { | |
| 257 | + this.screenManager.showConnectionErrorDialog( | |
| 258 | + PlayerManager.ERROR_STATUS_MESSAGE.INTERNET_CONNECTION_FAILURE); | |
| 244 | 259 | |
| 245 | - LAViD.VLibras.Utils.Logger.Log("Translate: Timeout check finished."); | |
| 260 | + PlayerLogger.Log("PM", "t", "(WWW) Error: " + glossRequest.error); | |
| 261 | + } | |
| 262 | + else if (glossRequest.responseHeaders.Count == 0 || !glossRequest.responseHeaders["STATUS"].EndsWith("200 OK")) | |
| 263 | + { | |
| 264 | + PlayerLogger.Log("PM", "t", "Unsuccessful answer."); | |
| 246 | 265 | |
| 247 | - if (!timeout) | |
| 266 | + this.screenManager.showConnectionErrorDialog( | |
| 267 | + PlayerManager.ERROR_STATUS_MESSAGE.TRANSLATOR_CONNECTION_FAILURE); | |
| 268 | + } | |
| 269 | + else if (String.IsNullOrEmpty(glossRequest.text)) | |
| 248 | 270 | { |
| 249 | - if (glossRequest.error == null) | |
| 250 | - { | |
| 251 | - LAViD.VLibras.Utils.Logger.Log("Translate: Request: count=" + glossRequest.responseHeaders.Count + ", status=" + glossRequest.responseHeaders["STATUS"]); | |
| 252 | - returnSuccess = glossRequest.responseHeaders.Count > 0 && glossRequest.responseHeaders["STATUS"].EndsWith("200 OK"); | |
| 253 | - | |
| 254 | - if (returnSuccess) | |
| 255 | - { | |
| 256 | - if (!String.IsNullOrEmpty(glossRequest.text)) | |
| 257 | - { | |
| 258 | - LAViD.VLibras.Utils.Logger.Log("Translator answer: " + glossRequest.text); | |
| 259 | - | |
| 260 | - base.gloss = glossRequest.text; | |
| 261 | - base.playNow(glossRequest.text); | |
| 262 | - this.screenManager.setLoadingSnippetState(false); | |
| 263 | - base.randomAnimations.unlockFor("translate"); | |
| 264 | - | |
| 265 | - yield break; | |
| 266 | - } | |
| 267 | - else LAViD.VLibras.Utils.Logger.Log("Error at PlayerManager.translate: empty answer."); | |
| 268 | - } | |
| 269 | - else LAViD.VLibras.Utils.Logger.Log("Error at PlayerManager.translate: unsuccessful answer."); | |
| 270 | - } | |
| 271 | - else LAViD.VLibras.Utils.Logger.Log("Error at PlayerManager.translate: (WWW) glosaRequest: " + glossRequest.error); | |
| 271 | + PlayerLogger.Log("PM", "t", "Empty answer."); | |
| 272 | 272 | } |
| 273 | - else LAViD.VLibras.Utils.Logger.Log("Error at PlayerManager.translate: timeout."); | |
| 274 | - } | |
| 275 | - else LAViD.VLibras.Utils.Logger.Log ("Error at PlayerManager.translate: (WWW) glosaRequest is NULL."); | |
| 273 | + else | |
| 274 | + { | |
| 275 | + PlayerLogger.Log("PM", "t", "Answer: " + glossRequest.text); | |
| 276 | 276 | |
| 277 | - base.gloss = gloss.ToUpper(); | |
| 277 | + gloss = glossRequest.text; | |
| 278 | 278 | |
| 279 | - this.screenManager.setLoadingSnippetState(false); | |
| 280 | - base.randomAnimations.unlockFor("translate"); | |
| 279 | + base.gloss = gloss; | |
| 280 | + base.playNow(base.gloss); | |
| 281 | 281 | |
| 282 | - if (returnSuccess) | |
| 283 | - { | |
| 284 | - this.screenManager.showConnectionErrorDialog( | |
| 285 | - PlayerManager.ERROR_STATUS_MESSAGE.TRANSLATOR_CONNECTION_FAILURE); | |
| 282 | + yield break; | |
| 283 | + } | |
| 284 | + | |
| 285 | + base.gloss = gloss.ToUpper(); | |
| 286 | 286 | } |
| 287 | - else if (timeout) | |
| 287 | + finally | |
| 288 | 288 | { |
| 289 | - this.screenManager.showConnectionErrorDialog( | |
| 290 | - PlayerManager.ERROR_STATUS_MESSAGE.CONNECTION_TIMEOUT_FAILURE); | |
| 289 | + this.screenManager.setLoadingSnippetState(false); | |
| 290 | + base.randomAnimations.unlockFor("translate"); | |
| 291 | 291 | } |
| 292 | - else | |
| 293 | - { | |
| 294 | - this.screenManager.showConnectionErrorDialog( | |
| 295 | - PlayerManager.ERROR_STATUS_MESSAGE.INTERNET_CONNECTION_FAILURE); | |
| 296 | - } | |
| 297 | - } | |
| 292 | + } | |
| 298 | 293 | |
| 299 | 294 | } | ... | ... |
Assets/Scripts/UI/ScreenManager.cs
| ... | ... | @@ -125,6 +125,12 @@ public class ScreenManager : MonoBehaviour { |
| 125 | 125 | } |
| 126 | 126 | } |
| 127 | 127 | |
| 128 | + private void pause() | |
| 129 | + { | |
| 130 | + playerManager.setPauseState(true); | |
| 131 | + setPauseMenuState(true); | |
| 132 | + } | |
| 133 | + | |
| 128 | 134 | public void switchScreen(GameObject screen) |
| 129 | 135 | { |
| 130 | 136 | bool active = screen.activeSelf; |
| ... | ... | @@ -135,16 +141,13 @@ public class ScreenManager : MonoBehaviour { |
| 135 | 141 | |
| 136 | 142 | screen.SetActive(true); |
| 137 | 143 | |
| 138 | - if (playerManager.isPlayingIntervalAnimation()) | |
| 139 | - playerManager.stopAll(); | |
| 144 | + if (playerManager.isPlayingIntervalAnimation()) | |
| 145 | + playerManager.stopAll(); | |
| 140 | 146 | |
| 141 | - else if (playerManager.isPlaying()) | |
| 142 | - { | |
| 143 | - playerManager.setPauseState(true); | |
| 144 | - setPauseMenuState(true); | |
| 145 | - } | |
| 146 | - | |
| 147 | - setAvatarColliderState(false); | |
| 147 | + else if (playerManager.isPlaying()) | |
| 148 | + pause(); | |
| 149 | + | |
| 150 | + setAvatarColliderState(false); | |
| 148 | 151 | randomAnimations.lockFor(LOCK_ID); |
| 149 | 152 | |
| 150 | 153 | if (screen == infoScreen) |
| ... | ... | @@ -181,6 +184,9 @@ public class ScreenManager : MonoBehaviour { |
| 181 | 184 | { |
| 182 | 185 | settingsPanel.Animate(true); |
| 183 | 186 | setPanelOpen(true); |
| 187 | + | |
| 188 | + if (playerManager.isPlaying()) | |
| 189 | + pause(); | |
| 184 | 190 | } |
| 185 | 191 | |
| 186 | 192 | public void openRegionPanel() | ... | ... |
| ... | ... | @@ -0,0 +1,31 @@ |
| 1 | +using System.Collections.Generic; | |
| 2 | +using UnityEngine.UI; | |
| 3 | + | |
| 4 | +namespace LAViD.VLibras.Utils { | |
| 5 | + | |
| 6 | + public class VisualLogger : PlayerLogger { | |
| 7 | + | |
| 8 | + private Text textObj; | |
| 9 | + public int maximumLines = 20; | |
| 10 | + | |
| 11 | + private List<string> logs = new List<string>(); | |
| 12 | + | |
| 13 | + protected override void Start() | |
| 14 | + { | |
| 15 | + base.Start(); | |
| 16 | + this.textObj = this.gameObject.GetComponent<Text>(); | |
| 17 | + } | |
| 18 | + | |
| 19 | + protected override void write(string text) | |
| 20 | + { | |
| 21 | + this.logs.Insert(0, text); | |
| 22 | + | |
| 23 | + if (this.logs.Count > this.maximumLines) | |
| 24 | + this.logs.RemoveAt(this.logs.Count - 1); | |
| 25 | + | |
| 26 | + this.textObj.text = string.Join("\n", this.logs.ToArray()); | |
| 27 | + } | |
| 28 | + | |
| 29 | + } | |
| 30 | + | |
| 31 | +} | |
| 0 | 32 | \ No newline at end of file | ... | ... |
| ... | ... | @@ -0,0 +1,12 @@ |
| 1 | +fileFormatVersion: 2 | |
| 2 | +guid: 2f9320693b408af41867b25eefd59d32 | |
| 3 | +timeCreated: 1475762751 | |
| 4 | +licenseType: Pro | |
| 5 | +MonoImporter: | |
| 6 | + serializedVersion: 2 | |
| 7 | + defaultReferences: [] | |
| 8 | + executionOrder: 0 | |
| 9 | + icon: {instanceID: 0} | |
| 10 | + userData: | |
| 11 | + assetBundleName: | |
| 12 | + assetBundleVariant: | ... | ... |