En terme de géolocalisation Unity dispose d’une API légère (ServiceLocation) qui pourrait suffire mais un de nos projets nécessite de meilleures performances. Ainsi nos développeurs se sont lancés dans la création d’un plugin Unity de géolocalisation pour Android.

 

Mais de quelle performances parle-t-on ?

 

Tests du ServiceLocation de Unity

L’API est simple et facile à prendre en main, il suffit de vérifier que l’utilisateur à donné son autorisation pour l’utilisation de sa géolocalisation, puis on lance le service.

 

Après voir attendu son initialisation, on peut commencer à demander lastData qui représente la dernière géolocalisation connue selon le dernier update déclenché.

Mais la mise à jour dépend du déplacement réel du device, qui est un paramètre à indiquer lors du lancement du service, comme on a pu le voir précédemment.

Ainsi il faut se déplacer de 2m ici avant d’espérer avoir une mise à jour de la géolocalisation.

Nous avons fait nos propres tests et bien que la précision de la position soit bonne, voir très bonne, le rafraîchissement lui laisse complètement à désirer. Autant pour un déplacement en voiture cela peut encore passer, mais pour un jeu vidéo ciblant des joueurs à pied…cela ne sera absolument pas suffisant !!

 

Plugin Unity de géolocalisation

Une fois ce constat fait, les développeurs C# se sont donc penchés sur d’autres tests en partant d’une application test de géolocalisation sous Android natif, en utilisant Android Studio.

Le premier travail était de comparer les résultats obtenus en se servant directement du service de géolocalisation directement offert par Android sans passer par Unity et son API…en clair on retourne à la source.

Et très rapidement les résultats étaient là !

En passant directement par Android on atteint notre objectif de rafraîchissement plus fréquencé, débloquant ainsi le projet par la même.

En effet le service d’Android s’initialise en lui passant un autre paramètre essentiel qui est le temps désiré entre chaque update. C’est CE paramètre sur lequel nous n’avions aucun contrôle avec l’API de Unity.

Alors évidemment la précision n’est pas absolue et elle dépend forcément de la zone géographique où l’on se trouve. Mais on peut au moins se déplacer à pied et avoir une position rafraichie, sans avoir parcouru 10m sans voir sa position changer avec Unity.

 

Pour les besoins du jeu le plugin sera donc finalisé avec le service GPS d’Android. Ceci dit le regard de l’équipe se porte déjà plus loin …

Projet Tango y es tu ?

 

 

Partagez !