Home Accueil logo MakeYourGame Une question ? Contact ou sur logo-discord
Connexion Créer compte
Contact logo-discord

Utiliser la classe WWW de Unity

Documentation

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.De plus 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 [url=_wp_link_placeholder]WWWForm de Unity[/url].

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/wp-content/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. 

  https://makeyourgame.fun/wp-content/uploads/2017/07/Capture-d%25E2%2580%2599e%25CC%2581cran-2017-11-22-a%25CC%2580-18.03.04.png 

 

Aller plus loin avec la documentation de Unity

   



Un souci, des bugs, des erreurs en console ?







Venez en parler et ainsi trouver de l'aide sur Discord


Vous aimerez aussi...

Blog et Tutoriels