Logo Makeyourgame
Accueil Les formations Créer un jeu Les ateliers Les tutoriels Blog
Logo Makeyourgame
Les formations Les financements Les exercices La certification Unity
Logo Makeyourgame
Mes objectifs Les jeux Les ressources Le glossaire
Logo Makeyourgame
Les tutos Les tutos Youtube

Utiliser la classe WWW de Unity : Documentation

pictureProfil_alto
Ecrit par alto
Catégorie Documentation
Mis à jour le 28/04/2020
Utiliser la classe WWW  de Unity

Avec la classe WWW de Unity , vous allez pouvoir contacter un script php (par exemple) placé sur un serveur web. Apprenez à récupérer des informations issues d'une base de données depuis votre application Unity.

5 min Débutant

Il est possible de récupérer sa réponse éventuelle et/ou lui passer des paramètres par la méthode GET.Ceci va nous permettre de découvrir de tutoriel en tutoriel, comment créer une architecture de jeu répartie. Ainsi certains modules ou encore fonctionnalités de votre jeu vidéo, seront sur un serveur web (les données des utilisateurs, la configuration globale du jeu...) et d'autres dans le build final distribué aux joueurs (moteur du jeu, assets ...).

La classe WWW de Unity

Cette classe permet un accès simplifié au serveur web, sans devoir utiliser un code bas niveau...c'est tout l'interêt de l'API de Unity.On pourra ainsi récupérer le contenu renvoyé par le script placé sur le serveur. Le téléchargement sera lancé en fond en appelant WWW(url) qui retourne un nouvel objet WWW, que l'on peut ensuite utiliser pour récupérer les données reçues ou les éventuelles erreurs.

using UnityEngine;
using System.Collections;
public class WWWUtilisation : MonoBehaviour
{
    public string url = "http://monsupersite/index.php";//url peut posséder des paramètre GET en plus
    IEnumerator Start()
    {
        WWW www = new WWW(url); //appel serveur
        yield return www; //on attend la réponse
    }
}

Il est à noter que l'url passée en appel de la méthode doit être échappée par des "%". Les protocoles http:// https:// et file:// sont supportés de manière générale.Cette classe nous permet de savoir si le téléchargement est terminé (isDone), et si ce n'est pas le cas de créer une coroutine avec une instruction yield pour attendre la fin du téléchargement, sans bloquer l'exécution du reste du programme.On peut ainsi récupérer par exemple des listes de best scores, depuis une base de données, ou télécharger une image placée sur le FTP du serveur.Avec la classe WWW on peut ajouter des paramètres GET à la fin de l'url, ainsi on peut utiliser par exemple : http://monsupersite.delire/index?pseudo=totoPour l'utilisation de paramètres POST, il vous se pencher sur la classe WWWForm de Unity.

Sachez que cette classe WWW tend à être remplacée peu à peu, au profit de la classe UnityWebRequest que nous verrons dans un prochain tutoriel. Mais pour un cas d'étude ou encore une utilisation simple sans besoin de plus de fonctionnalités, la classe WWW fait très bien son travail, encore de nos jours en 2018 !!

Récupérer une info depuis un serveur web - Classe WWW

Voyons comment récupérer une information simple depuis notre script php. Un simple "echo" php de texte, codé en dur, fera l'affaire ici pour le côté serveur !!Notez que l'on peut faire un "echo" ou un "return" dans le fichier php.

<?php
   $message = 'Promo exceptionnelle pendant';
   $message = $message.' 24h'; //on peut concaténer pour compléter le message !!
   return $message; //cela fonctionne aussi
?>

Si vous voulez installer un serveur local, utilisez WAMP, LAMP ou MAMP selon votre système d'exploitation.

Récupérer des données issues d'une base de données (BDD)

Cette fois-ci on va compliquer un peu plus et on cherche maintenant à récupérer des données issues d'une base de données. Pour le tutoriel on va tenter de savoir si notre utilisateur est premium ou pas, sachant que cette information est stockée en BDD.La mise en place des serveurs web ou MySQL, ne sera pas traité ici. Sachez tout de même qu'on utilisera l'objet PDO afin de contacter la BDD, en utilisant les langages php et MySQL.Vous pouvez trouver ci-dessous la structure de la table utilisée :

https://makeyourgame.fun/upload/uploads/2018/01/table-user-classe-www-unity.png

  Il est à noter que le script php manque ici d'un contrôle d'existence d'au moins un "user" récupéré en BDD, avant de tenter d'accéder à l'indice 0 du tableau d'objets reçus.    

        

Aller plus loin avec la documentation de Unity

                                                                                             
  • La classe WWW 
  •                                                                                                                                                                
  • Instruction yield
  •                                                                                          

        

Un souci, des bugs, des erreurs en console ? Venez en parler et ainsi trouver de l'aide sur Discord

Vues: 2247

Licence:



Validation du Tutoriel

Veuillez vous connecter ou créer un compte pour pouvoir valider ce tutoriel et ainsi gagner de l'expérience (XP) !

Vous aimerez aussi...

Blog et Tutoriels