Commit 327ce306a67874148fb10c374dc17fa59eca09de

Authored by Mateus Lustosa
1 parent e6b2f819
Exists in dev

RandomAnimations incompleto

Assets/Bundles/APURAR 0 → 100644
No preview for this file type
Assets/Bundles/AQUILO 0 → 100644
No preview for this file type
Assets/Scenes/Scene.unity
@@ -425,7 +425,7 @@ Prefab: @@ -425,7 +425,7 @@ Prefab:
425 objectReference: {fileID: 2100000, guid: 3e98fe09c9ac4ae4dbe731872ff7687a, type: 2} 425 objectReference: {fileID: 2100000, guid: 3e98fe09c9ac4ae4dbe731872ff7687a, type: 2}
426 - target: {fileID: 11474732, guid: 00197fc9877daa14c963e5917de36124, type: 2} 426 - target: {fileID: 11474732, guid: 00197fc9877daa14c963e5917de36124, type: 2}
427 propertyPath: m_Enabled 427 propertyPath: m_Enabled
428 - value: 0 428 + value: 1
429 objectReference: {fileID: 0} 429 objectReference: {fileID: 0}
430 m_RemovedComponents: [] 430 m_RemovedComponents: []
431 m_ParentPrefab: {fileID: 100100000, guid: 00197fc9877daa14c963e5917de36124, type: 2} 431 m_ParentPrefab: {fileID: 100100000, guid: 00197fc9877daa14c963e5917de36124, type: 2}
@@ -1398,23 +1398,23 @@ Prefab: @@ -1398,23 +1398,23 @@ Prefab:
1398 objectReference: {fileID: 138791195} 1398 objectReference: {fileID: 138791195}
1399 - target: {fileID: 22412692, guid: 12db97f21fb2a7d4cb537ec5395de1b9, type: 2} 1399 - target: {fileID: 22412692, guid: 12db97f21fb2a7d4cb537ec5395de1b9, type: 2}
1400 propertyPath: m_AnchorMax.x 1400 propertyPath: m_AnchorMax.x
1401 - value: 0 1401 + value: .444444448
1402 objectReference: {fileID: 0} 1402 objectReference: {fileID: 0}
1403 - target: {fileID: 22412692, guid: 12db97f21fb2a7d4cb537ec5395de1b9, type: 2} 1403 - target: {fileID: 22412692, guid: 12db97f21fb2a7d4cb537ec5395de1b9, type: 2}
1404 propertyPath: m_AnchorMax.y 1404 propertyPath: m_AnchorMax.y
1405 - value: 0 1405 + value: 1
1406 objectReference: {fileID: 0} 1406 objectReference: {fileID: 0}
1407 - target: {fileID: 22452678, guid: 12db97f21fb2a7d4cb537ec5395de1b9, type: 2} 1407 - target: {fileID: 22452678, guid: 12db97f21fb2a7d4cb537ec5395de1b9, type: 2}
1408 propertyPath: m_AnchorMin.x 1408 propertyPath: m_AnchorMin.x
1409 - value: 0 1409 + value: .444444448
1410 objectReference: {fileID: 0} 1410 objectReference: {fileID: 0}
1411 - target: {fileID: 22452678, guid: 12db97f21fb2a7d4cb537ec5395de1b9, type: 2} 1411 - target: {fileID: 22452678, guid: 12db97f21fb2a7d4cb537ec5395de1b9, type: 2}
1412 propertyPath: m_AnchorMax.x 1412 propertyPath: m_AnchorMax.x
1413 - value: 0 1413 + value: .444444448
1414 objectReference: {fileID: 0} 1414 objectReference: {fileID: 0}
1415 - target: {fileID: 22452678, guid: 12db97f21fb2a7d4cb537ec5395de1b9, type: 2} 1415 - target: {fileID: 22452678, guid: 12db97f21fb2a7d4cb537ec5395de1b9, type: 2}
1416 propertyPath: m_AnchorMax.y 1416 propertyPath: m_AnchorMax.y
1417 - value: 0 1417 + value: 1
1418 objectReference: {fileID: 0} 1418 objectReference: {fileID: 0}
1419 - target: {fileID: 131276, guid: 12db97f21fb2a7d4cb537ec5395de1b9, type: 2} 1419 - target: {fileID: 131276, guid: 12db97f21fb2a7d4cb537ec5395de1b9, type: 2}
1420 propertyPath: m_IsActive 1420 propertyPath: m_IsActive
Assets/Scripts/Player Manager/GenericPlayerManager.cs
@@ -34,7 +34,6 @@ public abstract class GenericPlayerManager : MonoBehaviour { @@ -34,7 +34,6 @@ public abstract class GenericPlayerManager : MonoBehaviour {
34 34
35 private HashSet<string> flags = new HashSet<string>(); 35 private HashSet<string> flags = new HashSet<string>();
36 36
37 - private volatile bool loadingSingleAnimation = false;  
38 private volatile bool loading = false; 37 private volatile bool loading = false;
39 private volatile bool playing = false; 38 private volatile bool playing = false;
40 private volatile bool paused = false; 39 private volatile bool paused = false;
@@ -61,7 +60,6 @@ public abstract class GenericPlayerManager : MonoBehaviour { @@ -61,7 +60,6 @@ public abstract class GenericPlayerManager : MonoBehaviour {
61 }); 60 });
62 } 61 }
63 62
64 - public bool isLoadingSingleAnimation() { return loadingSingleAnimation; }  
65 public bool isLoading() { return loading; } 63 public bool isLoading() { return loading; }
66 public bool isPlaying() { return playing; } 64 public bool isPlaying() { return playing; }
67 public bool isPaused() { return paused; } 65 public bool isPaused() { return paused; }
@@ -71,13 +69,11 @@ public abstract class GenericPlayerManager : MonoBehaviour { @@ -71,13 +69,11 @@ public abstract class GenericPlayerManager : MonoBehaviour {
71 this.flags.Add(flag); 69 this.flags.Add(flag);
72 } 70 }
73 71
74 - public void playRandomAnimations() {  
75 - this.randomAnimations.playRandom();  
76 - }  
77 -  
78 - public void setRandomAnimations(RandomAnimations randomAnimations, string[] flags) { 72 + public void setRandomAnimations(RandomAnimations randomAnimations, string[] animationsNames) {
79 this.randomAnimations = randomAnimations; 73 this.randomAnimations = randomAnimations;
80 - this.addFlags(flags); 74 + this.addFlags(animationsNames);
  75 +
  76 + StartCoroutine("loadIntervalAnimations", animationsNames);
81 } 77 }
82 78
83 public void SetAvatarCollider(bool isActive) 79 public void SetAvatarCollider(bool isActive)
@@ -141,8 +137,11 @@ public abstract class GenericPlayerManager : MonoBehaviour { @@ -141,8 +137,11 @@ public abstract class GenericPlayerManager : MonoBehaviour {
141 animQueue.Clear(); 137 animQueue.Clear();
142 } catch (NullReferenceException nre) { UnityEngine.Debug.Log("SetQueueList null reff::"+nre.ToString()); } 138 } catch (NullReferenceException nre) { UnityEngine.Debug.Log("SetQueueList null reff::"+nre.ToString()); }
143 139
144 - COMPONENT_ANIMATION.Stop();  
145 - COMPONENT_ANIMATION.CrossFade(DEFAULT_ANIMATION, fadeLength, PlayMode.StopAll); 140 + if ( ! this.randomAnimations.isPlaying())
  141 + {
  142 + COMPONENT_ANIMATION.Stop();
  143 + COMPONENT_ANIMATION.CrossFade(DEFAULT_ANIMATION, fadeLength, PlayMode.StopAll);
  144 + }
146 } 145 }
147 146
148 /* 147 /*
@@ -172,6 +171,36 @@ public abstract class GenericPlayerManager : MonoBehaviour { @@ -172,6 +171,36 @@ public abstract class GenericPlayerManager : MonoBehaviour {
172 return playAnimation(type, name, name); 171 return playAnimation(type, name, name);
173 } 172 }
174 173
  174 + private int pra_id = 0;
  175 +
  176 + public void playRandomAnimation(string name)
  177 + {
  178 + pra_id++;
  179 + Debug.Log(pra_id + ". " + name);
  180 +
  181 + AnimationState state = COMPONENT_ANIMATION.CrossFadeQueued(DEFAULT_ANIMATION, fadeLength, QueueMode.CompleteOthers);
  182 + state.speed = 2F;
  183 +
  184 + COMPONENT_ANIMATION.CrossFadeQueued(name, fadeLength, QueueMode.CompleteOthers);
  185 + StartCoroutine("randomAnimationWatcher", name);
  186 +
  187 + COMPONENT_ANIMATION.CrossFadeQueued(DEFAULT_ANIMATION, fadeLength, QueueMode.CompleteOthers);
  188 + }
  189 +
  190 + IEnumerator randomAnimationWatcher(string name)
  191 + {
  192 + while (COMPONENT_ANIMATION.IsPlaying(DEFAULT_ANIMATION))
  193 + yield return null;
  194 +
  195 + while (COMPONENT_ANIMATION.IsPlaying(name))
  196 + {
  197 + Debug.Log(pra_id + ". Playing " + name);
  198 + yield return null;
  199 + }
  200 +
  201 + this.randomAnimations.setPlaying(false);
  202 + }
  203 +
175 204
176 /** 205 /**
177 * Returns the asset bundle named aniName. 206 * Returns the asset bundle named aniName.
@@ -206,6 +235,11 @@ public abstract class GenericPlayerManager : MonoBehaviour { @@ -206,6 +235,11 @@ public abstract class GenericPlayerManager : MonoBehaviour {
206 switchPauseState( ! paused); 235 switchPauseState( ! paused);
207 } 236 }
208 237
  238 + /*
  239 + * Ordena o carregamento da glosa.
  240 + * Se estiver reproduzindo: pausa, se não: interrompe outros carregamentos e
  241 + * ordena o carregamento da glosa.
  242 + */
209 public bool play() 243 public bool play()
210 { 244 {
211 if (playing) 245 if (playing)
@@ -222,6 +256,13 @@ public abstract class GenericPlayerManager : MonoBehaviour { @@ -222,6 +256,13 @@ public abstract class GenericPlayerManager : MonoBehaviour {
222 return this.play(); 256 return this.play();
223 } 257 }
224 258
  259 + /*
  260 + * Ordena o carregamento da glosa de forma condicional.
  261 + * @param stopLoading - Se estiver carregando uma glosa, interrompe e carrega a atual;
  262 + * @param stopPlaying - Se estiver reproduzindo animações, interrompe e carrega a glosa;
  263 + * @param forceLoading - Se estiver reproduzindo animações, mas stopPlaying não estiver
  264 + * ativo, carrega as animações colocando-as na fila.
  265 + */
225 public bool play(bool stopLoading, bool stopPlaying, bool forceLoading) 266 public bool play(bool stopLoading, bool stopPlaying, bool forceLoading)
226 { 267 {
227 try { 268 try {
@@ -301,43 +342,53 @@ public abstract class GenericPlayerManager : MonoBehaviour { @@ -301,43 +342,53 @@ public abstract class GenericPlayerManager : MonoBehaviour {
301 } 342 }
302 343
303 344
304 - protected IEnumerator loadAnimation(string name) 345 + protected IEnumerator loadIntervalAnimations(string[] animationsNames)
305 { 346 {
306 - loadingSingleAnimation = true; 347 + foreach (string name in animationsNames)
  348 + {
  349 + bool nonexistent = nonexistentAssetBundles.Contains(name);
  350 + bool loaded = loadedAssetBundles.Contains(name);
307 351
308 - // Função loadAssetBundle é definida pela classe filha  
309 - WWW www = loadAssetBundle(name); 352 + if ( ! nonexistent && ! loaded)
  353 + {
  354 + WWW www = loadAssetBundle(name);
310 355
311 - if (www != null)  
312 - {  
313 - yield return www; 356 + if (www != null)
  357 + {
  358 + yield return www;
314 359
315 - AssetBundle bundle = null; 360 + AssetBundle bundle = null;
316 361
317 - if (www.error == null)  
318 - bundle = www.assetBundle; 362 + if (www.error == null)
  363 + bundle = www.assetBundle;
319 364
320 - if (bundle != null && ! String.IsNullOrEmpty(bundle.mainAsset.name))  
321 - {  
322 - AnimationClip aniClip = bundle.mainAsset as AnimationClip;  
323 - bundle.Unload(false); 365 + if (bundle != null && ! String.IsNullOrEmpty(bundle.mainAsset.name))
  366 + {
  367 + AnimationClip aniClip = bundle.mainAsset as AnimationClip;
  368 + bundle.Unload(false);
324 369
325 - if (aniClip)  
326 - {  
327 - COMPONENT_ANIMATION.AddClip(aniClip, name); 370 + if (aniClip)
  371 + {
  372 + COMPONENT_ANIMATION.AddClip(aniClip, name);
  373 +
  374 + // Reproduz palavra
  375 + loadedAssetBundles.Add(name);
  376 + loaded = true;
  377 + }
  378 + else UnityEngine.Debug.Log ("Sinal \"" + name + "\" não carregado corretamente.");
  379 + }
  380 + }
328 381
329 - // Reproduz palavra  
330 - loadedAssetBundles.Add(name);  
331 - yield break; 382 + // Soletra palavra
  383 + if ( ! loaded)
  384 + {
  385 + nonexistentAssetBundles.Add(name);
  386 + nonexistent = true;
332 } 387 }
333 - else UnityEngine.Debug.Log ("Sinal \"" + name + "\" não carregado corretamente.");  
334 } 388 }
335 } 389 }
336 390
337 - // Soletra palavra  
338 - nonexistentAssetBundles.Add(name);  
339 -  
340 - loadingSingleAnimation = false; 391 + StartCoroutine(this.randomAnimations.playRandom());
341 } 392 }
342 393
343 394
@@ -474,7 +525,7 @@ public abstract class GenericPlayerManager : MonoBehaviour { @@ -474,7 +525,7 @@ public abstract class GenericPlayerManager : MonoBehaviour {
474 */ 525 */
475 IEnumerator handleStates() 526 IEnumerator handleStates()
476 { 527 {
477 - if (this.randomAnimations != null) this.randomAnimations.stop(); 528 + if (this.randomAnimations != null) this.randomAnimations.setRunning(false);
478 529
479 // Enquanto estiver executando a rotina "loadAndPlay" 530 // Enquanto estiver executando a rotina "loadAndPlay"
480 // ou existir animações na fila de reprodução 531 // ou existir animações na fila de reprodução
@@ -506,7 +557,7 @@ public abstract class GenericPlayerManager : MonoBehaviour { @@ -506,7 +557,7 @@ public abstract class GenericPlayerManager : MonoBehaviour {
506 paused = false; 557 paused = false;
507 onPlayingStateChange(); 558 onPlayingStateChange();
508 559
509 - if (this.randomAnimations != null) this.randomAnimations.play(); 560 + if (this.randomAnimations != null) this.randomAnimations.setRunning(true);
510 } 561 }
511 562
512 } 563 }
Assets/Scripts/Player Manager/RandomAnimations.cs
1 using UnityEngine; 1 using UnityEngine;
  2 +using System.Collections;
2 using UnityEngine.UI; 3 using UnityEngine.UI;
3 4
4 -public class RandomAnimations { 5 +public class RandomAnimations : MonoBehaviour {
5 6
6 private GenericPlayerManager playerManager; 7 private GenericPlayerManager playerManager;
7 private string[] names = new string[] {}; 8 private string[] names = new string[] {};
@@ -10,7 +11,7 @@ public class RandomAnimations { @@ -10,7 +11,7 @@ public class RandomAnimations {
10 11
11 private int lastIndex = -1; 12 private int lastIndex = -1;
12 private bool running = true; 13 private bool running = true;
13 - 14 + private bool playing = false;
14 15
15 public RandomAnimations(GenericPlayerManager playerManager, string[] animations, int time, float probability) 16 public RandomAnimations(GenericPlayerManager playerManager, string[] animations, int time, float probability)
16 { 17 {
@@ -18,47 +19,64 @@ public class RandomAnimations { @@ -18,47 +19,64 @@ public class RandomAnimations {
18 this.names = animations; 19 this.names = animations;
19 this.time = time; 20 this.time = time;
20 this.probability = probability; 21 this.probability = probability;
21 -  
22 - playerManager.Invoke("playRandomAnimations", this.time);  
23 } 22 }
24 23
25 -  
26 - public void stop() {  
27 - this.running = false; 24 + public bool isPlaying() {
  25 + return this.playing;
28 } 26 }
29 27
30 - public void play() {  
31 - this.running = true;  
32 - playerManager.Invoke("playRandomAnimations", this.time); 28 + public void setPlaying(bool playing) {
  29 + this.playing = playing;
33 } 30 }
34 31
35 - private void playAnimation(string glosa)  
36 - {  
37 - this.playerManager.play(glosa); 32 + public void setRunning(bool running) {
  33 + this.running = running;
38 } 34 }
39 35
40 - public void playRandom() 36 + int _id = 0;
  37 +
  38 + public IEnumerator playRandom()
41 { 39 {
42 - if (running) 40 + yield return new WaitForSeconds(this.time);
  41 +
  42 + while (true)
43 { 43 {
  44 + while ( ! this.running)
  45 + yield return new WaitForSeconds(1);
  46 +
  47 + if (this.playing)
  48 + {
  49 + while (this.playing)
  50 + yield return new WaitForSeconds(1);
  51 +
  52 + yield return new WaitForSeconds(this.time);
  53 + }
  54 +
44 int index = sortIndex(); 55 int index = sortIndex();
45 56
46 if (index != -1) 57 if (index != -1)
47 { 58 {
48 - if (index == lastIndex)  
49 - index = sortIndex(); 59 + if (index == this.lastIndex)
  60 + index = sortIndex(1F);
50 61
51 - playAnimation(this.names[index]);  
52 - } 62 + Debug.Log(_id++ + ". Calling playRandomAnimation for " + this.names[index]);
  63 + this.playing = true;
  64 + this.playerManager.playRandomAnimation(this.names[index]);
53 65
54 - playerManager.Invoke("playRandomAnimations", this.time); 66 + this.lastIndex = index;
  67 + yield return null;
  68 + }
  69 + else yield return new WaitForSeconds(this.time);
55 } 70 }
56 } 71 }
57 72
58 - private int sortIndex() 73 + private int sortIndex(float probability)
59 { 74 {
60 - int rand = new System.Random().Next((int) (this.names.Length / this.probability)); 75 + int rand = new System.Random().Next((int) (this.names.Length / probability));
61 return rand < this.names.Length ? rand : -1; 76 return rand < this.names.Length ? rand : -1;
62 } 77 }
  78 + private int sortIndex() {
  79 + return sortIndex(this.probability);
  80 + }
63 81
64 } 82 }
65 \ No newline at end of file 83 \ No newline at end of file
Assets/Scripts/Player Manager/getenough.py 0 → 100644
@@ -0,0 +1,5 @@ @@ -0,0 +1,5 @@
  1 +import os
  2 +
  3 +for dirname, dirnames, filenames in os.walk('Assets/Bunldes/Comuns'):
  4 + for filename in filenames:
  5 + os.remove(os.path.join(dirname, filename))
0 \ No newline at end of file 6 \ No newline at end of file
Assets/Scripts/Player Manager/getenough.py.meta 0 → 100644
@@ -0,0 +1,8 @@ @@ -0,0 +1,8 @@
  1 +fileFormatVersion: 2
  2 +guid: ce966442d2438d3499ae1025ab4da1a5
  3 +timeCreated: 1453495417
  4 +licenseType: Pro
  5 +DefaultImporter:
  6 + userData:
  7 + assetBundleName:
  8 + assetBundleVariant:
Assets/Scripts/PlayerManager.cs
@@ -46,7 +46,7 @@ public class PlayerManager : GenericPlayerManager { @@ -46,7 +46,7 @@ public class PlayerManager : GenericPlayerManager {
46 stopButtonGraphic = stopButton.GetComponent<Graphic>(); 46 stopButtonGraphic = stopButton.GetComponent<Graphic>();
47 stopButtonGraphic.color = disabledAlpha; 47 stopButtonGraphic.color = disabledAlpha;
48 48
49 - base.setRandomAnimations(new RandomAnimations(this, randomAnimationNames, 2, 1F), randomAnimationNames); 49 + base.setRandomAnimations(new RandomAnimations(this, randomAnimationNames, 3, 1F), randomAnimationNames);
50 base.Start(); 50 base.Start();
51 } 51 }
52 52
@@ -60,7 +60,8 @@ public class PlayerManager : GenericPlayerManager { @@ -60,7 +60,8 @@ public class PlayerManager : GenericPlayerManager {
60 60
61 public void start_local_play() 61 public void start_local_play()
62 { 62 {
63 - this.catchGlosa(); 63 + base.glosa = "APURAR AQUILO";
  64 + //this.catchGlosa();
64 base.play(); 65 base.play();
65 } 66 }
66 67