Découvrez comment formater un objet JSON en php afin de le retourner à une possible application Unity ou Godot Engine.
Il est tout à fait possible que dans votre prochain jeu, vous ayez besoin de récupérer des données depuis un serveur web. Alors que côté Unity nous savons comment faire pour envoyer des données, en POST, au serveur, et grâce à WWWForm, côté serveur nous ne savons pas encore comment renvoyer des données nombreuses.
C'est ce que nous allons voir sur ce tutoriel en utilisant le langage php : "Formater et renvoyer des données en php"
Mise en place d'un serveur web
Ce tutoriel ne présentera pas comment installer un serveur local php, car de nombreuses méthodes existent, au même titre que cela dépend très fortement de votre système d'exploitation.
Voici tout de même une ressource (FR), pour installer un serveur local php, issue d'un site très connu : OpenclassRooms
Si vous disposez déjà d'un serveur en ligne, vous pouvez vous passer de cette étape.
Ecrire le script php
Dans cet exemple on part du principe que l'on a déjà récupéré les informations voulues depuis une Base de Données MySQL par exemple. De plus on imagine que l'on veut à terme recomposer les données du joueur, côté Unity.
Penser l'objet JSON
Ainsi il nous faut penser en amont notre objet JSON avant de pouvoir le formater en php... N'hésitez à relire la notion de JSON si cela est encore flou pour vous !
L' Objet Player côté Unity utilisera 2 champs: name et xp . Notre JSON sera donc naturellement composé d'un player qui sera lui même composé de 2 informations (name et xp)
{"player":{"name":"alto","xp":50}}
Encoder en JSON
Nous utiliserons un script php, nommé index.php pour l'exemple...à vous d'adapter selon vos besoins !
<?php
$datas = array(
'player' => array(
'name' => 'alto',
'xp' => 50
)
);
$json = json_encode($datas); // transforme en notation JSON les données $datas => le tableau php (array)
echo $json; //retourne au client (Unity, Godot Engine...) les données sous forme d'objet JSON
Le script est ici très simple et c'est volontaire, afin de ne pas perturber la compréhension.
Les commentaires dans le code parlent d'eux mêmes, mais il est quand même important de noter la correspondance entre la structure des datas $datas, composées d'un tableau de tableau, permettant de passer la validation de l'object JSON.
Si vous accédez à votre page index.php, sur votre serveur local/online, vous devriez voir le résultat textuel de votre objet JSON.
Vous êtes ainsi prêts côté serveur php à renvoyer des données à vos clients .
La prochaine fois nous verrons comment récupérer ces données JSON depuis Unity !