Aqueles que convivem comigo nas redes sociais foram, ha pouco tempo, testemunhas de uma breve inundacao de postagens de conteudo "incomum" (temo inclusive ter sido bloqueado pelos menos pacientes :P).Uma de minhas atividades mais recentes foi o estudo de um plugin da Prime 31 (empresa especializada em desenvolver plugins para a Unity), o iOS Social Networking Plugin, responsavel por realizar a conexao de aplicativos Unity iOS com o Facebook, prevenindo o desenvolvedor de ter que lidar com Objective-C para tal. O plugin permite publicar imagens, status, links, albuns e recuperar informacoes do usuario como email, nome e idade.A dita inundacao de postagens foi uma serie de testes acerca da configuracao e funcionamento do plugin, resultando na publicacao de diversas "Awesome iPad + Unity integration test!" e imagens da interface do prototipo na minha timeline (todas sumariamente apagadas pouco tempo depois).Ironicamente, o plugin, que foi adquirido com a intencao de evitar o uso direto do Objective-C, foi exatamente a causa de um estudo relampago sobre a linguagem e sua integracao com a Unity.Eis a situacao: criar um aplicativo para iPad onde multiplos usuarios poderiam interagir com uma realidade aumentada e postar sobre no Facebook.Eis o problema: grande parte dos aplicativos e sistemas construidos para iOS sao desenvolvidos levando em consideracao que o aparelho tera apenas um proprietario. Sendo assim, apesar da funcao logout() estar disponivel na biblioteca do Social Networking Plugin, ela meramente invalida a sessao e o token de acesso, mantendo os cookies do usuario.Eis o resultado: e impossivel utilizar uma conta diferente apos o login inicial no aplicativo.Informado pelo usuario da Prime 31 no forum da Unity de que nao havia maneira facil para a correcao do "problema", iniciei o processo de pesquisa de como resolver o impasse da maneira dificil: Escrever uma funcao em Objective-C para limpar os cookies do aplicativo entre sessoes.Depois de encarar alguns tutoriais sobre uma das sintaxes mais bizarras que ja vi e aprender sobre o funcionamento de scripts escritos em linguagens baseadas em C na Unity, encontrei um topico no qual um desenvolvedor que compartilhava do meu problema (porem nao especificamente com um aplicativo feito na engine) propos uma solucao relativamente simples:#import "CleanCookies.h"@implementation CleanCookies@endextern "C"{ void SignOut(){ NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; for (NSHTTPCookie *each in cookieStorage.cookies) { [cookieStorage deleteCookie:each]; } }}O trecho acima, escrito em Obj-C, percorre e remove todas as instancias de cookies armazenadas pelo aplicativo utilizando a classe NSHTTPCookieStorage, nativa da linguagem e responsavel pelo gerenciamento dos ditos cookies.Ha duas principais maneiras de se integrar um script de linguagem diferente de C#, Javascript ou Boo com a Unity: Adicionar os arquivos em uma pasta com o nome"Plugins" e integrar com o C# utilizando o comando [DllImport()]ou, no caso de linguagens nao baseadas em C, converter os scripts para uma dll e interagir com as classes normalmente.Apesar de relativamente simples, foi um problema incomodo que atrasou a integracao com o aplicativo, o que me faz questionar a razao da Prime 31 nao ter implementado esse recurso ela mesma. Especialmente considerando-se que eu nao sou o primeiro a ter esse problema.Se estiver passando pela