Commit e28e59802bdf72e91410247332090c61ba574197

Authored by Mateus Lustosa
1 parent 8d8b5f09
Exists in master and in 1 other branch dev

Organização das classes concluída.

Showing 58 changed files with 1415 additions and 1335 deletions   Show diff stats
Assets/Scripts/Animation List.meta 0 → 100644
@@ -0,0 +1,9 @@ @@ -0,0 +1,9 @@
  1 +fileFormatVersion: 2
  2 +guid: a0aae9ae5f300ca4a8dd350f31041c7a
  3 +folderAsset: yes
  4 +timeCreated: 1453154556
  5 +licenseType: Pro
  6 +DefaultImporter:
  7 + userData:
  8 + assetBundleName:
  9 + assetBundleVariant:
Assets/Scripts/Animation List/ListManager.cs 0 → 100644
@@ -0,0 +1,137 @@ @@ -0,0 +1,137 @@
  1 +using UnityEngine;
  2 +using UnityEngine.UI;
  3 +using UnityEngine.EventSystems;
  4 +using System.IO;
  5 +using System.Collections;
  6 +using System.Collections.Generic;
  7 +
  8 +// https://unity3d.com/pt/learn/tutorials/modules/beginner/live-training-archive/creating-scroll-lists-at-run-time
  9 +
  10 +[System.Serializable]
  11 +public class ItemData {
  12 +
  13 + public string animationName;
  14 + public Button.ButtonClickedEvent thingToDo;
  15 +
  16 +}
  17 +
  18 +public class ListManager : MonoBehaviour {
  19 +
  20 + public GameObject sampleItemObject;
  21 + public GameObject sampleLoadingItemObject;
  22 +
  23 + public string[] itemList;
  24 + private int index = 0;
  25 + private const int OFFSET = 20;
  26 + private int size = 0;
  27 +
  28 + public GameObject listBlock;
  29 + public GameObject bar;
  30 +
  31 + public Transform contentPanel;
  32 + public ScrollRect scrollView;
  33 + public InputField input;
  34 +
  35 + private bool isLoading = false;
  36 + private GameObject loadingItem;
  37 +
  38 + TrieST<string> trie;
  39 +
  40 + void Start()
  41 + {
  42 + this.scrollView.onValueChanged.AddListener(checkScrollPosition);
  43 + this.input.onValueChange.AddListener(inputChanged);
  44 +
  45 + // Load TrieST
  46 + {
  47 + this.trie = new TrieST<string>();
  48 +
  49 + StreamReader s = new StreamReader(Application.dataPath + "/sinais.txt");
  50 +
  51 + if (!s.EndOfStream) s.ReadLine();
  52 +
  53 + while (!s.EndOfStream)
  54 + {
  55 + string temp = s.ReadLine();
  56 + this.trie.put(temp, temp);
  57 + }
  58 + }
  59 +
  60 + this.itemList = getNamesByPrefix("");
  61 + this.index = 0;
  62 + this.size = itemList.Length;
  63 +
  64 + this.loadingItem = Instantiate (sampleLoadingItemObject) as GameObject;
  65 +
  66 + StartCoroutine("populateList");
  67 + }
  68 +
  69 + public void checkScrollPosition(Vector2 scrollPosition)
  70 + {
  71 + if (scrollPosition.y <= 0F && ! this.isLoading)
  72 + StartCoroutine("populateList");
  73 + }
  74 +
  75 + public void inputChanged(string text)
  76 + {
  77 + this.itemList = getNamesByPrefix(text.ToUpper());
  78 + this.index = 0;
  79 + this.size = itemList.Length;
  80 +
  81 + this.contentPanel.DetachChildren();
  82 + foreach(GameObject go in GameObject.FindGameObjectsWithTag("clone"))
  83 + Destroy(go);
  84 +
  85 + StartCoroutine("populateList");
  86 + }
  87 +
  88 + private IEnumerator populateList()
  89 + {
  90 + changeLoadingState(true);
  91 + yield return new WaitForSeconds(0);
  92 +
  93 + int last = this.index + OFFSET;
  94 + if (last > size) last = this.size;
  95 +
  96 + for (int i = index; i < last; i++)
  97 + {
  98 + string item = itemList[i];
  99 +
  100 + GameObject newButton = Instantiate (sampleItemObject) as GameObject;
  101 + SampleItem sampleItem = newButton.GetComponent<SampleItem>();
  102 + sampleItem.title.text = item;
  103 +
  104 + sampleItem.GetComponent<Button>().onClick.AddListener(
  105 + delegate {
  106 + listBlock.SetActive(false);
  107 + bar.SetActive(true);
  108 + }
  109 + );
  110 +
  111 + newButton.transform.SetParent(contentPanel);
  112 + //newButton.transform.SetAsFirstSibling();
  113 + }
  114 +
  115 + this.index = last;
  116 +
  117 + changeLoadingState(false);
  118 + }
  119 +
  120 + private string[] getNamesByPrefix(string prefix)
  121 + {
  122 + Queue<string> names = this.trie.keysWithPrefix(prefix);
  123 + return names.ToArray();
  124 + }
  125 +
  126 + private void changeLoadingState(bool active)
  127 + {
  128 + Debug.Log(active ? "Loading..." : "Done");
  129 +
  130 + if (isLoading != active)
  131 + {
  132 + this.loadingItem.transform.SetParent(active ? contentPanel : null);
  133 + this.isLoading = active;
  134 + }
  135 + }
  136 +
  137 +}
Assets/Scripts/Animation List/ListManager.cs.meta 0 → 100644
@@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
  1 +fileFormatVersion: 2
  2 +guid: 37eb385702c4b324ab15b3636b2ab32f
  3 +timeCreated: 1448643925
  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/Animation List/SampleItem.cs 0 → 100644
@@ -0,0 +1,15 @@ @@ -0,0 +1,15 @@
  1 +using UnityEngine;
  2 +using UnityEngine.UI;
  3 +using System.Collections;
  4 +
  5 +public class SampleItem : MonoBehaviour {
  6 +
  7 + public Button button;
  8 + public Text title;
  9 +
  10 + public void StartAnimation()
  11 + {
  12 + GameObject.FindGameObjectWithTag("inspetor").GetComponent<PlayerManager>().start_local_play(title.text);
  13 + }
  14 +
  15 +}
Assets/Scripts/Animation List/SampleItem.cs.meta 0 → 100644
@@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
  1 +fileFormatVersion: 2
  2 +guid: 95cb85318477935499bf0284a82a5fe3
  3 +timeCreated: 1448644758
  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/Animation List/TrieST.cs 0 → 100644
@@ -0,0 +1,96 @@ @@ -0,0 +1,96 @@
  1 +using System.Collections.Generic;
  2 +using System;
  3 +using System.Text;
  4 +using UnityEngine;
  5 +
  6 +public class TrieST<Value>
  7 +{
  8 + private static int R = 42;
  9 + private static char[] chars = {
  10 + ' ', '-', '(', ')', ',', '%',
  11 + 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H',
  12 + 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',
  13 + 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X',
  14 + 'Y', 'Z',
  15 + '1', '2', '3', '4', '5', '6', '7', '8', '9', '0'
  16 + };
  17 + private static int[] indexes = new int[256];
  18 +
  19 + private Node root;
  20 + private int N;
  21 +
  22 + private class Node
  23 + {
  24 + public String val;
  25 + public Node[] next = new Node[R];
  26 + }
  27 +
  28 + public TrieST()
  29 + {
  30 + for (int i = 0; i < R; i++)
  31 + indexes[chars[i]] = i;
  32 + }
  33 +
  34 + public String get(String key)
  35 + {
  36 + Node x = get(root, key, 0);
  37 + if (x == null) return null;
  38 + return x.val;
  39 + }
  40 +
  41 + private Node get(Node x, String key, int d)
  42 + {
  43 + if (x == null) return null;
  44 + if (d == key.Length) return x;
  45 + int c = indexes[key[d]];
  46 + return get(x.next[c], key, d + 1);
  47 + }
  48 +
  49 + public void put(String key, String val)
  50 + {
  51 + root = put(root, key, val, 0);
  52 + }
  53 +
  54 + private Node put(Node x, String key, String val, int d)
  55 + {
  56 +
  57 + if (x == null) x = new Node();
  58 + if (d == key.Length)
  59 + {
  60 + if (x.val == null) N++;
  61 + x.val = val;
  62 + return x;
  63 + }
  64 + int c = indexes[key[d]];
  65 + x.next[c] = put(x.next[c], key, val, d + 1);
  66 + return x;
  67 +
  68 + }
  69 +
  70 + public Queue<String> keys()
  71 + { return keysWithPrefix(""); }
  72 +
  73 + public Queue<String> keysWithPrefix(String prefix)
  74 + {
  75 + Queue<String> results = new Queue<String>();
  76 + Node x = get(root, prefix, 0); //ref para o primeiro nó que contem a palavra prefix
  77 + collect(x, new StringBuilder(prefix), results);
  78 + return results;
  79 + }
  80 +
  81 + private void collect(Node x, StringBuilder prefix, Queue<String> results)
  82 + {
  83 + if (x == null) return;
  84 + if (x.val != null) results.Enqueue(prefix.ToString());
  85 +
  86 + for (char c = (char)0; c < R; c++)
  87 + {
  88 + prefix.Append(chars[c]);
  89 +
  90 + collect(x.next[c], prefix, results);
  91 + prefix.Remove(prefix.Length - 1, 1);
  92 + }
  93 +
  94 + }
  95 +
  96 +}
0 \ No newline at end of file 97 \ No newline at end of file
Assets/Scripts/Animation List/TrieST.cs.meta 0 → 100644
@@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
  1 +fileFormatVersion: 2
  2 +guid: c688e56f6c765894981cb20a40f10a9b
  3 +timeCreated: 1448926009
  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/AnimationReference.cs
@@ -1,19 +0,0 @@ @@ -1,19 +0,0 @@
1 -using UnityEngine;  
2 -  
3 -public class AnimationReference  
4 -{  
5 - public string name;  
6 - public string subtitle;  
7 - public AnimationState state;  
8 - public short type;  
9 - public bool playing;  
10 -  
11 - public AnimationReference(string name, string subtitle, AnimationState state, short type)  
12 - {  
13 - this.name = name;  
14 - this.subtitle = subtitle;  
15 - this.state = state;  
16 - this.type = type;  
17 - this.playing = false;  
18 - }  
19 -}  
20 \ No newline at end of file 0 \ No newline at end of file
Assets/Scripts/AnimationReference.cs.meta
@@ -1,12 +0,0 @@ @@ -1,12 +0,0 @@
1 -fileFormatVersion: 2  
2 -guid: 0a79f85598da5e245b6beae9133a8a26  
3 -timeCreated: 1452687065  
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/DefaultSignSpeed.cs
@@ -1,63 +0,0 @@ @@ -1,63 +0,0 @@
1 -/**  
2 - * Configura a velocidade de reprodução de sinais com relação a uma  
3 - * velocidade padrão e a velocidade ajustada pelo usuário.  
4 - */  
5 -public class DefaultSignSpeed  
6 -{  
7 - public static float DEFAULT = 1.1F;  
8 - public static float DEFAULT_MAX = 2F;  
9 -  
10 - // Velocidade padrão  
11 - private float speed;  
12 - // Velocidade máxima  
13 - private float max;  
14 - // Relação entre a velocidade do tipo representado e a velocidade padrão (speed)  
15 - private float unit;  
16 -  
17 - public DefaultSignSpeed()  
18 - {  
19 - this.speed = DEFAULT;  
20 - this.max = DEFAULT_MAX;  
21 - this.unit = 1F;  
22 - }  
23 -  
24 - public DefaultSignSpeed(float defaultSpeed, float defaultMaxSpeed)  
25 - {  
26 - this.speed = defaultSpeed;  
27 - this.max = defaultMaxSpeed;  
28 - this.unit = (this.max - this.speed) / (DEFAULT_MAX - DEFAULT);  
29 - }  
30 -  
31 - public float Speed {  
32 - get { return this.speed; }  
33 - set {  
34 - this.speed = value;  
35 - this.unit = calculateUnit();  
36 - }  
37 - }  
38 - public float Max {  
39 - get { return this.max; }  
40 - set {  
41 - this.speed = value;  
42 - this.unit = calculateUnit();  
43 - }  
44 - }  
45 - public float Unit {  
46 - get { return this.unit; }  
47 - }  
48 -  
49 -  
50 - private float calculateUnit()  
51 - {  
52 - return (this.max - this.speed) / (DEFAULT_MAX - DEFAULT);  
53 - }  
54 -  
55 - /*  
56 - * Retorna velocidade em relação ao estado do slider.  
57 - * @param slider - estado do slider (valor entre "speed - max" e "max")  
58 - */  
59 - public float getProportional(float slider)  
60 - {  
61 - return this.speed + (slider - DEFAULT) * this.unit;  
62 - }  
63 -}  
64 \ No newline at end of file 0 \ No newline at end of file
Assets/Scripts/DefaultSignSpeed.cs.meta
@@ -1,12 +0,0 @@ @@ -1,12 +0,0 @@
1 -fileFormatVersion: 2  
2 -guid: 65beafb116ad9fe4fbf6eee8d0253b39  
3 -timeCreated: 1452687065  
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/FadeFX.cs
@@ -1,62 +0,0 @@ @@ -1,62 +0,0 @@
1 -using UnityEngine;  
2 -using System.Collections;  
3 -using UnityEngine.EventSystems;  
4 -using UnityEngine.UI;  
5 -  
6 -public class FadeFX : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler {  
7 -  
8 - private BoxCollider COMPONENT_COLLIDER;  
9 - public GameObject update_box;  
10 - //Cria referência para o colider do avatar e torna a barra transparente  
11 - public void Start()  
12 - {  
13 -  
14 - COMPONENT_COLLIDER = GameObject.FindGameObjectWithTag("avatar").GetComponent<BoxCollider>();  
15 - Deactivate();  
16 -  
17 - }  
18 -  
19 - //Listeners de eventos do mouse  
20 - public void OnPointerEnter(PointerEventData eventData){ Activate(); }  
21 - public void OnPointerExit(PointerEventData eventData){ Deactivate(); }  
22 -  
23 - /*  
24 - * Desabilita o colider do avatar para bloquear a rotação  
25 - * Em seguida retorna o visual padrão da barra de controles  
26 - * e reativa a interação com os botões  
27 - */  
28 - private void Activate()  
29 - {  
30 -  
31 - COMPONENT_COLLIDER.enabled = false;  
32 -  
33 - foreach(GameObject GO in GameObject.FindGameObjectsWithTag("FADENEEDED"))  
34 - GO.GetComponent<CanvasRenderer>().SetAlpha(1f);  
35 -  
36 - foreach(GameObject GO in GameObject.FindGameObjectsWithTag("BUTTONS"))  
37 - GO.GetComponent<Button>().interactable = true;  
38 -  
39 - }  
40 -  
41 - /*  
42 - * Habilita o colider do avatar para desbloquear a rotação  
43 - * Em seguida diminui o alpha dos componentes da barra de controles tornando-os transparentes  
44 - * Logo após desativa a interação com os botões para impedir que fiquem em status "highlighted"  
45 - */  
46 - private void Deactivate(){  
47 -  
48 - if(!SwitchResolution.showbox && !update_box.activeSelf){  
49 -  
50 - COMPONENT_COLLIDER.enabled = true;  
51 -  
52 - foreach(GameObject GO in GameObject.FindGameObjectsWithTag("FADENEEDED"))  
53 - GO.GetComponent<CanvasRenderer>().SetAlpha(.2f);  
54 -  
55 - foreach(GameObject GO in GameObject.FindGameObjectsWithTag("BUTTONS"))  
56 - GO.GetComponent<Button>().interactable = false;  
57 -  
58 - }  
59 -  
60 - }  
61 -  
62 -}  
Assets/Scripts/FadeFX.cs.meta
@@ -1,12 +0,0 @@ @@ -1,12 +0,0 @@
1 -fileFormatVersion: 2  
2 -guid: 5cb0d8c33c1f9274083939fe0b6fdc86  
3 -timeCreated: 1442001277  
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/GenericPlayerManager.cs
@@ -1,541 +0,0 @@ @@ -1,541 +0,0 @@
1 -//Log Dir http://docs.unity3d.com/Manual/LogFiles.html  
2 -using UnityEngine;  
3 -using System.Collections;  
4 -using System.Collections.Generic;  
5 -using System;  
6 -using System.IO;  
7 -using System.Text;  
8 -using System.Runtime.InteropServices;  
9 -using System.Diagnostics;  
10 -using UnityEngine.UI;  
11 -  
12 -public abstract class GenericPlayerManager : MonoBehaviour {  
13 -  
14 - private const string DEFAULT_ANIMATION = "_default";  
15 - private const string NONE_ANIMATION = "_defaultWORD";  
16 -  
17 - protected float fadeLength = 0.6F;  
18 -  
19 - protected string glosa = "";  
20 - private static String[] stringPos = { DEFAULT_ANIMATION };//vetor que sera usado para quebrar a glosa  
21 -  
22 - private GameObject AVATAR;  
23 - private Animation COMPONENT_ANIMATION;  
24 - private BoxCollider AVATAR_COLLIDER;  
25 - public Text SUBTITLES;  
26 -  
27 - // Guarda os nomes das palavras ja carregadas.  
28 - private HashSet<string> loadedAssetBundles = new HashSet<string>();  
29 - // Guarda os nomes das palavras que nao tem assetbundle.  
30 - private HashSet<string> nonexistentAssetBundles = new HashSet<string>();  
31 -  
32 - // Lista de animações sendo reproduzidas.  
33 - // Utilizada para alterar velocidade e apresentar a legenda.  
34 - private volatile Queue<AnimationReference> animQueue = new Queue<AnimationReference>();  
35 -  
36 - private volatile bool loadingSingleAnimation = false;  
37 - private volatile bool loading = false;  
38 - private volatile bool playing = false;  
39 - private volatile bool paused = false;  
40 -  
41 - private Stopwatch watch = new Stopwatch();  
42 - private string lastRandom = "";  
43 - private int repeated = 0;  
44 -  
45 - private Subtitle subtitle;  
46 -  
47 - public virtual void Start()  
48 - {  
49 - subtitle = new Subtitle(SUBTITLES);  
50 - subtitle.DefaultWordSpeed = new DefaultSignSpeed();  
51 - subtitle.DefaultFirstLetterSpeed = new DefaultSignSpeed(2.1F, 2.8F);  
52 - subtitle.DefaultLetterSpeed = new DefaultSignSpeed(3F, 4.3F);  
53 - subtitle.DefaultNumberSpeed = new DefaultSignSpeed(1.5F, 2.9F);  
54 -  
55 - AVATAR = GameObject.FindGameObjectWithTag("avatar");//referencia para o avatar  
56 - COMPONENT_ANIMATION = AVATAR.GetComponent<Animation>();//referencia para o componente animador do avatar  
57 - AVATAR_COLLIDER = GameObject.FindGameObjectWithTag("avatar").GetComponent<BoxCollider>();  
58 -  
59 - watch.Start();  
60 - Invoke("playRandomAnimation", 5);  
61 - }  
62 -  
63 - public bool isLoadingSingleAnimation() { return loadingSingleAnimation; }  
64 - public bool isLoading() { return loading; }  
65 - public bool isPlaying() { return playing; }  
66 - public bool isPaused() { return paused; }  
67 -  
68 -  
69 - private void stopWatch() {  
70 - watch.Stop();  
71 - watch.Reset();  
72 - }  
73 -  
74 - private void continueWatch() {  
75 - watch.Start();  
76 - }  
77 -  
78 - private void playRandomAnimation(string glosa)  
79 - {  
80 - stopWatch();  
81 -  
82 - this.glosa = glosa;  
83 - this.play();  
84 - }  
85 -  
86 - private void playRandomAnimation()  
87 - {  
88 - if (watch.Elapsed.Seconds >= 1)  
89 - {  
90 - int rand = new System.Random().Next(3);  
91 -  
92 - switch (rand)  
93 - {  
94 - case 0: playRandomAnimation("[OLA]");  
95 - break;  
96 -  
97 - case 1: playRandomAnimation("[OI]");  
98 - break;  
99 -  
100 - case 2: playRandomAnimation("[IAE]");  
101 - break;  
102 - }  
103 - }  
104 -  
105 - Invoke("playRandomAnimation", 1);  
106 - }  
107 -  
108 - public void SetAvatarCollider(bool isActive)  
109 - {  
110 - AVATAR_COLLIDER.enabled = isActive;  
111 - }  
112 -  
113 - protected virtual void setSubtitle(string text)  
114 - {  
115 - SUBTITLES.text = text;  
116 - }  
117 -  
118 - // Define a velocidade das animacões com base no slider da GUI  
119 - public void setSlider(float sliderPosition)  
120 - {  
121 - subtitle.SliderPosition = sliderPosition;  
122 - subtitle.updateWordSpeed();  
123 - subtitle.updateLetterSpeed();  
124 - subtitle.updateNumberSpeed();  
125 -  
126 - if ( ! paused)  
127 - foreach (AnimationReference reference in animQueue)  
128 - if (reference.type != Subtitle.TYPE_NONE && reference.state != null)  
129 - reference.state.speed = getSpeedByType(reference.type);  
130 - }  
131 -  
132 - private float getSpeedByType(short type)  
133 - {  
134 - switch (type)  
135 - {  
136 - case Subtitle.TYPE_WORD: return subtitle.WordSpeed;  
137 - case Subtitle.TYPE_LETTER: return subtitle.LetterSpeed;  
138 - case Subtitle.TYPE_NUMBER: return subtitle.NumberSpeed;  
139 - }  
140 -  
141 - return 2F;  
142 - }  
143 -  
144 -  
145 - public void stop_animations()  
146 - {  
147 - StopCoroutine("loadAndPlay");  
148 - loading = false;  
149 -  
150 - playing = false;  
151 - paused = false;  
152 - onPlayingStateChange();  
153 -  
154 - stopAnimations();  
155 - }  
156 -  
157 - public void stopAnimations()  
158 - {  
159 - try {  
160 - StopCoroutine("handleStates");  
161 - } catch (NullReferenceException nre) { UnityEngine.Debug.Log("StopCoroutine handlestates nullreff::"+nre.ToString()); }  
162 -  
163 - setSubtitle("");  
164 -  
165 - try {  
166 - animQueue.Clear();  
167 - } catch (NullReferenceException nre) { UnityEngine.Debug.Log("SetQueueList null reff::"+nre.ToString()); }  
168 -  
169 - COMPONENT_ANIMATION.Stop();  
170 - COMPONENT_ANIMATION.CrossFade(DEFAULT_ANIMATION, fadeLength, PlayMode.StopAll);  
171 - }  
172 -  
173 - /*  
174 - * Manda reproduzir animação e adiciona a file de animações a serem reproduzidas.  
175 - */  
176 - private AnimationState playAnimation(short type, string name, string subtitle, float speed)  
177 - {  
178 - try  
179 - {  
180 - AnimationState state = COMPONENT_ANIMATION.CrossFadeQueued(name, fadeLength, QueueMode.CompleteOthers);  
181 - state.speed = speed;  
182 - animQueue.Enqueue(new AnimationReference(name, subtitle, state, type));  
183 -  
184 - return state;  
185 - }  
186 - catch (NullReferenceException nre)  
187 - {  
188 - UnityEngine.Debug.Log("'" + name + "' não foi encontrado!\n" + nre.ToString());  
189 - }  
190 -  
191 - return null;  
192 - }  
193 - private AnimationState playAnimation(short type, string name, string subtitle) {  
194 - return playAnimation(type, name, subtitle, getSpeedByType(type));  
195 - }  
196 - private AnimationState playAnimation(short type, string name) {  
197 - return playAnimation(type, name, name);  
198 - }  
199 -  
200 -  
201 - /**  
202 - * Returns the asset bundle named aniName.  
203 - *  
204 - * @return AssetBundle - se for encontrado.  
205 - * null - se ocorrer num erro.  
206 - */  
207 - protected abstract WWW loadAssetBundle(string aniName);  
208 -  
209 -  
210 - /**  
211 - * Listen to changes in the playing status.  
212 - */  
213 - protected abstract void onPlayingStateChange();  
214 -  
215 -  
216 - public void switchPauseState(bool paused)  
217 - {  
218 - if (this.paused != paused)  
219 - {  
220 - this.paused = paused;  
221 -  
222 - foreach (AnimationReference reference in animQueue)  
223 - if (reference.state != null)  
224 - reference.state.speed = paused ? 0F : getSpeedByType(reference.type);  
225 -  
226 - onPlayingStateChange();  
227 - }  
228 - }  
229 - public void switchPauseState()  
230 - {  
231 - switchPauseState( ! paused);  
232 - }  
233 -  
234 - public bool play()  
235 - {  
236 - if (playing)  
237 - switchPauseState();  
238 - else  
239 - play(true, true, true);  
240 -  
241 - return true;  
242 - }  
243 -  
244 - public bool play(bool stopLoading, bool stopPlaying, bool forceLoading)  
245 - {  
246 - try {  
247 - if (loading)  
248 - {  
249 - if (stopLoading)  
250 - stop_animations();  
251 - else  
252 - return false;  
253 - }  
254 - else if (playing)  
255 - {  
256 - if (stopPlaying)  
257 - stopAnimations();  
258 -  
259 - else if ( ! forceLoading)  
260 - return false;  
261 - }  
262 - } catch (NullReferenceException nre) { nre.ToString(); }  
263 -  
264 - StartCoroutine("loadAndPlay");  
265 - return true;  
266 - }  
267 -  
268 - /**  
269 - * Spells word.  
270 - *  
271 - * @return last animation's subtitle.  
272 - */  
273 - private string spellWord(string word)  
274 - {  
275 - string lastAnimationSubtitle = "";  
276 - bool defaultPlayed = false;  
277 -  
278 - // A reprodução da primeira letra deve ser longa para não ser cortada no fade  
279 - subtitle.updateLetterSpeed();  
280 -  
281 - for (int i = 0; i < word.Length; i++)  
282 - {  
283 - char second = word[i];  
284 - lastAnimationSubtitle = Subtitle.highlight(word, i);  
285 -  
286 - // Se for uma letra  
287 - if (second >= 65 && second <= 90)  
288 - playAnimation(Subtitle.TYPE_LETTER, second.ToString(), lastAnimationSubtitle, subtitle.LetterSpeed);  
289 -  
290 - // Se for um número  
291 - else if (second >= 48 && second <= 57)  
292 - playAnimation(Subtitle.TYPE_NUMBER, second.ToString(), lastAnimationSubtitle, subtitle.NumberSpeed);  
293 -  
294 - // Se for uma vírgula  
295 - else if (second == 44)  
296 - playAnimation(Subtitle.TYPE_WORD, second.ToString(), lastAnimationSubtitle);  
297 -  
298 - // Não há animação  
299 - else  
300 - {  
301 - // Reproduz animação default apenas uma vez  
302 - if ( ! defaultPlayed)  
303 - {  
304 - defaultPlayed = true;  
305 - playAnimation(Subtitle.TYPE_NONE, DEFAULT_ANIMATION, lastAnimationSubtitle);  
306 -  
307 - // A reprodução da próxima letra deve ser longa para não ser cortada no fade  
308 - subtitle.updateLetterSpeed();  
309 - }  
310 -  
311 - UnityEngine.Debug.Log("Animação \"" + second + "\" inexistente.");  
312 - continue;  
313 - }  
314 -  
315 - defaultPlayed = false;  
316 - subtitle.updateLetterSpeed();  
317 - }  
318 -  
319 - return lastAnimationSubtitle;  
320 - }  
321 -  
322 -  
323 - protected IEnumerator loadAnimation(string name)  
324 - {  
325 - loadingSingleAnimation = true;  
326 -  
327 - // Função loadAssetBundle é definida pela classe filha  
328 - WWW www = loadAssetBundle(name);  
329 -  
330 - if (www != null)  
331 - {  
332 - yield return www;  
333 -  
334 - AssetBundle bundle = null;  
335 -  
336 - if (www.error == null)  
337 - bundle = www.assetBundle;  
338 -  
339 - if (bundle != null && ! String.IsNullOrEmpty(bundle.mainAsset.name))  
340 - {  
341 - AnimationClip aniClip = bundle.mainAsset as AnimationClip;  
342 - bundle.Unload(false);  
343 -  
344 - if (aniClip)  
345 - {  
346 - COMPONENT_ANIMATION.AddClip(aniClip, name);  
347 -  
348 - // Reproduz palavra  
349 - loadedAssetBundles.Add(name);  
350 - yield break;  
351 - }  
352 - else UnityEngine.Debug.Log ("Sinal \"" + name + "\" não carregado corretamente.");  
353 - }  
354 - }  
355 -  
356 - // Soletra palavra  
357 - nonexistentAssetBundles.Add(name);  
358 -  
359 - loadingSingleAnimation = false;  
360 - }  
361 -  
362 -  
363 - private bool isFlag(string animationName)  
364 - {  
365 - return animationName.Equals("[PONTO]")  
366 - || animationName.Equals("[INTERROGACAO]")  
367 - || animationName.Equals("[EXCLAMACAO]")  
368 - || animationName.Equals("[OLA]")  
369 - || animationName.Equals("[OI]")  
370 - || animationName.Equals("[IAE]");  
371 - }  
372 -  
373 - private IEnumerator loadAndPlay()  
374 - {  
375 - loading = true;  
376 - onPlayingStateChange();  
377 -  
378 - string lastAnimationSubtitle = "";  
379 - bool spelled = false;  
380 -  
381 - // Default  
382 - playAnimation(Subtitle.TYPE_NONE, DEFAULT_ANIMATION, "", 2F);  
383 -  
384 - if ( ! playing)  
385 - {  
386 - playing = true;  
387 - StartCoroutine("handleStates");  
388 - }  
389 -  
390 - stringPos = glosa.Split(' ');  
391 -  
392 - foreach (string aniName in stringPos)  
393 - {  
394 - try {  
395 - if (String.IsNullOrEmpty(aniName)) continue;  
396 - } catch (Exception e) {  
397 - UnityEngine.Debug.Log(e + " :: NotNullNotEmpty");  
398 - }  
399 -  
400 - bool nonexistent = nonexistentAssetBundles.Contains(aniName);  
401 - bool loaded = loadedAssetBundles.Contains(aniName);  
402 -  
403 - if ( ! nonexistent && ! loaded)  
404 - {  
405 - // Função loadAssetBundle é definida pela classe filha  
406 - WWW www = loadAssetBundle(aniName);  
407 -  
408 - if (www != null)  
409 - {  
410 - yield return www;  
411 -  
412 - AssetBundle bundle = null;  
413 -  
414 - if (www.error == null)  
415 - bundle = www.assetBundle;  
416 -  
417 - if (bundle != null && ! String.IsNullOrEmpty(bundle.mainAsset.name))  
418 - {  
419 - AnimationClip aniClip = bundle.mainAsset as AnimationClip;  
420 - bundle.Unload(false);  
421 -  
422 - if (aniClip)  
423 - {  
424 - COMPONENT_ANIMATION.AddClip(aniClip, aniName);  
425 -  
426 - loadedAssetBundles.Add(aniName);  
427 - loaded = true;  
428 - }  
429 - else UnityEngine.Debug.Log ("Sinal \"" + aniName + "\" não carregado corretamente.");  
430 - }  
431 - }  
432 - }  
433 -  
434 - // Reproduz palavra  
435 - if (loaded)  
436 - {  
437 - if (spelled)  
438 - {  
439 - // Default  
440 - playAnimation(Subtitle.TYPE_NONE, DEFAULT_ANIMATION, lastAnimationSubtitle);  
441 - spelled = false;  
442 - }  
443 -  
444 - //bool isFlag = false;  
445 -  
446 - //if (aniName[0] == '[')  
447 - //{  
448 - if (isFlag(aniName))  
449 - {  
450 - //isFlag = true;  
451 - lastAnimationSubtitle = "";  
452 - playAnimation(Subtitle.TYPE_WORD, aniName, "");  
453 - }  
454 - else  
455 - {  
456 - lastAnimationSubtitle = aniName;  
457 - playAnimation(Subtitle.TYPE_WORD, aniName);  
458 - }  
459 - //}  
460 -  
461 - /*if (isFlag)  
462 - playAnimation(Subtitle.TYPE_WORD, aniName, "");  
463 - else  
464 - playAnimation(Subtitle.TYPE_WORD, aniName);*/  
465 - }  
466 - // Soletra palavra  
467 - else  
468 - {  
469 - // Se a animação não foi carregada e nem está marcada como não existente,  
470 - // adiciona ao set de animações não existentes  
471 - if ( ! nonexistent)  
472 - nonexistentAssetBundles.Add(aniName);  
473 -  
474 - UnityEngine.Debug.Log("~~ To spell: " + aniName);  
475 -  
476 - if (isFlag(aniName))  
477 - {  
478 - playAnimation(Subtitle.TYPE_NONE, DEFAULT_ANIMATION, "", 1.6F);  
479 - continue;  
480 - }  
481 -  
482 - // Se já houve o soletramento de alguma palavra, reproduz animação default  
483 - if (spelled)  
484 - playAnimation(Subtitle.TYPE_NONE, DEFAULT_ANIMATION, lastAnimationSubtitle, 1.6F);  
485 - else  
486 - spelled = true;  
487 -  
488 - lastAnimationSubtitle = spellWord(aniName);  
489 - }  
490 - }  
491 -  
492 - // Default  
493 - playAnimation(Subtitle.TYPE_NONE, DEFAULT_ANIMATION, "");  
494 -  
495 - loading = false;  
496 - onPlayingStateChange();  
497 - }  
498 -  
499 - //int _id = 0;  
500 -  
501 - /*  
502 - * Sincroniza as legendas com as animações.  
503 - */  
504 - IEnumerator handleStates()  
505 - {  
506 - stopWatch();  
507 -  
508 - // Enquanto estiver executando a rotina "loadAndPlay"  
509 - // ou existir animações na fila de reprodução  
510 - while (loading || animQueue.Count > 0)  
511 - {  
512 - if (animQueue.Count > 0)  
513 - {  
514 - AnimationReference reference = animQueue.Peek();  
515 -  
516 - setSubtitle(reference.subtitle);  
517 -  
518 - while (COMPONENT_ANIMATION.IsPlaying(reference.name))  
519 - {  
520 - reference.playing = true;  
521 - yield return null;  
522 - }  
523 -  
524 - if (reference.state == null)  
525 - animQueue.Dequeue();  
526 - else  
527 - yield return null;  
528 - }  
529 - else yield return null;  
530 -  
531 - setSubtitle("");  
532 - }  
533 -  
534 - playing = false;  
535 - paused = false;  
536 - onPlayingStateChange();  
537 -  
538 - continueWatch();  
539 - }  
540 -  
541 -}  
Assets/Scripts/GenericPlayerManager.cs.meta
@@ -1,12 +0,0 @@ @@ -1,12 +0,0 @@
1 -fileFormatVersion: 2  
2 -guid: 953c1d9124325ab4099d246d3cbfb780  
3 -timeCreated: 1440187017  
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/ListManager.cs
@@ -1,137 +0,0 @@ @@ -1,137 +0,0 @@
1 -using UnityEngine;  
2 -using UnityEngine.UI;  
3 -using UnityEngine.EventSystems;  
4 -using System.IO;  
5 -using System.Collections;  
6 -using System.Collections.Generic;  
7 -  
8 -// https://unity3d.com/pt/learn/tutorials/modules/beginner/live-training-archive/creating-scroll-lists-at-run-time  
9 -  
10 -[System.Serializable]  
11 -public class ItemData {  
12 -  
13 - public string animationName;  
14 - public Button.ButtonClickedEvent thingToDo;  
15 -  
16 -}  
17 -  
18 -public class ListManager : MonoBehaviour {  
19 -  
20 - public GameObject sampleItemObject;  
21 - public GameObject sampleLoadingItemObject;  
22 -  
23 - public string[] itemList;  
24 - private int index = 0;  
25 - private const int OFFSET = 20;  
26 - private int size = 0;  
27 -  
28 - public GameObject listBlock;  
29 - public GameObject bar;  
30 -  
31 - public Transform contentPanel;  
32 - public ScrollRect scrollView;  
33 - public InputField input;  
34 -  
35 - private bool isLoading = false;  
36 - private GameObject loadingItem;  
37 -  
38 - TrieST<string> trie;  
39 -  
40 - void Start()  
41 - {  
42 - this.scrollView.onValueChanged.AddListener(checkScrollPosition);  
43 - this.input.onValueChange.AddListener(inputChanged);  
44 -  
45 - // Load TrieST  
46 - {  
47 - this.trie = new TrieST<string>();  
48 -  
49 - StreamReader s = new StreamReader(Application.dataPath + "/sinais.txt");  
50 -  
51 - if (!s.EndOfStream) s.ReadLine();  
52 -  
53 - while (!s.EndOfStream)  
54 - {  
55 - string temp = s.ReadLine();  
56 - this.trie.put(temp, temp);  
57 - }  
58 - }  
59 -  
60 - this.itemList = getNamesByPrefix("");  
61 - this.index = 0;  
62 - this.size = itemList.Length;  
63 -  
64 - this.loadingItem = Instantiate (sampleLoadingItemObject) as GameObject;  
65 -  
66 - StartCoroutine("populateList");  
67 - }  
68 -  
69 - public void checkScrollPosition(Vector2 scrollPosition)  
70 - {  
71 - if (scrollPosition.y <= 0F && ! this.isLoading)  
72 - StartCoroutine("populateList");  
73 - }  
74 -  
75 - public void inputChanged(string text)  
76 - {  
77 - this.itemList = getNamesByPrefix(text.ToUpper());  
78 - this.index = 0;  
79 - this.size = itemList.Length;  
80 -  
81 - this.contentPanel.DetachChildren();  
82 - foreach(GameObject go in GameObject.FindGameObjectsWithTag("clone"))  
83 - Destroy(go);  
84 -  
85 - StartCoroutine("populateList");  
86 - }  
87 -  
88 - private IEnumerator populateList()  
89 - {  
90 - changeLoadingState(true);  
91 - yield return new WaitForSeconds(0);  
92 -  
93 - int last = this.index + OFFSET;  
94 - if (last > size) last = this.size;  
95 -  
96 - for (int i = index; i < last; i++)  
97 - {  
98 - string item = itemList[i];  
99 -  
100 - GameObject newButton = Instantiate (sampleItemObject) as GameObject;  
101 - SampleItem sampleItem = newButton.GetComponent<SampleItem>();  
102 - sampleItem.title.text = item;  
103 -  
104 - sampleItem.GetComponent<Button>().onClick.AddListener(  
105 - delegate {  
106 - listBlock.SetActive(false);  
107 - bar.SetActive(true);  
108 - }  
109 - );  
110 -  
111 - newButton.transform.SetParent(contentPanel);  
112 - //newButton.transform.SetAsFirstSibling();  
113 - }  
114 -  
115 - this.index = last;  
116 -  
117 - changeLoadingState(false);  
118 - }  
119 -  
120 - private string[] getNamesByPrefix(string prefix)  
121 - {  
122 - Queue<string> names = this.trie.keysWithPrefix(prefix);  
123 - return names.ToArray();  
124 - }  
125 -  
126 - private void changeLoadingState(bool active)  
127 - {  
128 - Debug.Log(active ? "Loading..." : "Done");  
129 -  
130 - if (isLoading != active)  
131 - {  
132 - this.loadingItem.transform.SetParent(active ? contentPanel : null);  
133 - this.isLoading = active;  
134 - }  
135 - }  
136 -  
137 -}  
Assets/Scripts/ListManager.cs.meta
@@ -1,12 +0,0 @@ @@ -1,12 +0,0 @@
1 -fileFormatVersion: 2  
2 -guid: 37eb385702c4b324ab15b3636b2ab32f  
3 -timeCreated: 1448643925  
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.meta 0 → 100644
@@ -0,0 +1,9 @@ @@ -0,0 +1,9 @@
  1 +fileFormatVersion: 2
  2 +guid: 66014bbf4d915a949a213fdd0143bb72
  3 +folderAsset: yes
  4 +timeCreated: 1453154556
  5 +licenseType: Pro
  6 +DefaultImporter:
  7 + userData:
  8 + assetBundleName:
  9 + assetBundleVariant:
Assets/Scripts/Player Manager/AnimationReference.cs 0 → 100644
@@ -0,0 +1,19 @@ @@ -0,0 +1,19 @@
  1 +using UnityEngine;
  2 +
  3 +public class AnimationReference
  4 +{
  5 + public string name;
  6 + public string subtitle;
  7 + public AnimationState state;
  8 + public short type;
  9 + public bool playing;
  10 +
  11 + public AnimationReference(string name, string subtitle, AnimationState state, short type)
  12 + {
  13 + this.name = name;
  14 + this.subtitle = subtitle;
  15 + this.state = state;
  16 + this.type = type;
  17 + this.playing = false;
  18 + }
  19 +}
0 \ No newline at end of file 20 \ No newline at end of file
Assets/Scripts/Player Manager/AnimationReference.cs.meta 0 → 100644
@@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
  1 +fileFormatVersion: 2
  2 +guid: 0a79f85598da5e245b6beae9133a8a26
  3 +timeCreated: 1452687065
  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/DefaultSignSpeed.cs 0 → 100644
@@ -0,0 +1,63 @@ @@ -0,0 +1,63 @@
  1 +/**
  2 + * Configura a velocidade de reprodução de sinais com relação a uma
  3 + * velocidade padrão e a velocidade ajustada pelo usuário.
  4 + */
  5 +public class DefaultSignSpeed
  6 +{
  7 + public static float DEFAULT = 1.1F;
  8 + public static float DEFAULT_MAX = 2F;
  9 +
  10 + // Velocidade padrão
  11 + private float speed;
  12 + // Velocidade máxima
  13 + private float max;
  14 + // Relação entre a velocidade do tipo representado e a velocidade padrão (speed)
  15 + private float unit;
  16 +
  17 + public DefaultSignSpeed()
  18 + {
  19 + this.speed = DEFAULT;
  20 + this.max = DEFAULT_MAX;
  21 + this.unit = 1F;
  22 + }
  23 +
  24 + public DefaultSignSpeed(float defaultSpeed, float defaultMaxSpeed)
  25 + {
  26 + this.speed = defaultSpeed;
  27 + this.max = defaultMaxSpeed;
  28 + this.unit = (this.max - this.speed) / (DEFAULT_MAX - DEFAULT);
  29 + }
  30 +
  31 + public float Speed {
  32 + get { return this.speed; }
  33 + set {
  34 + this.speed = value;
  35 + this.unit = calculateUnit();
  36 + }
  37 + }
  38 + public float Max {
  39 + get { return this.max; }
  40 + set {
  41 + this.speed = value;
  42 + this.unit = calculateUnit();
  43 + }
  44 + }
  45 + public float Unit {
  46 + get { return this.unit; }
  47 + }
  48 +
  49 +
  50 + private float calculateUnit()
  51 + {
  52 + return (this.max - this.speed) / (DEFAULT_MAX - DEFAULT);
  53 + }
  54 +
  55 + /*
  56 + * Retorna velocidade em relação ao estado do slider.
  57 + * @param slider - estado do slider (valor entre "speed - max" e "max")
  58 + */
  59 + public float getProportional(float slider)
  60 + {
  61 + return this.speed + (slider - DEFAULT) * this.unit;
  62 + }
  63 +}
0 \ No newline at end of file 64 \ No newline at end of file
Assets/Scripts/Player Manager/DefaultSignSpeed.cs.meta 0 → 100644
@@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
  1 +fileFormatVersion: 2
  2 +guid: 65beafb116ad9fe4fbf6eee8d0253b39
  3 +timeCreated: 1452687065
  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/GenericPlayerManager.cs 0 → 100644
@@ -0,0 +1,512 @@ @@ -0,0 +1,512 @@
  1 +//Log Dir http://docs.unity3d.com/Manual/LogFiles.html
  2 +using UnityEngine;
  3 +using System.Collections;
  4 +using System.Collections.Generic;
  5 +using System;
  6 +using System.IO;
  7 +using System.Text;
  8 +using System.Runtime.InteropServices;
  9 +using UnityEngine.UI;
  10 +
  11 +public abstract class GenericPlayerManager : MonoBehaviour {
  12 +
  13 + private const string DEFAULT_ANIMATION = "_default";
  14 + private const string NONE_ANIMATION = "_defaultWORD";
  15 +
  16 + protected float fadeLength = 0.6F;
  17 +
  18 + protected string glosa = "";
  19 + private static String[] stringPos = { DEFAULT_ANIMATION };//vetor que sera usado para quebrar a glosa
  20 +
  21 + private GameObject AVATAR;
  22 + private Animation COMPONENT_ANIMATION;
  23 + private BoxCollider AVATAR_COLLIDER;
  24 + public Text SUBTITLES;
  25 +
  26 + // Guarda os nomes das palavras ja carregadas.
  27 + private HashSet<string> loadedAssetBundles = new HashSet<string>();
  28 + // Guarda os nomes das palavras que nao tem assetbundle.
  29 + private HashSet<string> nonexistentAssetBundles = new HashSet<string>();
  30 +
  31 + // Lista de animações sendo reproduzidas.
  32 + // Utilizada para alterar velocidade e apresentar a legenda.
  33 + private volatile Queue<AnimationReference> animQueue = new Queue<AnimationReference>();
  34 +
  35 + private HashSet<string> flags = new HashSet<string>();
  36 +
  37 + private volatile bool loadingSingleAnimation = false;
  38 + private volatile bool loading = false;
  39 + private volatile bool playing = false;
  40 + private volatile bool paused = false;
  41 +
  42 + private RandomAnimations randomAnimations = null;
  43 + private Subtitle subtitle = null;
  44 +
  45 + public virtual void Start()
  46 + {
  47 + subtitle = new Subtitle(SUBTITLES);
  48 + subtitle.DefaultWordSpeed = new DefaultSignSpeed();
  49 + subtitle.DefaultFirstLetterSpeed = new DefaultSignSpeed(2.1F, 2.8F);
  50 + subtitle.DefaultLetterSpeed = new DefaultSignSpeed(3F, 4.3F);
  51 + subtitle.DefaultNumberSpeed = new DefaultSignSpeed(1.5F, 2.9F);
  52 +
  53 + AVATAR = GameObject.FindGameObjectWithTag("avatar");//referencia para o avatar
  54 + COMPONENT_ANIMATION = AVATAR.GetComponent<Animation>();//referencia para o componente animador do avatar
  55 + AVATAR_COLLIDER = GameObject.FindGameObjectWithTag("avatar").GetComponent<BoxCollider>();
  56 +
  57 + this.addFlags(new string[] {
  58 + "[PONTO]",
  59 + "[INTERROGACAO]",
  60 + "[EXCLAMACAO]"
  61 + });
  62 + }
  63 +
  64 + public bool isLoadingSingleAnimation() { return loadingSingleAnimation; }
  65 + public bool isLoading() { return loading; }
  66 + public bool isPlaying() { return playing; }
  67 + public bool isPaused() { return paused; }
  68 +
  69 + public void addFlags(string[] flags) {
  70 + foreach (string flag in flags)
  71 + this.flags.Add(flag);
  72 + }
  73 +
  74 + public void playRandomAnimations() {
  75 + this.randomAnimations.playRandom();
  76 + }
  77 +
  78 + public void setRandomAnimations(RandomAnimations randomAnimations, string[] flags) {
  79 + this.randomAnimations = randomAnimations;
  80 + this.addFlags(flags);
  81 + }
  82 +
  83 + public void SetAvatarCollider(bool isActive)
  84 + {
  85 + AVATAR_COLLIDER.enabled = isActive;
  86 + }
  87 +
  88 + protected virtual void setSubtitle(string text)
  89 + {
  90 + SUBTITLES.text = text;
  91 + }
  92 +
  93 + // Define a velocidade das animacões com base no slider da GUI
  94 + public void setSlider(float sliderPosition)
  95 + {
  96 + subtitle.SliderPosition = sliderPosition;
  97 + subtitle.updateWordSpeed();
  98 + subtitle.updateLetterSpeed();
  99 + subtitle.updateNumberSpeed();
  100 +
  101 + if ( ! paused)
  102 + foreach (AnimationReference reference in animQueue)
  103 + if (reference.type != Subtitle.TYPE_NONE && reference.state != null)
  104 + reference.state.speed = getSpeedByType(reference.type);
  105 + }
  106 +
  107 + private float getSpeedByType(short type)
  108 + {
  109 + switch (type)
  110 + {
  111 + case Subtitle.TYPE_WORD: return subtitle.WordSpeed;
  112 + case Subtitle.TYPE_LETTER: return subtitle.LetterSpeed;
  113 + case Subtitle.TYPE_NUMBER: return subtitle.NumberSpeed;
  114 + }
  115 +
  116 + return 2F;
  117 + }
  118 +
  119 +
  120 + public void stop_animations()
  121 + {
  122 + StopCoroutine("loadAndPlay");
  123 + loading = false;
  124 +
  125 + playing = false;
  126 + paused = false;
  127 + onPlayingStateChange();
  128 +
  129 + stopAnimations();
  130 + }
  131 +
  132 + public void stopAnimations()
  133 + {
  134 + try {
  135 + StopCoroutine("handleStates");
  136 + } catch (NullReferenceException nre) { UnityEngine.Debug.Log("StopCoroutine handlestates nullreff::"+nre.ToString()); }
  137 +
  138 + setSubtitle("");
  139 +
  140 + try {
  141 + animQueue.Clear();
  142 + } catch (NullReferenceException nre) { UnityEngine.Debug.Log("SetQueueList null reff::"+nre.ToString()); }
  143 +
  144 + COMPONENT_ANIMATION.Stop();
  145 + COMPONENT_ANIMATION.CrossFade(DEFAULT_ANIMATION, fadeLength, PlayMode.StopAll);
  146 + }
  147 +
  148 + /*
  149 + * Manda reproduzir animação e adiciona a file de animações a serem reproduzidas.
  150 + */
  151 + private AnimationState playAnimation(short type, string name, string subtitle, float speed)
  152 + {
  153 + try
  154 + {
  155 + AnimationState state = COMPONENT_ANIMATION.CrossFadeQueued(name, fadeLength, QueueMode.CompleteOthers);
  156 + state.speed = speed;
  157 + animQueue.Enqueue(new AnimationReference(name, subtitle, state, type));
  158 +
  159 + return state;
  160 + }
  161 + catch (NullReferenceException nre)
  162 + {
  163 + UnityEngine.Debug.Log("'" + name + "' não foi encontrado!\n" + nre.ToString());
  164 + }
  165 +
  166 + return null;
  167 + }
  168 + private AnimationState playAnimation(short type, string name, string subtitle) {
  169 + return playAnimation(type, name, subtitle, getSpeedByType(type));
  170 + }
  171 + private AnimationState playAnimation(short type, string name) {
  172 + return playAnimation(type, name, name);
  173 + }
  174 +
  175 +
  176 + /**
  177 + * Returns the asset bundle named aniName.
  178 + *
  179 + * @return AssetBundle - se for encontrado.
  180 + * null - se ocorrer num erro.
  181 + */
  182 + protected abstract WWW loadAssetBundle(string aniName);
  183 +
  184 +
  185 + /**
  186 + * Listen to changes in the playing status.
  187 + */
  188 + protected abstract void onPlayingStateChange();
  189 +
  190 +
  191 + public void switchPauseState(bool paused)
  192 + {
  193 + if (this.paused != paused)
  194 + {
  195 + this.paused = paused;
  196 +
  197 + foreach (AnimationReference reference in animQueue)
  198 + if (reference.state != null)
  199 + reference.state.speed = paused ? 0F : getSpeedByType(reference.type);
  200 +
  201 + onPlayingStateChange();
  202 + }
  203 + }
  204 + public void switchPauseState()
  205 + {
  206 + switchPauseState( ! paused);
  207 + }
  208 +
  209 + public bool play()
  210 + {
  211 + if (playing)
  212 + switchPauseState();
  213 + else
  214 + play(true, true, true);
  215 +
  216 + return true;
  217 + }
  218 +
  219 + public bool play(string glosa)
  220 + {
  221 + this.glosa = glosa;
  222 + return this.play();
  223 + }
  224 +
  225 + public bool play(bool stopLoading, bool stopPlaying, bool forceLoading)
  226 + {
  227 + try {
  228 + if (loading)
  229 + {
  230 + if (stopLoading)
  231 + stop_animations();
  232 + else
  233 + return false;
  234 + }
  235 + else if (playing)
  236 + {
  237 + if (stopPlaying)
  238 + stopAnimations();
  239 +
  240 + else if ( ! forceLoading)
  241 + return false;
  242 + }
  243 + } catch (NullReferenceException nre) { nre.ToString(); }
  244 +
  245 + StartCoroutine("loadAndPlay");
  246 + return true;
  247 + }
  248 +
  249 + /**
  250 + * Spells word.
  251 + *
  252 + * @return last animation's subtitle.
  253 + */
  254 + private string spellWord(string word)
  255 + {
  256 + string lastAnimationSubtitle = "";
  257 + bool defaultPlayed = false;
  258 +
  259 + // A reprodução da primeira letra deve ser longa para não ser cortada no fade
  260 + subtitle.updateLetterSpeed();
  261 +
  262 + for (int i = 0; i < word.Length; i++)
  263 + {
  264 + char second = word[i];
  265 + lastAnimationSubtitle = Subtitle.highlight(word, i);
  266 +
  267 + // Se for uma letra
  268 + if (second >= 65 && second <= 90)
  269 + playAnimation(Subtitle.TYPE_LETTER, second.ToString(), lastAnimationSubtitle, subtitle.LetterSpeed);
  270 +
  271 + // Se for um número
  272 + else if (second >= 48 && second <= 57)
  273 + playAnimation(Subtitle.TYPE_NUMBER, second.ToString(), lastAnimationSubtitle, subtitle.NumberSpeed);
  274 +
  275 + // Se for uma vírgula
  276 + else if (second == 44)
  277 + playAnimation(Subtitle.TYPE_WORD, second.ToString(), lastAnimationSubtitle);
  278 +
  279 + // Não há animação
  280 + else
  281 + {
  282 + // Reproduz animação default apenas uma vez
  283 + if ( ! defaultPlayed)
  284 + {
  285 + defaultPlayed = true;
  286 + playAnimation(Subtitle.TYPE_NONE, DEFAULT_ANIMATION, lastAnimationSubtitle);
  287 +
  288 + // A reprodução da próxima letra deve ser longa para não ser cortada no fade
  289 + subtitle.updateLetterSpeed();
  290 + }
  291 +
  292 + UnityEngine.Debug.Log("Animação \"" + second + "\" inexistente.");
  293 + continue;
  294 + }
  295 +
  296 + defaultPlayed = false;
  297 + subtitle.updateLetterSpeed();
  298 + }
  299 +
  300 + return lastAnimationSubtitle;
  301 + }
  302 +
  303 +
  304 + protected IEnumerator loadAnimation(string name)
  305 + {
  306 + loadingSingleAnimation = true;
  307 +
  308 + // Função loadAssetBundle é definida pela classe filha
  309 + WWW www = loadAssetBundle(name);
  310 +
  311 + if (www != null)
  312 + {
  313 + yield return www;
  314 +
  315 + AssetBundle bundle = null;
  316 +
  317 + if (www.error == null)
  318 + bundle = www.assetBundle;
  319 +
  320 + if (bundle != null && ! String.IsNullOrEmpty(bundle.mainAsset.name))
  321 + {
  322 + AnimationClip aniClip = bundle.mainAsset as AnimationClip;
  323 + bundle.Unload(false);
  324 +
  325 + if (aniClip)
  326 + {
  327 + COMPONENT_ANIMATION.AddClip(aniClip, name);
  328 +
  329 + // Reproduz palavra
  330 + loadedAssetBundles.Add(name);
  331 + yield break;
  332 + }
  333 + else UnityEngine.Debug.Log ("Sinal \"" + name + "\" não carregado corretamente.");
  334 + }
  335 + }
  336 +
  337 + // Soletra palavra
  338 + nonexistentAssetBundles.Add(name);
  339 +
  340 + loadingSingleAnimation = false;
  341 + }
  342 +
  343 +
  344 + private IEnumerator loadAndPlay()
  345 + {
  346 + loading = true;
  347 + onPlayingStateChange();
  348 +
  349 + string lastAnimationSubtitle = "";
  350 + bool spelled = false;
  351 +
  352 + // Default
  353 + playAnimation(Subtitle.TYPE_NONE, DEFAULT_ANIMATION, "", 2F);
  354 +
  355 + if ( ! playing)
  356 + {
  357 + playing = true;
  358 + StartCoroutine("handleStates");
  359 + }
  360 +
  361 + stringPos = glosa.Split(' ');
  362 +
  363 + foreach (string aniName in stringPos)
  364 + {
  365 + try {
  366 + if (String.IsNullOrEmpty(aniName)) continue;
  367 + } catch (Exception e) {
  368 + UnityEngine.Debug.Log(e + " :: NotNullNotEmpty");
  369 + }
  370 +
  371 + bool nonexistent = nonexistentAssetBundles.Contains(aniName);
  372 + bool loaded = loadedAssetBundles.Contains(aniName);
  373 +
  374 + if ( ! nonexistent && ! loaded)
  375 + {
  376 + // Função loadAssetBundle é definida pela classe filha
  377 + WWW www = loadAssetBundle(aniName);
  378 +
  379 + if (www != null)
  380 + {
  381 + yield return www;
  382 +
  383 + AssetBundle bundle = null;
  384 +
  385 + if (www.error == null)
  386 + bundle = www.assetBundle;
  387 +
  388 + if (bundle != null && ! String.IsNullOrEmpty(bundle.mainAsset.name))
  389 + {
  390 + AnimationClip aniClip = bundle.mainAsset as AnimationClip;
  391 + bundle.Unload(false);
  392 +
  393 + if (aniClip)
  394 + {
  395 + COMPONENT_ANIMATION.AddClip(aniClip, aniName);
  396 +
  397 + loadedAssetBundles.Add(aniName);
  398 + loaded = true;
  399 + }
  400 + else UnityEngine.Debug.Log ("Sinal \"" + aniName + "\" não carregado corretamente.");
  401 + }
  402 + }
  403 + }
  404 +
  405 + // Reproduz palavra
  406 + if (loaded)
  407 + {
  408 + if (spelled)
  409 + {
  410 + // Default
  411 + playAnimation(Subtitle.TYPE_NONE, DEFAULT_ANIMATION, lastAnimationSubtitle);
  412 + spelled = false;
  413 + }
  414 +
  415 + //bool isFlag = false;
  416 +
  417 + //if (aniName[0] == '[')
  418 + //{
  419 + if (flags.Contains(aniName))
  420 + {
  421 + //isFlag = true;
  422 + lastAnimationSubtitle = "";
  423 + playAnimation(Subtitle.TYPE_WORD, aniName, "");
  424 + }
  425 + else
  426 + {
  427 + lastAnimationSubtitle = aniName;
  428 + playAnimation(Subtitle.TYPE_WORD, aniName);
  429 + }
  430 + //}
  431 +
  432 + /*if (isFlag)
  433 + playAnimation(Subtitle.TYPE_WORD, aniName, "");
  434 + else
  435 + playAnimation(Subtitle.TYPE_WORD, aniName);*/
  436 + }
  437 + // Soletra palavra
  438 + else
  439 + {
  440 + // Se a animação não foi carregada e nem está marcada como não existente,
  441 + // adiciona ao set de animações não existentes
  442 + if ( ! nonexistent)
  443 + nonexistentAssetBundles.Add(aniName);
  444 +
  445 + UnityEngine.Debug.Log("~~ To spell: " + aniName);
  446 +
  447 + if (flags.Contains(aniName))
  448 + {
  449 + playAnimation(Subtitle.TYPE_NONE, DEFAULT_ANIMATION, "", 1.6F);
  450 + continue;
  451 + }
  452 +
  453 + // Se já houve o soletramento de alguma palavra, reproduz animação default
  454 + if (spelled)
  455 + playAnimation(Subtitle.TYPE_NONE, DEFAULT_ANIMATION, lastAnimationSubtitle, 1.6F);
  456 + else
  457 + spelled = true;
  458 +
  459 + lastAnimationSubtitle = spellWord(aniName);
  460 + }
  461 + }
  462 +
  463 + // Default
  464 + playAnimation(Subtitle.TYPE_NONE, DEFAULT_ANIMATION, "");
  465 +
  466 + loading = false;
  467 + onPlayingStateChange();
  468 + }
  469 +
  470 + //int _id = 0;
  471 +
  472 + /*
  473 + * Sincroniza as legendas com as animações.
  474 + */
  475 + IEnumerator handleStates()
  476 + {
  477 + if (this.randomAnimations != null) this.randomAnimations.stop();
  478 +
  479 + // Enquanto estiver executando a rotina "loadAndPlay"
  480 + // ou existir animações na fila de reprodução
  481 + while (loading || animQueue.Count > 0)
  482 + {
  483 + if (animQueue.Count > 0)
  484 + {
  485 + AnimationReference reference = animQueue.Peek();
  486 +
  487 + setSubtitle(reference.subtitle);
  488 +
  489 + while (COMPONENT_ANIMATION.IsPlaying(reference.name))
  490 + {
  491 + reference.playing = true;
  492 + yield return null;
  493 + }
  494 +
  495 + if (reference.state == null)
  496 + animQueue.Dequeue();
  497 + else
  498 + yield return null;
  499 + }
  500 + else yield return null;
  501 +
  502 + setSubtitle("");
  503 + }
  504 +
  505 + playing = false;
  506 + paused = false;
  507 + onPlayingStateChange();
  508 +
  509 + if (this.randomAnimations != null) this.randomAnimations.play();
  510 + }
  511 +
  512 +}
Assets/Scripts/Player Manager/GenericPlayerManager.cs.meta 0 → 100644
@@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
  1 +fileFormatVersion: 2
  2 +guid: 953c1d9124325ab4099d246d3cbfb780
  3 +timeCreated: 1440187017
  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/RandomAnimations.cs 0 → 100644
@@ -0,0 +1,64 @@ @@ -0,0 +1,64 @@
  1 +using UnityEngine;
  2 +using UnityEngine.UI;
  3 +
  4 +public class RandomAnimations {
  5 +
  6 + private GenericPlayerManager playerManager;
  7 + private string[] names = new string[] {};
  8 + private int time = 3;
  9 + private float probability = 0.3F;
  10 +
  11 + private int lastIndex = -1;
  12 + private bool running = true;
  13 +
  14 +
  15 + public RandomAnimations(GenericPlayerManager playerManager, string[] animations, int time, float probability)
  16 + {
  17 + this.playerManager = playerManager;
  18 + this.names = animations;
  19 + this.time = time;
  20 + this.probability = probability;
  21 +
  22 + playerManager.Invoke("playRandomAnimations", this.time);
  23 + }
  24 +
  25 +
  26 + public void stop() {
  27 + this.running = false;
  28 + }
  29 +
  30 + public void play() {
  31 + this.running = true;
  32 + playerManager.Invoke("playRandomAnimations", this.time);
  33 + }
  34 +
  35 + private void playAnimation(string glosa)
  36 + {
  37 + this.playerManager.play(glosa);
  38 + }
  39 +
  40 + public void playRandom()
  41 + {
  42 + if (running)
  43 + {
  44 + int index = sortIndex();
  45 +
  46 + if (index != -1)
  47 + {
  48 + if (index == lastIndex)
  49 + index = sortIndex();
  50 +
  51 + playAnimation(this.names[index]);
  52 + }
  53 +
  54 + playerManager.Invoke("playRandomAnimations", this.time);
  55 + }
  56 + }
  57 +
  58 + private int sortIndex()
  59 + {
  60 + int rand = new System.Random().Next((int) (this.names.Length / this.probability));
  61 + return rand < this.names.Length ? rand : -1;
  62 + }
  63 +
  64 +}
0 \ No newline at end of file 65 \ No newline at end of file
Assets/Scripts/Player Manager/RandomAnimations.cs.meta 0 → 100644
@@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
  1 +fileFormatVersion: 2
  2 +guid: 9d4b654b474c35d4592a9c87c9fe817b
  3 +timeCreated: 1453154557
  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/Subtitle.cs 0 → 100644
@@ -0,0 +1,134 @@ @@ -0,0 +1,134 @@
  1 +using UnityEngine.UI;
  2 +
  3 +public class Subtitle {
  4 +
  5 + public const short TYPE_NONE = -1;
  6 + public const short TYPE_WORD = 0;
  7 + public const short TYPE_LETTER = 1;
  8 + public const short TYPE_NUMBER = 2;
  9 +
  10 + protected DefaultSignSpeed defaultWordSpeed = new DefaultSignSpeed();
  11 + protected DefaultSignSpeed defaultFirstLetterSpeed = new DefaultSignSpeed();
  12 + protected DefaultSignSpeed defaultLetterSpeed = new DefaultSignSpeed();
  13 + protected DefaultSignSpeed defaultNumberSpeed = new DefaultSignSpeed();
  14 +
  15 + private float sliderPosition = DefaultSignSpeed.DEFAULT;
  16 +
  17 + private float wordSpeed = DefaultSignSpeed.DEFAULT;
  18 + private float letterSpeed = DefaultSignSpeed.DEFAULT;
  19 + private float numberSpeed = DefaultSignSpeed.DEFAULT;
  20 +
  21 + public Text SUBTITLES;
  22 +
  23 +
  24 + public Subtitle(Text subtitles)
  25 + {
  26 + this.SUBTITLES = subtitles;
  27 + }
  28 +
  29 + public DefaultSignSpeed DefaultWordSpeed {
  30 + get { return this.defaultWordSpeed; }
  31 + set {
  32 + this.defaultWordSpeed = value;
  33 + this.wordSpeed = value.Speed;
  34 + }
  35 + }
  36 +
  37 + public DefaultSignSpeed DefaultFirstLetterSpeed {
  38 + get { return this.defaultFirstLetterSpeed; }
  39 + set { this.defaultFirstLetterSpeed = value; }
  40 + }
  41 +
  42 + public DefaultSignSpeed DefaultLetterSpeed {
  43 + get { return this.defaultLetterSpeed; }
  44 + set {
  45 + this.defaultLetterSpeed = value;
  46 + this.letterSpeed = value.Speed;
  47 + }
  48 + }
  49 +
  50 + public DefaultSignSpeed DefaultNumberSpeed {
  51 + get { return this.defaultNumberSpeed; }
  52 + set {
  53 + this.defaultNumberSpeed = value;
  54 + this.numberSpeed = value.Speed;
  55 + }
  56 + }
  57 +
  58 + public float WordSpeed {
  59 + get { return this.wordSpeed; }
  60 + set { this.wordSpeed = value; }
  61 + }
  62 +
  63 + public float LetterSpeed {
  64 + get { return this.letterSpeed; }
  65 + set { this.letterSpeed = value; }
  66 + }
  67 +
  68 + public float NumberSpeed {
  69 + get { return this.numberSpeed; }
  70 + set { this.numberSpeed = value; }
  71 + }
  72 +
  73 + public float SliderPosition {
  74 + get { return this.sliderPosition; }
  75 + set { this.sliderPosition = value; }
  76 + }
  77 +
  78 +
  79 + public void updateWordSpeed(float sliderPosition) {
  80 + this.WordSpeed = this.DefaultWordSpeed.getProportional(sliderPosition);
  81 + }
  82 + public void updateWordSpeed() {
  83 + this.WordSpeed = this.DefaultWordSpeed.getProportional(this.SliderPosition);
  84 + }
  85 +
  86 + public void updateLetterSpeed(float sliderPosition) {
  87 + this.LetterSpeed = this.DefaultLetterSpeed.getProportional(sliderPosition);
  88 + }
  89 + public void updateLetterSpeed() {
  90 + this.LetterSpeed = this.DefaultLetterSpeed.getProportional(this.SliderPosition);
  91 + }
  92 +
  93 + public void updateNumberSpeed(float sliderPosition) {
  94 + this.NumberSpeed = this.DefaultNumberSpeed.getProportional(sliderPosition);
  95 + }
  96 + public void updateNumberSpeed() {
  97 + this.NumberSpeed = this.DefaultNumberSpeed.getProportional(this.SliderPosition);
  98 + }
  99 +
  100 +
  101 + /*
  102 + * Destaca caractere de uma string.
  103 + */
  104 + public static string highlight(string word, int index)
  105 + {
  106 + string subtitle = "";
  107 + int last = 0;
  108 +
  109 + if (index == 0)
  110 + subtitle += "<b><color=white>" + word[0] + "</color></b>";
  111 + else
  112 + subtitle += word[0];
  113 +
  114 + for (int i = 1; i < word.Length; i++)
  115 + {
  116 + if ((word[i] >= 65 && word[i] <= 90) || (word[i] >= 48 && word[i] <= 57))
  117 + subtitle += "-";
  118 +
  119 + if (i == index || (last == index && word[i] == word[last]))
  120 + {
  121 + subtitle += "<b><color=white>" + word[i] + "</color></b>";
  122 + if (i == index) last = i;
  123 + }
  124 + else
  125 + {
  126 + subtitle += word[i];
  127 + last = i;
  128 + }
  129 + }
  130 +
  131 + return subtitle;
  132 + }
  133 +
  134 +}
0 \ No newline at end of file 135 \ No newline at end of file
Assets/Scripts/Player Manager/Subtitle.cs.meta 0 → 100644
@@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
  1 +fileFormatVersion: 2
  2 +guid: f97b63181c1ec5f488126f3f9fd68141
  3 +timeCreated: 1452687065
  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/PlayerManager.cs
@@ -24,6 +24,12 @@ public class PlayerManager : GenericPlayerManager { @@ -24,6 +24,12 @@ public class PlayerManager : GenericPlayerManager {
24 private Color enabledAlpha = new Color(1F, 1F, 1F, 1F); 24 private Color enabledAlpha = new Color(1F, 1F, 1F, 1F);
25 private Color disabledAlpha = new Color(1F, 1F, 1F, 0.5F); 25 private Color disabledAlpha = new Color(1F, 1F, 1F, 0.5F);
26 26
  27 + private string[] randomAnimationNames = new string[] {
  28 + "[OLA]",
  29 + //"[OI]",
  30 + "[IAE]"
  31 + };
  32 +
27 //InputField INFIELD; 33 //InputField INFIELD;
28 34
29 //Primeiro metodo que o player executa 35 //Primeiro metodo que o player executa
@@ -40,6 +46,7 @@ public class PlayerManager : GenericPlayerManager { @@ -40,6 +46,7 @@ public class PlayerManager : GenericPlayerManager {
40 stopButtonGraphic = stopButton.GetComponent<Graphic>(); 46 stopButtonGraphic = stopButton.GetComponent<Graphic>();
41 stopButtonGraphic.color = disabledAlpha; 47 stopButtonGraphic.color = disabledAlpha;
42 48
  49 + base.setRandomAnimations(new RandomAnimations(this, randomAnimationNames, 2, 1), randomAnimationNames);
43 base.Start(); 50 base.Start();
44 } 51 }
45 52
@@ -62,8 +69,7 @@ public class PlayerManager : GenericPlayerManager { @@ -62,8 +69,7 @@ public class PlayerManager : GenericPlayerManager {
62 if (base.isLoading() || base.isPlaying()) 69 if (base.isLoading() || base.isPlaying())
63 base.stop_animations(); 70 base.stop_animations();
64 71
65 - base.glosa = glosa;  
66 - base.play(); 72 + base.play(glosa);
67 } 73 }
68 74
69 protected override WWW loadAssetBundle(string aniName) 75 protected override WWW loadAssetBundle(string aniName)
Assets/Scripts/RotateSprite.cs
@@ -1,10 +0,0 @@ @@ -1,10 +0,0 @@
1 -using UnityEngine;  
2 -using System.Collections;  
3 -  
4 -public class RotateSprite : MonoBehaviour {  
5 - private float count = 0;  
6 - void Update () {  
7 - count = 1f + (count % 360);  
8 - transform.rotation = Quaternion.AngleAxis(count, new Vector3(0, 0, -1));  
9 - }  
10 -}  
Assets/Scripts/RotateSprite.cs.meta
@@ -1,12 +0,0 @@ @@ -1,12 +0,0 @@
1 -fileFormatVersion: 2  
2 -guid: f30ae3e7382215343aa581d1acb2c6a6  
3 -timeCreated: 1442259123  
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/SampleItem.cs
@@ -1,15 +0,0 @@ @@ -1,15 +0,0 @@
1 -using UnityEngine;  
2 -using UnityEngine.UI;  
3 -using System.Collections;  
4 -  
5 -public class SampleItem : MonoBehaviour {  
6 -  
7 - public Button button;  
8 - public Text title;  
9 -  
10 - public void StartAnimation()  
11 - {  
12 - GameObject.FindGameObjectWithTag("inspetor").GetComponent<PlayerManager>().start_local_play(title.text);  
13 - }  
14 -  
15 -}  
Assets/Scripts/SampleItem.cs.meta
@@ -1,12 +0,0 @@ @@ -1,12 +0,0 @@
1 -fileFormatVersion: 2  
2 -guid: 95cb85318477935499bf0284a82a5fe3  
3 -timeCreated: 1448644758  
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/Subtitle.cs
@@ -1,134 +0,0 @@ @@ -1,134 +0,0 @@
1 -using UnityEngine.UI;  
2 -  
3 -public class Subtitle {  
4 -  
5 - public const short TYPE_NONE = -1;  
6 - public const short TYPE_WORD = 0;  
7 - public const short TYPE_LETTER = 1;  
8 - public const short TYPE_NUMBER = 2;  
9 -  
10 - protected DefaultSignSpeed defaultWordSpeed = new DefaultSignSpeed();  
11 - protected DefaultSignSpeed defaultFirstLetterSpeed = new DefaultSignSpeed();  
12 - protected DefaultSignSpeed defaultLetterSpeed = new DefaultSignSpeed();  
13 - protected DefaultSignSpeed defaultNumberSpeed = new DefaultSignSpeed();  
14 -  
15 - private float sliderPosition = DefaultSignSpeed.DEFAULT;  
16 -  
17 - private float wordSpeed = DefaultSignSpeed.DEFAULT;  
18 - private float letterSpeed = DefaultSignSpeed.DEFAULT;  
19 - private float numberSpeed = DefaultSignSpeed.DEFAULT;  
20 -  
21 - public Text SUBTITLES;  
22 -  
23 -  
24 - public Subtitle(Text subtitles)  
25 - {  
26 - this.SUBTITLES = subtitles;  
27 - }  
28 -  
29 - public DefaultSignSpeed DefaultWordSpeed {  
30 - get { return this.defaultWordSpeed; }  
31 - set {  
32 - this.defaultWordSpeed = value;  
33 - this.wordSpeed = value.Speed;  
34 - }  
35 - }  
36 -  
37 - public DefaultSignSpeed DefaultFirstLetterSpeed {  
38 - get { return this.defaultFirstLetterSpeed; }  
39 - set { this.defaultFirstLetterSpeed = value; }  
40 - }  
41 -  
42 - public DefaultSignSpeed DefaultLetterSpeed {  
43 - get { return this.defaultLetterSpeed; }  
44 - set {  
45 - this.defaultLetterSpeed = value;  
46 - this.letterSpeed = value.Speed;  
47 - }  
48 - }  
49 -  
50 - public DefaultSignSpeed DefaultNumberSpeed {  
51 - get { return this.defaultNumberSpeed; }  
52 - set {  
53 - this.defaultNumberSpeed = value;  
54 - this.numberSpeed = value.Speed;  
55 - }  
56 - }  
57 -  
58 - public float WordSpeed {  
59 - get { return this.wordSpeed; }  
60 - set { this.wordSpeed = value; }  
61 - }  
62 -  
63 - public float LetterSpeed {  
64 - get { return this.letterSpeed; }  
65 - set { this.letterSpeed = value; }  
66 - }  
67 -  
68 - public float NumberSpeed {  
69 - get { return this.numberSpeed; }  
70 - set { this.numberSpeed = value; }  
71 - }  
72 -  
73 - public float SliderPosition {  
74 - get { return this.sliderPosition; }  
75 - set { this.sliderPosition = value; }  
76 - }  
77 -  
78 -  
79 - public void updateWordSpeed(float sliderPosition) {  
80 - this.WordSpeed = this.DefaultWordSpeed.getProportional(sliderPosition);  
81 - }  
82 - public void updateWordSpeed() {  
83 - this.WordSpeed = this.DefaultWordSpeed.getProportional(this.SliderPosition);  
84 - }  
85 -  
86 - public void updateLetterSpeed(float sliderPosition) {  
87 - this.LetterSpeed = this.DefaultLetterSpeed.getProportional(sliderPosition);  
88 - }  
89 - public void updateLetterSpeed() {  
90 - this.LetterSpeed = this.DefaultLetterSpeed.getProportional(this.SliderPosition);  
91 - }  
92 -  
93 - public void updateNumberSpeed(float sliderPosition) {  
94 - this.NumberSpeed = this.DefaultNumberSpeed.getProportional(sliderPosition);  
95 - }  
96 - public void updateNumberSpeed() {  
97 - this.NumberSpeed = this.DefaultNumberSpeed.getProportional(this.SliderPosition);  
98 - }  
99 -  
100 -  
101 - /*  
102 - * Destaca caractere de uma string.  
103 - */  
104 - public static string highlight(string word, int index)  
105 - {  
106 - string subtitle = "";  
107 - int last = 0;  
108 -  
109 - if (index == 0)  
110 - subtitle += "<b><color=white>" + word[0] + "</color></b>";  
111 - else  
112 - subtitle += word[0];  
113 -  
114 - for (int i = 1; i < word.Length; i++)  
115 - {  
116 - if ((word[i] >= 65 && word[i] <= 90) || (word[i] >= 48 && word[i] <= 57))  
117 - subtitle += "-";  
118 -  
119 - if (i == index || (last == index && word[i] == word[last]))  
120 - {  
121 - subtitle += "<b><color=white>" + word[i] + "</color></b>";  
122 - if (i == index) last = i;  
123 - }  
124 - else  
125 - {  
126 - subtitle += word[i];  
127 - last = i;  
128 - }  
129 - }  
130 -  
131 - return subtitle;  
132 - }  
133 -  
134 -}  
135 \ No newline at end of file 0 \ No newline at end of file
Assets/Scripts/Subtitle.cs.meta
@@ -1,12 +0,0 @@ @@ -1,12 +0,0 @@
1 -fileFormatVersion: 2  
2 -guid: f97b63181c1ec5f488126f3f9fd68141  
3 -timeCreated: 1452687065  
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/Switch.cs
@@ -1,15 +0,0 @@ @@ -1,15 +0,0 @@
1 -using UnityEngine;  
2 -using System.Collections;  
3 -  
4 -public class Switch : MonoBehaviour {  
5 -  
6 - public GameObject go;  
7 - private bool isActive = false;  
8 -  
9 - public void SwitchStatus()  
10 - {  
11 - go.SetActive(isActive);  
12 - isActive = !isActive;  
13 - }  
14 -  
15 -}  
Assets/Scripts/Switch.cs.meta
@@ -1,12 +0,0 @@ @@ -1,12 +0,0 @@
1 -fileFormatVersion: 2  
2 -guid: 9d82f947b8b7b8c4cb02d681f795cb2d  
3 -timeCreated: 1449167019  
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/SwitchButtonCollor.cs
@@ -1,24 +0,0 @@ @@ -1,24 +0,0 @@
1 -using UnityEngine;  
2 -using System.Collections;  
3 -using UnityEngine.UI;  
4 -  
5 -public class SwitchButtonCollor : MonoBehaviour {  
6 -  
7 - public Button thisButton;  
8 - private Graphic thisButtonGraphic;  
9 -  
10 - public bool isEnabled;  
11 - private Color enabledAlpha = new Color(0.356F, 0.78F, 0.815F, 1F);  
12 - private Color disabledAlpha = new Color(1F, 1F, 1F, 1F);  
13 -  
14 - void Start () {  
15 - thisButtonGraphic = thisButton.GetComponent<Graphic>();  
16 - thisButtonGraphic.color = isEnabled ? enabledAlpha : disabledAlpha;  
17 - }  
18 -  
19 - public void switchCollor(){  
20 - isEnabled = !isEnabled;  
21 - thisButtonGraphic.color = isEnabled ? enabledAlpha : disabledAlpha;  
22 - }  
23 -  
24 -}  
Assets/Scripts/SwitchButtonCollor.cs.meta
@@ -1,12 +0,0 @@ @@ -1,12 +0,0 @@
1 -fileFormatVersion: 2  
2 -guid: 7cc5766abb54eac43825973353dad745  
3 -timeCreated: 1442264587  
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/SwitchResolution.cs
@@ -1,44 +0,0 @@ @@ -1,44 +0,0 @@
1 -using UnityEngine;  
2 -using System.Collections;  
3 -using System.Collections.Generic;  
4 -using System;  
5 -using UnityEngine.UI;  
6 -  
7 -public class SwitchResolution : MonoBehaviour {  
8 -  
9 - public static bool showbox = false;  
10 -  
11 - //Mostra e esconde a box de resolucao do player  
12 - public void switchResbox(){  
13 -  
14 - showbox = !showbox;  
15 - gameObject.SetActive(showbox);  
16 -  
17 - }  
18 -  
19 - public void resChange(int i){  
20 -  
21 - switch(i){  
22 -  
23 - case 1:  
24 - Screen.SetResolution(640, 480, false);  
25 - Debug.Log ("640");  
26 - break;  
27 - case 2:  
28 - Screen.SetResolution(800, 600, false);  
29 - Debug.Log ("800");  
30 - break;  
31 - case 3:  
32 - Screen.SetResolution(1024, 768, false);  
33 - Debug.Log ("1024");  
34 - break;  
35 - default:  
36 - Screen.SetResolution(640, 480, false);  
37 - Debug.Log ("unknown res");  
38 - break;  
39 -  
40 - }  
41 -  
42 - }  
43 -  
44 -}  
Assets/Scripts/SwitchResolution.cs.meta
@@ -1,12 +0,0 @@ @@ -1,12 +0,0 @@
1 -fileFormatVersion: 2  
2 -guid: d0f8efe7b736c5c43932f164af521190  
3 -timeCreated: 1435948409  
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/SwitchSubActiveStatus.cs
@@ -1,17 +0,0 @@ @@ -1,17 +0,0 @@
1 -using UnityEngine;  
2 -using System;  
3 -using UnityEngine.UI;  
4 -  
5 -public class SwitchSubActiveStatus : MonoBehaviour {  
6 -  
7 - private bool show = true;  
8 -  
9 - //Mostra ou esconde o GameObject associado ao script  
10 - public void SwitchStatus()  
11 - {  
12 - show = !show;  
13 - gameObject.SetActive(show);  
14 -  
15 - }  
16 -  
17 -}  
Assets/Scripts/SwitchSubActiveStatus.cs.meta
@@ -1,12 +0,0 @@ @@ -1,12 +0,0 @@
1 -fileFormatVersion: 2  
2 -guid: f2c282fe94d95b544b4585b0af90077b  
3 -timeCreated: 1441833015  
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/TrieST.cs
@@ -1,96 +0,0 @@ @@ -1,96 +0,0 @@
1 -using System.Collections.Generic;  
2 -using System;  
3 -using System.Text;  
4 -using UnityEngine;  
5 -  
6 -public class TrieST<Value>  
7 -{  
8 - private static int R = 42;  
9 - private static char[] chars = {  
10 - ' ', '-', '(', ')', ',', '%',  
11 - 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H',  
12 - 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',  
13 - 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X',  
14 - 'Y', 'Z',  
15 - '1', '2', '3', '4', '5', '6', '7', '8', '9', '0'  
16 - };  
17 - private static int[] indexes = new int[256];  
18 -  
19 - private Node root;  
20 - private int N;  
21 -  
22 - private class Node  
23 - {  
24 - public String val;  
25 - public Node[] next = new Node[R];  
26 - }  
27 -  
28 - public TrieST()  
29 - {  
30 - for (int i = 0; i < R; i++)  
31 - indexes[chars[i]] = i;  
32 - }  
33 -  
34 - public String get(String key)  
35 - {  
36 - Node x = get(root, key, 0);  
37 - if (x == null) return null;  
38 - return x.val;  
39 - }  
40 -  
41 - private Node get(Node x, String key, int d)  
42 - {  
43 - if (x == null) return null;  
44 - if (d == key.Length) return x;  
45 - int c = indexes[key[d]];  
46 - return get(x.next[c], key, d + 1);  
47 - }  
48 -  
49 - public void put(String key, String val)  
50 - {  
51 - root = put(root, key, val, 0);  
52 - }  
53 -  
54 - private Node put(Node x, String key, String val, int d)  
55 - {  
56 -  
57 - if (x == null) x = new Node();  
58 - if (d == key.Length)  
59 - {  
60 - if (x.val == null) N++;  
61 - x.val = val;  
62 - return x;  
63 - }  
64 - int c = indexes[key[d]];  
65 - x.next[c] = put(x.next[c], key, val, d + 1);  
66 - return x;  
67 -  
68 - }  
69 -  
70 - public Queue<String> keys()  
71 - { return keysWithPrefix(""); }  
72 -  
73 - public Queue<String> keysWithPrefix(String prefix)  
74 - {  
75 - Queue<String> results = new Queue<String>();  
76 - Node x = get(root, prefix, 0); //ref para o primeiro nó que contem a palavra prefix  
77 - collect(x, new StringBuilder(prefix), results);  
78 - return results;  
79 - }  
80 -  
81 - private void collect(Node x, StringBuilder prefix, Queue<String> results)  
82 - {  
83 - if (x == null) return;  
84 - if (x.val != null) results.Enqueue(prefix.ToString());  
85 -  
86 - for (char c = (char)0; c < R; c++)  
87 - {  
88 - prefix.Append(chars[c]);  
89 -  
90 - collect(x.next[c], prefix, results);  
91 - prefix.Remove(prefix.Length - 1, 1);  
92 - }  
93 -  
94 - }  
95 -  
96 -}  
97 \ No newline at end of file 0 \ No newline at end of file
Assets/Scripts/TrieST.cs.meta
@@ -1,12 +0,0 @@ @@ -1,12 +0,0 @@
1 -fileFormatVersion: 2  
2 -guid: c688e56f6c765894981cb20a40f10a9b  
3 -timeCreated: 1448926009  
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/UI.meta 0 → 100644
@@ -0,0 +1,9 @@ @@ -0,0 +1,9 @@
  1 +fileFormatVersion: 2
  2 +guid: 33f56daac8a9d7749955f0df4709b455
  3 +folderAsset: yes
  4 +timeCreated: 1453154556
  5 +licenseType: Pro
  6 +DefaultImporter:
  7 + userData:
  8 + assetBundleName:
  9 + assetBundleVariant:
Assets/Scripts/UI/FadeFX.cs 0 → 100644
@@ -0,0 +1,62 @@ @@ -0,0 +1,62 @@
  1 +using UnityEngine;
  2 +using System.Collections;
  3 +using UnityEngine.EventSystems;
  4 +using UnityEngine.UI;
  5 +
  6 +public class FadeFX : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler {
  7 +
  8 + private BoxCollider COMPONENT_COLLIDER;
  9 + public GameObject update_box;
  10 + //Cria referência para o colider do avatar e torna a barra transparente
  11 + public void Start()
  12 + {
  13 +
  14 + COMPONENT_COLLIDER = GameObject.FindGameObjectWithTag("avatar").GetComponent<BoxCollider>();
  15 + Deactivate();
  16 +
  17 + }
  18 +
  19 + //Listeners de eventos do mouse
  20 + public void OnPointerEnter(PointerEventData eventData){ Activate(); }
  21 + public void OnPointerExit(PointerEventData eventData){ Deactivate(); }
  22 +
  23 + /*
  24 + * Desabilita o colider do avatar para bloquear a rotação
  25 + * Em seguida retorna o visual padrão da barra de controles
  26 + * e reativa a interação com os botões
  27 + */
  28 + private void Activate()
  29 + {
  30 +
  31 + COMPONENT_COLLIDER.enabled = false;
  32 +
  33 + foreach(GameObject GO in GameObject.FindGameObjectsWithTag("FADENEEDED"))
  34 + GO.GetComponent<CanvasRenderer>().SetAlpha(1f);
  35 +
  36 + foreach(GameObject GO in GameObject.FindGameObjectsWithTag("BUTTONS"))
  37 + GO.GetComponent<Button>().interactable = true;
  38 +
  39 + }
  40 +
  41 + /*
  42 + * Habilita o colider do avatar para desbloquear a rotação
  43 + * Em seguida diminui o alpha dos componentes da barra de controles tornando-os transparentes
  44 + * Logo após desativa a interação com os botões para impedir que fiquem em status "highlighted"
  45 + */
  46 + private void Deactivate(){
  47 +
  48 + if(!SwitchResolution.showbox && !update_box.activeSelf){
  49 +
  50 + COMPONENT_COLLIDER.enabled = true;
  51 +
  52 + foreach(GameObject GO in GameObject.FindGameObjectsWithTag("FADENEEDED"))
  53 + GO.GetComponent<CanvasRenderer>().SetAlpha(.2f);
  54 +
  55 + foreach(GameObject GO in GameObject.FindGameObjectsWithTag("BUTTONS"))
  56 + GO.GetComponent<Button>().interactable = false;
  57 +
  58 + }
  59 +
  60 + }
  61 +
  62 +}
Assets/Scripts/UI/FadeFX.cs.meta 0 → 100644
@@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
  1 +fileFormatVersion: 2
  2 +guid: 5cb0d8c33c1f9274083939fe0b6fdc86
  3 +timeCreated: 1442001277
  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/UI/RotateSprite.cs 0 → 100644
@@ -0,0 +1,10 @@ @@ -0,0 +1,10 @@
  1 +using UnityEngine;
  2 +using System.Collections;
  3 +
  4 +public class RotateSprite : MonoBehaviour {
  5 + private float count = 0;
  6 + void Update () {
  7 + count = 1f + (count % 360);
  8 + transform.rotation = Quaternion.AngleAxis(count, new Vector3(0, 0, -1));
  9 + }
  10 +}
Assets/Scripts/UI/RotateSprite.cs.meta 0 → 100644
@@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
  1 +fileFormatVersion: 2
  2 +guid: f30ae3e7382215343aa581d1acb2c6a6
  3 +timeCreated: 1442259123
  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/UI/Switch.cs 0 → 100644
@@ -0,0 +1,15 @@ @@ -0,0 +1,15 @@
  1 +using UnityEngine;
  2 +using System.Collections;
  3 +
  4 +public class Switch : MonoBehaviour {
  5 +
  6 + public GameObject go;
  7 + private bool isActive = false;
  8 +
  9 + public void SwitchStatus()
  10 + {
  11 + go.SetActive(isActive);
  12 + isActive = !isActive;
  13 + }
  14 +
  15 +}
Assets/Scripts/UI/Switch.cs.meta 0 → 100644
@@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
  1 +fileFormatVersion: 2
  2 +guid: 9d82f947b8b7b8c4cb02d681f795cb2d
  3 +timeCreated: 1449167019
  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/UI/SwitchButtonCollor.cs 0 → 100644
@@ -0,0 +1,24 @@ @@ -0,0 +1,24 @@
  1 +using UnityEngine;
  2 +using System.Collections;
  3 +using UnityEngine.UI;
  4 +
  5 +public class SwitchButtonCollor : MonoBehaviour {
  6 +
  7 + public Button thisButton;
  8 + private Graphic thisButtonGraphic;
  9 +
  10 + public bool isEnabled;
  11 + private Color enabledAlpha = new Color(0.356F, 0.78F, 0.815F, 1F);
  12 + private Color disabledAlpha = new Color(1F, 1F, 1F, 1F);
  13 +
  14 + void Start () {
  15 + thisButtonGraphic = thisButton.GetComponent<Graphic>();
  16 + thisButtonGraphic.color = isEnabled ? enabledAlpha : disabledAlpha;
  17 + }
  18 +
  19 + public void switchCollor(){
  20 + isEnabled = !isEnabled;
  21 + thisButtonGraphic.color = isEnabled ? enabledAlpha : disabledAlpha;
  22 + }
  23 +
  24 +}
Assets/Scripts/UI/SwitchButtonCollor.cs.meta 0 → 100644
@@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
  1 +fileFormatVersion: 2
  2 +guid: 7cc5766abb54eac43825973353dad745
  3 +timeCreated: 1442264587
  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/UI/SwitchResolution.cs 0 → 100644
@@ -0,0 +1,44 @@ @@ -0,0 +1,44 @@
  1 +using UnityEngine;
  2 +using System.Collections;
  3 +using System.Collections.Generic;
  4 +using System;
  5 +using UnityEngine.UI;
  6 +
  7 +public class SwitchResolution : MonoBehaviour {
  8 +
  9 + public static bool showbox = false;
  10 +
  11 + //Mostra e esconde a box de resolucao do player
  12 + public void switchResbox(){
  13 +
  14 + showbox = !showbox;
  15 + gameObject.SetActive(showbox);
  16 +
  17 + }
  18 +
  19 + public void resChange(int i){
  20 +
  21 + switch(i){
  22 +
  23 + case 1:
  24 + Screen.SetResolution(640, 480, false);
  25 + Debug.Log ("640");
  26 + break;
  27 + case 2:
  28 + Screen.SetResolution(800, 600, false);
  29 + Debug.Log ("800");
  30 + break;
  31 + case 3:
  32 + Screen.SetResolution(1024, 768, false);
  33 + Debug.Log ("1024");
  34 + break;
  35 + default:
  36 + Screen.SetResolution(640, 480, false);
  37 + Debug.Log ("unknown res");
  38 + break;
  39 +
  40 + }
  41 +
  42 + }
  43 +
  44 +}
Assets/Scripts/UI/SwitchResolution.cs.meta 0 → 100644
@@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
  1 +fileFormatVersion: 2
  2 +guid: d0f8efe7b736c5c43932f164af521190
  3 +timeCreated: 1435948409
  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/UI/SwitchSubActiveStatus.cs 0 → 100644
@@ -0,0 +1,17 @@ @@ -0,0 +1,17 @@
  1 +using UnityEngine;
  2 +using System;
  3 +using UnityEngine.UI;
  4 +
  5 +public class SwitchSubActiveStatus : MonoBehaviour {
  6 +
  7 + private bool show = true;
  8 +
  9 + //Mostra ou esconde o GameObject associado ao script
  10 + public void SwitchStatus()
  11 + {
  12 + show = !show;
  13 + gameObject.SetActive(show);
  14 +
  15 + }
  16 +
  17 +}
Assets/Scripts/UI/SwitchSubActiveStatus.cs.meta 0 → 100644
@@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
  1 +fileFormatVersion: 2
  2 +guid: f2c282fe94d95b544b4585b0af90077b
  3 +timeCreated: 1441833015
  4 +licenseType: Pro
  5 +MonoImporter:
  6 + serializedVersion: 2
  7 + defaultReferences: []
  8 + executionOrder: 0
  9 + icon: {instanceID: 0}
  10 + userData:
  11 + assetBundleName:
  12 + assetBundleVariant: