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,7 +4849,7 @@ MonoBehaviour: | ||
| 4849 | m_CancelButton: Cancel | 4849 | m_CancelButton: Cancel |
| 4850 | m_InputActionsPerSecond: 10 | 4850 | m_InputActionsPerSecond: 10 |
| 4851 | m_RepeatDelay: 0.5 | 4851 | m_RepeatDelay: 0.5 |
| 4852 | - m_ForceModuleActive: 0 | 4852 | + m_ForceModuleActive: 1 |
| 4853 | --- !u!114 &842733393 | 4853 | --- !u!114 &842733393 |
| 4854 | MonoBehaviour: | 4854 | MonoBehaviour: |
| 4855 | m_ObjectHideFlags: 0 | 4855 | m_ObjectHideFlags: 0 |
| @@ -5796,9 +5796,10 @@ MonoBehaviour: | @@ -5796,9 +5796,10 @@ MonoBehaviour: | ||
| 5796 | m_GameObject: {fileID: 970584908} | 5796 | m_GameObject: {fileID: 970584908} |
| 5797 | m_Enabled: 1 | 5797 | m_Enabled: 1 |
| 5798 | m_EditorHideFlags: 0 | 5798 | m_EditorHideFlags: 0 |
| 5799 | - m_Script: {fileID: 11500000, guid: a9cc0ccbda0accb4ea816c19265b622f, type: 3} | 5799 | + m_Script: {fileID: 11500000, guid: 2f9320693b408af41867b25eefd59d32, type: 3} |
| 5800 | m_Name: | 5800 | m_Name: |
| 5801 | m_EditorClassIdentifier: | 5801 | m_EditorClassIdentifier: |
| 5802 | + maximumLines: 20 | ||
| 5802 | --- !u!114 &970584913 | 5803 | --- !u!114 &970584913 |
| 5803 | MonoBehaviour: | 5804 | MonoBehaviour: |
| 5804 | m_ObjectHideFlags: 0 | 5805 | m_ObjectHideFlags: 0 |
| @@ -7925,7 +7926,7 @@ RectTransform: | @@ -7925,7 +7926,7 @@ RectTransform: | ||
| 7925 | m_Children: | 7926 | m_Children: |
| 7926 | - {fileID: 1952387009} | 7927 | - {fileID: 1952387009} |
| 7927 | m_Father: {fileID: 1620867682} | 7928 | m_Father: {fileID: 1620867682} |
| 7928 | - m_RootOrder: 0 | 7929 | + m_RootOrder: 1 |
| 7929 | m_AnchorMin: {x: 0, y: 0} | 7930 | m_AnchorMin: {x: 0, y: 0} |
| 7930 | m_AnchorMax: {x: 1, y: 1} | 7931 | m_AnchorMax: {x: 1, y: 1} |
| 7931 | m_AnchoredPosition: {x: 0, y: 0} | 7932 | m_AnchoredPosition: {x: 0, y: 0} |
| @@ -10268,7 +10269,7 @@ RectTransform: | @@ -10268,7 +10269,7 @@ RectTransform: | ||
| 10268 | m_Children: | 10269 | m_Children: |
| 10269 | - {fileID: 1697118936} | 10270 | - {fileID: 1697118936} |
| 10270 | m_Father: {fileID: 1620867682} | 10271 | m_Father: {fileID: 1620867682} |
| 10271 | - m_RootOrder: 1 | 10272 | + m_RootOrder: 0 |
| 10272 | m_AnchorMin: {x: 0, y: 0} | 10273 | m_AnchorMin: {x: 0, y: 0} |
| 10273 | m_AnchorMax: {x: 1, y: 0} | 10274 | m_AnchorMax: {x: 1, y: 0} |
| 10274 | m_AnchoredPosition: {x: 0, y: 0} | 10275 | m_AnchoredPosition: {x: 0, y: 0} |
| @@ -10701,8 +10702,8 @@ RectTransform: | @@ -10701,8 +10702,8 @@ RectTransform: | ||
| 10701 | m_LocalScale: {x: 1, y: 1, z: 1} | 10702 | m_LocalScale: {x: 1, y: 1, z: 1} |
| 10702 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} | 10703 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
| 10703 | m_Children: | 10704 | m_Children: |
| 10704 | - - {fileID: 1265043070} | ||
| 10705 | - {fileID: 1533000892} | 10705 | - {fileID: 1533000892} |
| 10706 | + - {fileID: 1265043070} | ||
| 10706 | - {fileID: 1024302432} | 10707 | - {fileID: 1024302432} |
| 10707 | - {fileID: 861767965} | 10708 | - {fileID: 861767965} |
| 10708 | - {fileID: 848083143} | 10709 | - {fileID: 848083143} |
| @@ -11496,11 +11497,11 @@ MonoBehaviour: | @@ -11496,11 +11497,11 @@ MonoBehaviour: | ||
| 11496 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, | 11497 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, |
| 11497 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | 11498 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null |
| 11498 | m_FontData: | 11499 | m_FontData: |
| 11499 | - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} | 11500 | + m_Font: {fileID: 12800000, guid: e0e3a41abb6c4a8419def4e22a7aa35e, type: 3} |
| 11500 | m_FontSize: 24 | 11501 | m_FontSize: 24 |
| 11501 | - m_FontStyle: 1 | 11502 | + m_FontStyle: 0 |
| 11502 | m_BestFit: 0 | 11503 | m_BestFit: 0 |
| 11503 | - m_MinSize: 22 | 11504 | + m_MinSize: 2 |
| 11504 | m_MaxSize: 80 | 11505 | m_MaxSize: 80 |
| 11505 | m_Alignment: 7 | 11506 | m_Alignment: 7 |
| 11506 | m_AlignByGeometry: 0 | 11507 | m_AlignByGeometry: 0 |
Assets/Scripts/Player Manager/GenericPlayerManager.cs
| @@ -18,16 +18,17 @@ | @@ -18,16 +18,17 @@ | ||
| 18 | * - Reprodução | 18 | * - Reprodução |
| 19 | * Quando não há acesso aos bundles dos sinais de pontuação, eles são ignorados. | 19 | * Quando não há acesso aos bundles dos sinais de pontuação, eles são ignorados. |
| 20 | * Ç adicionado como TYPE_WORD. | 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 | using UnityEngine; | 25 | using UnityEngine; |
| 25 | using System.Collections; | 26 | using System.Collections; |
| 26 | using System.Collections.Generic; | 27 | using System.Collections.Generic; |
| 27 | using System; | 28 | using System; |
| 28 | using System.Threading; | 29 | using System.Threading; |
| 29 | using UnityEngine.UI; | 30 | using UnityEngine.UI; |
| 30 | -using LAViD.VLibras; | 31 | +using LAViD.VLibras.Utils; |
| 31 | 32 | ||
| 32 | public abstract class GenericPlayerManager : MonoBehaviour { | 33 | public abstract class GenericPlayerManager : MonoBehaviour { |
| 33 | 34 | ||
| @@ -220,7 +221,7 @@ public abstract class GenericPlayerManager : MonoBehaviour { | @@ -220,7 +221,7 @@ public abstract class GenericPlayerManager : MonoBehaviour { | ||
| 220 | return state; | 221 | return state; |
| 221 | } | 222 | } |
| 222 | catch (NullReferenceException nre) { | 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 | return null; | 227 | return null; |
| @@ -245,21 +246,28 @@ public abstract class GenericPlayerManager : MonoBehaviour { | @@ -245,21 +246,28 @@ public abstract class GenericPlayerManager : MonoBehaviour { | ||
| 245 | 246 | ||
| 246 | /** | 247 | /** |
| 247 | * Returns the asset bundle named aniName. | 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 | protected abstract WWW loadAssetBundle(string aniName); | 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 | * Listen to changes in the playing status. | 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 | protected abstract WWW getCheckConnectionRequest(); | 272 | protected abstract WWW getCheckConnectionRequest(); |
| 265 | 273 | ||
| @@ -423,7 +431,7 @@ public abstract class GenericPlayerManager : MonoBehaviour { | @@ -423,7 +431,7 @@ public abstract class GenericPlayerManager : MonoBehaviour { | ||
| 423 | this.subtitles.updateLetterSpeed(); | 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 | else | 436 | else |
| 429 | { | 437 | { |
| @@ -505,10 +513,10 @@ public abstract class GenericPlayerManager : MonoBehaviour { | @@ -505,10 +513,10 @@ public abstract class GenericPlayerManager : MonoBehaviour { | ||
| 505 | 513 | ||
| 506 | if (checkConnectionRequest.responseHeaders.Count > 0) | 514 | if (checkConnectionRequest.responseHeaders.Count > 0) |
| 507 | { | 515 | { |
| 508 | - LAViD.VLibras.Utils.Logger.Log(checkConnectionRequest.responseHeaders["STATUS"]); | 516 | + PlayerLogger.Log(checkConnectionRequest.responseHeaders["STATUS"]); |
| 509 | connected = checkConnectionRequest.responseHeaders["STATUS"].Contains("404"); | 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 | bool connected = true; | 521 | bool connected = true; |
| 514 | bool playingStarted = false; | 522 | bool playingStarted = false; |
| @@ -523,21 +531,14 @@ public abstract class GenericPlayerManager : MonoBehaviour { | @@ -523,21 +531,14 @@ public abstract class GenericPlayerManager : MonoBehaviour { | ||
| 523 | 531 | ||
| 524 | if ( ! nonexistent && ! loaded && connected) | 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 | if (bundle != null && !String.IsNullOrEmpty(bundle.mainAsset.name)) | 543 | if (bundle != null && !String.IsNullOrEmpty(bundle.mainAsset.name)) |
| 543 | { | 544 | { |
| @@ -547,19 +548,22 @@ public abstract class GenericPlayerManager : MonoBehaviour { | @@ -547,19 +548,22 @@ public abstract class GenericPlayerManager : MonoBehaviour { | ||
| 547 | if (aniClip) | 548 | if (aniClip) |
| 548 | { | 549 | { |
| 549 | COMPONENT_ANIMATION.AddClip(aniClip, aniName); | 550 | COMPONENT_ANIMATION.AddClip(aniClip, aniName); |
| 550 | - yield return null; | 551 | + if (playingStarted) yield return new WaitForEndOfFrame(); |
| 551 | 552 | ||
| 552 | loadedAssetBundles.Add(aniName); | 553 | loadedAssetBundles.Add(aniName); |
| 553 | loaded = true; | 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 | else | 564 | else |
| 561 | { | 565 | { |
| 562 | - LAViD.VLibras.Utils.Logger.Log("Connection error"); | 566 | + PlayerLogger.Log("GPM", "lAP", "Connection error."); |
| 563 | onConnectionError(gloss, aniName); | 567 | onConnectionError(gloss, aniName); |
| 564 | } | 568 | } |
| 565 | } | 569 | } |
| @@ -589,15 +593,7 @@ public abstract class GenericPlayerManager : MonoBehaviour { | @@ -589,15 +593,7 @@ public abstract class GenericPlayerManager : MonoBehaviour { | ||
| 589 | // Soletra palavra | 593 | // Soletra palavra |
| 590 | else | 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 | if (this.flags.Contains(aniName) || this.intervalAnimations.Contains(aniName)) | 598 | if (this.flags.Contains(aniName) || this.intervalAnimations.Contains(aniName)) |
| 603 | { | 599 | { |
| @@ -626,8 +622,7 @@ public abstract class GenericPlayerManager : MonoBehaviour { | @@ -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 | // Default | 628 | // Default |
Assets/Scripts/Player Manager/Logger.cs
| @@ -1,28 +0,0 @@ | @@ -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,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 @@ | @@ -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 @@ | @@ -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
| @@ -10,12 +10,6 @@ namespace LAViD.VLibras.Utils { | @@ -10,12 +10,6 @@ namespace LAViD.VLibras.Utils { | ||
| 10 | return new Color(color.r, color.g, color.b, alpha); | 10 | return new Color(color.r, color.g, color.b, alpha); |
| 11 | } | 11 | } |
| 12 | 12 | ||
| 13 | - public static void Log(this Debug debug, string text) | ||
| 14 | - { | ||
| 15 | - Debug.Log(text); | ||
| 16 | - Logger.Log(text); | ||
| 17 | - } | ||
| 18 | - | ||
| 19 | } | 13 | } |
| 20 | 14 | ||
| 21 | } | 15 | } |
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 | using UnityEngine; | 1 | using UnityEngine; |
| 6 | using System.Collections; | 2 | using System.Collections; |
| 7 | -using System.Collections.Generic; | ||
| 8 | using System; | 3 | using System; |
| 9 | -using System.IO; | ||
| 10 | -using System.Text; | ||
| 11 | -using System.Runtime.InteropServices; | ||
| 12 | using UnityEngine.UI; | 4 | using UnityEngine.UI; |
| 13 | -using System.Threading; | ||
| 14 | -using System.Net; | ||
| 15 | using LAViD.VLibras.Utils; | 5 | using LAViD.VLibras.Utils; |
| 16 | 6 | ||
| 17 | public class PlayerManager : GenericPlayerManager { | 7 | public class PlayerManager : GenericPlayerManager { |
| @@ -84,7 +74,7 @@ public class PlayerManager : GenericPlayerManager { | @@ -84,7 +74,7 @@ public class PlayerManager : GenericPlayerManager { | ||
| 84 | 74 | ||
| 85 | public void playDict(string word) | 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 | this.dictWord = word; | 79 | this.dictWord = word; |
| 90 | base.gloss = word; | 80 | base.gloss = word; |
| @@ -130,20 +120,20 @@ public class PlayerManager : GenericPlayerManager { | @@ -130,20 +120,20 @@ public class PlayerManager : GenericPlayerManager { | ||
| 130 | 120 | ||
| 131 | protected override WWW loadAssetBundle(string aniName) | 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 | return WWW.LoadFromCacheOrDownload(BASE_URL + regionPath + aniName, this.regionHash); | 124 | return WWW.LoadFromCacheOrDownload(BASE_URL + regionPath + aniName, this.regionHash); |
| 135 | } | 125 | } |
| 136 | 126 | ||
| 137 | private System.Object LOCKER_STATE = new System.Object(); | 127 | private System.Object LOCKER_STATE = new System.Object(); |
| 138 | 128 | ||
| 139 | - protected override void onPlayingStateChange() | 129 | + public override void onPlayingStateChange() |
| 140 | { | 130 | { |
| 141 | lock (LOCKER_STATE) { | 131 | lock (LOCKER_STATE) { |
| 142 | this.screenManager.changeStates(base.isPlaying(), base.isPaused(), ! String.IsNullOrEmpty(base.gloss)); | 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 | if (gloss.Equals(this.dictWord)) | 138 | if (gloss.Equals(this.dictWord)) |
| 149 | { | 139 | { |
| @@ -156,11 +146,11 @@ public class PlayerManager : GenericPlayerManager { | @@ -156,11 +146,11 @@ public class PlayerManager : GenericPlayerManager { | ||
| 156 | // Called from microphone icon at main interface | 146 | // Called from microphone icon at main interface |
| 157 | public void callVoiceRecognizer() | 147 | public void callVoiceRecognizer() |
| 158 | { | 148 | { |
| 159 | - LAViD.VLibras.Utils.Logger.Log("Requesting voice recognizer"); | 149 | + PlayerLogger.Log("Requesting voice recognizer"); |
| 160 | 150 | ||
| 161 | string gloss = voiceRecognizer.callRecognition(); | 151 | string gloss = voiceRecognizer.callRecognition(); |
| 162 | this.translateScreenText.text = gloss; | 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 | this.screenManager.switchScreen("translate"); | 155 | this.screenManager.switchScreen("translate"); |
| 166 | } | 156 | } |
| @@ -179,11 +169,11 @@ public class PlayerManager : GenericPlayerManager { | @@ -179,11 +169,11 @@ public class PlayerManager : GenericPlayerManager { | ||
| 179 | if (connection.error == null) | 169 | if (connection.error == null) |
| 180 | { | 170 | { |
| 181 | if (connection.responseHeaders.Count > 0) | 171 | if (connection.responseHeaders.Count > 0) |
| 182 | - LAViD.VLibras.Utils.Logger.Log(connection.responseHeaders["STATUS"]); | 172 | + PlayerLogger.Log(connection.responseHeaders["STATUS"]); |
| 183 | else | 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 | return false;*/ | 178 | return false;*/ |
| 189 | 179 | ||
| @@ -199,7 +189,7 @@ public class PlayerManager : GenericPlayerManager { | @@ -199,7 +189,7 @@ public class PlayerManager : GenericPlayerManager { | ||
| 199 | { | 189 | { |
| 200 | if (e.Response != null) | 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 | return ((HttpWebResponse)e.Response).StatusCode == HttpStatusCode.NotFound; | 193 | return ((HttpWebResponse)e.Response).StatusCode == HttpStatusCode.NotFound; |
| 204 | } | 194 | } |
| 205 | } | 195 | } |
| @@ -210,90 +200,95 @@ public class PlayerManager : GenericPlayerManager { | @@ -210,90 +200,95 @@ public class PlayerManager : GenericPlayerManager { | ||
| 210 | return false;*/ | 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 | base.randomAnimations.lockFor("translate"); | 237 | base.randomAnimations.lockFor("translate"); |
| 221 | this.screenManager.setLoadingSnippetState(true); | 238 | this.screenManager.setLoadingSnippetState(true); |
| 222 | 239 | ||
| 223 | WWW glossRequest = new WWW(SERVER_URL + WWW.EscapeURL(gloss)); | 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,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 | public void switchScreen(GameObject screen) | 134 | public void switchScreen(GameObject screen) |
| 129 | { | 135 | { |
| 130 | bool active = screen.activeSelf; | 136 | bool active = screen.activeSelf; |
| @@ -135,16 +141,13 @@ public class ScreenManager : MonoBehaviour { | @@ -135,16 +141,13 @@ public class ScreenManager : MonoBehaviour { | ||
| 135 | 141 | ||
| 136 | screen.SetActive(true); | 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 | randomAnimations.lockFor(LOCK_ID); | 151 | randomAnimations.lockFor(LOCK_ID); |
| 149 | 152 | ||
| 150 | if (screen == infoScreen) | 153 | if (screen == infoScreen) |
| @@ -181,6 +184,9 @@ public class ScreenManager : MonoBehaviour { | @@ -181,6 +184,9 @@ public class ScreenManager : MonoBehaviour { | ||
| 181 | { | 184 | { |
| 182 | settingsPanel.Animate(true); | 185 | settingsPanel.Animate(true); |
| 183 | setPanelOpen(true); | 186 | setPanelOpen(true); |
| 187 | + | ||
| 188 | + if (playerManager.isPlaying()) | ||
| 189 | + pause(); | ||
| 184 | } | 190 | } |
| 185 | 191 | ||
| 186 | public void openRegionPanel() | 192 | public void openRegionPanel() |
| @@ -0,0 +1,31 @@ | @@ -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 | \ No newline at end of file | 32 | \ No newline at end of file |
| @@ -0,0 +1,12 @@ | @@ -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: |