Comment fermer une fenêtre dans Unity3D ?

Aujourd’hui nous allons essayer de fermer une fenêtre ouverte dans Unity3D. Pour cela il faut une fenêtre ouverte (panel) dans un Canvas.

Problématique :

  • Nous ne voulons pas fermer cette fenêtre (InventoryWindows) d’une quelconque manière mais en appuyant simplement en dehors de celle-ci.
  • Il faut que la fermeture de la fenêtre puisse s’exécuter aussi sur mobile (soit sans curseur de souris).

Dans un premier temps je n’ai pas pensé à adapter cette fonctionnalité à l’utilisation d’un écran tactile. Or, mon premier réflexe a été d’ajouter un contrôle sur un booléen (mouseIsOut), si mouseIsOut vrai alors fermer la fenêtre, sinon ne rien faire. J’ai mis le tout dans la fonction LateUpdate() de la classe définissant la gestion de ma fenêtre. Quand la souris sors du Panel (Event Trigger –  PointerOut) alors on met mouseIsOut à vrai. Au contraire, à l’ouverture du panel ou l’entrée de la souris dans le panel on met mouseIsOut à faux.

Avec cette méthode qui marche très bien sur PC on rencontre bien vite un problème quand on passe sur un écran tactile. En effet, l’écran tactile ne considère pas de curseur tant que notre doit n’est pas en contact avec la surface. On ne peut donc pas détecter la sortie du curseur du Panel à l’aide de l’Event Trigger en mode PointerExit… (Sauf si l’utilisateur déplace son doigt sans le lever de l’intérieur à l’extérieur du panel.

Recherche d’une autre solution :

Pour palier à ce problème j’ai trouvé une solution facile à mettre en œuvre.

  • Faire d’un panel un bouton quitter géant et situé à l’arrière de notre fenêtre.

En bleu (écran + objet actif) vous pouvez voir le panel sur lequel j’ai ajouté un Event Trigger et le script permettant de mettre mouseIsOut à True si il y a détection de clic sur ce panel.

Il vous suffit alors de mettre mouseIsOut à false quand vous ouvrez la fenêtre (ici l’inventaire) et le tour est joué.

Note : vous pouvez aussi détecter si votre fenêtre est active (isActive = true) pour économiser l’utilisation d’un booléen.

[git] Retenir temporairement les infos d’authentification

Une configuration que je trouve plutôt utile, lorsque je modifie un dépôt git sur une machine où je ne souhaite pas mettre en place de clé ssh. A partir de la version 1.7.9 de janvier 2012 de Git, il est donc possible de demander la mise en cache des informations d’authentification (login, mot de passe), afin de ne pas avoir à les ressaisir en permanence.

La configuration s’effectue via la commande suivante, qui aura pour effet de conserver les infos en cache pour une durée de 15 minutes :

git config --global credential.helper cache

Si on désire augmenter la durée de cache, à une heure par exemple, on ajoute le paramètre timeout :

git config --global credential.helper "cache --timeout=3600"

Source: git-crendential-cache

Migration

Bonne nouvelle, la migration d’environnement commencée mardi 24 octobre en début de soirée s’est bien déroulée, et le visiteur averti n’aura constaté que quelques différences dans la dernière note de service. C’est une très bonne chose de faite, puisque je réalise dans la foulée un passage de Debian 7 à Debian 9. Il était temps !

Évoquons un peu le serveur: au final Unicoda reste chez OVH. Le site quitte un serveur Kimsufi pour un VPS SSD simple. Suite au changement, je crois détecter une accélération globale du chargement des pages. Par ailleurs, petite anecdote, Unicoda se rapproche de nous en étant désormais hébergé à Strasbourg.

On profite du changement pour déployer un Fail2ban plus récent et profiter de l’ajout d’un grand nombre de règle d’exclusion permettant de protéger Apache. Les robots pirates devraient donc voir leur IP bloquée plus souvent qu’auparavant.
Petit nettoyage rapide du côté de la base de données et des fichiers afin de supprimer des reliquats de plugins mal désinstallés.

Il va maintenant falloir régler une bonne fois pour toutes la question de l’automatisation de la sauvegarde, réaliser quelques tests des différents outils disponibles et déterminer le processus adéquat.

[Note de service] Migration en cours (Nouvel environnement)

Unicoda est en train de migrer vers un environnement tout neuf. Si vous voyez cette note, c’est que vos DNS sont à jour et dirige vers la nouvelle version.

Les quelques tests effectués via la 4G sont plutôt positifs. Cela semble fonctionner correctement. Pas d’erreur dans les logs du nouvel environnement et déjà quelques logs d’accès.

Le reste des vérifications demain.

L’heure du renouveau

Mon petit nuage de service personnel commence à vieillir. Si la mise à jour des différents composants s’effectue généralement sans anicroche, certains d’entre eux consomment bien trop de ressources pour une utilisation mono-utilisateur. Constatant que mon dernier article faisant l’inventaire des services utilisés remonte à déjà deux ans, je me dois d’effectuer un petit rattrapage avant d’aller plus loin.

Voici donc un inventaire des services en septembre 2017 :

  • Baïkal : Pour la gestion des contacts et du calendrier.
  • Etherpad : Pour de l’édition collaborative.
  • FreshRSS : Pour la gestion des flux RSS.
  • Gitlab : Pour la gestion de code.
  • Seafile : Pour la gestion et le partage de fichiers.
  • Shaarli : Pour sauvegarder simplement des urls depuis n’importe quel support.
  • Wallabag : Pour la conservation d’article à lire ultérieurement.

La maintenance de deux de ces services : Gitlab, et Seafile dans une moindre mesure, commençaient à devenir de plus en plus lourde. Par ailleurs, l’empreinte mémoire de Gitlab semblait devenir toujours plus importante au fil du temps. Qu’on ne s’y trompe pas, les deux services sont plutôt bons. Gitlab est fantastique, mais n’est plus adapté aux petites configurations, il me semble davantage destiné aux communautés et aux entreprises désormais (ou à ceux qui veulent/peuvent réserver 2Go de mémoire vive à Gitlab). A ces considérations, s’ajoute le défi et l’objectif d’auto-héberger la majorité des services. Pour y arriver, je me suis donc fixé des impératifs en termes de consommations de ressources, dictés par le matériel à ma disposition. Enfin, c’est la décision d’aller vers davantage de simplicité qui prime, en essayant de trouver des composants stables, rapidement déployable et dont la sauvegarde est aisée.

Vous l’aurez compris, j’ai arrêté mes instances de Gitlab et de Seafile. A la place de Gitlab, j’utilise désormais Gitea, fork de gogs, pour une empreinte mémoire largement réduite et des fonctionnalités suffisantes. J’ai remplacé Seafile par Nextcloud; retour aux sources après avoir renoncé à Owncloud il y a deux ans. Au passage, j’en profite donc pour me séparer de Baïkal en utilisant les modules calendrier et contacts de Nextcloud.

J’obtiens donc le découpage suivant :

  • FreshRSS : Pour la gestion des flux RSS.
  • Gitea: Pour la gestion de code.
  • Nextcloud : Pour la gestion de fichiers, les contacts et les calendriers.
  • Shaarli : Pour sauvegarder simplement des urls depuis n’importe quel support.
  • Wallabag : Pour la conservation d’article à lire ultérieurement.

Voici donc l’état de mon nuage de service à l’automne 2017, quelques changements de services et du changement du côté de l’hébergement. A voir maintenant à l’utilisation si Nextcloud sera à la hauteur. La suite des opérations concerne désormais ce site en particulier, qui migrera à un endroit qui reste encore à définir.