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: | ... | ... |