//==========================================================================================================// /// <summary> /// A função é chamada quando há colisão entre objetos. /// A função verifica a tag do objeto com o qual está havendo colisão. Dependendo do objeto, é /// aplicada a direção inversa ao eixo relacionado a essa colisão. Quando a colisão acontece com /// um GameObject com a tag "Vertical" a direção X é invertida, quando a colisão acontece com um /// GameObject com a tag "Horizontal" a direção de Y é invertida, e quando a colisão acontece com /// outra Alvo ambas as direções são invertidas. /// </summary> /// <param name="outro"></param> //==========================================================================================================// void OnCollisionEnter2D(Collision2D outro) { if (outro.gameObject.tag == "Vertical") { dirX *= -1; } else if (outro.gameObject.tag == "Horizontal") { dirY *= -1; } else if (outro.gameObject.tag == "Forma") { dirX *= -1; dirY *= -1; } else if (outro.gameObject.tag == "Identificador") { if (instance.GetQuantidadeDistracoes() > 0) { this.Destroi(); } outro.gameObject.transform.position = new Vector3(2000, 2000, 1); if (outro.gameObject.GetComponent <Identificador>().GetAssinatura() == instance.CSV_GetAssinaturaAmarela()) { instance.AddPontosAmarelos(-1); } else if (outro.gameObject.GetComponent <Identificador>().GetAssinatura() == instance.CSV_GetAssinaturaVerde()) { instance.AddPontosVerdes(-1); } } }
//==========================================================================================================// /// <summary> /// Cria os objetos que estão sendo rastreados utilizando das informações contidas nos quatro primeiros /// elementos da lista que recebeu os dados dos objetos rastreados pelo arduino. As informações dos dados do /// bloco rastreado são armazendas em estruturas de quatro elementos, por isso escolhemos os quatro primeiros /// elementos da lista para a criação do bloco rastreado dentro da Unity. Os quatro elementos são: ID, assinatura /// posição X e posição Y. Após adicioná-los removemos os quatro primeiros elementos da lista. Assim, o próximo /// grupo de elementos a serem analisados representam outro bloco rastreado. /// </summary> /// <returns></returns> //==========================================================================================================// void ArmazenaBolasRastreadas() { if (dados != null) { while (dados.Count >= 6) { if (instance.CSV_GetMetodoReconhecimento() == "Pixy") { if (instance.ToInt(dados[1]) == instance.CSV_GetAssinaturaAmarela()) { Pixy.CriarIdentificadores(baseIdentificadorAmarelo, instance.ToInt(dados[0]), instance.ToInt(dados[1]), instance.ToInt(dados[2]), instance.ToInt(dados[3]), instance.ToInt(dados[4]), instance.ToInt(dados[4])); } else if (instance.ToInt(dados[1]) == instance.CSV_GetAssinaturaVerde()) { Pixy.CriarIdentificadores(baseIdentificadorVerde, instance.ToInt(dados[0]), instance.ToInt(dados[1]), instance.ToInt(dados[2]), instance.ToInt(dados[3]), instance.ToInt(dados[4]), instance.ToInt(dados[4])); } } dados.Clear(); } } }