Je développe une application WebGL avec Unity 2018.
J'ai besoin d'accéder à une base de données MySQL hébergée sur le même serveur.
Ma question est la suivante: puis-je utiliser C # et MySqlConnector (solution que je préfère), ou dois-je utiliser à la place des appels de services Web?
EDIT: il semble qu'il n'est pas non plus possible d'utiliser / consommer le service Web dans la version WebGL, car System.Web.Services n'est pas accessible.
Merci
3 Réponses :
Vous pouvez créer un websocket. Le serveur qui hébergera l'application WebGL aura un serveur websocket, qui effectuera la communication MySQL et renverra les résultats. Et l'application WebGL (celle d'unité) se connecte à ce websocket à l'aide d'un jeton d'authentification (pour s'assurer que c'est le WebGL qui se connecte, pas quelqu'un d'autre) et obtenir les résultats des requêtes là-bas
La façon générale de faire cela (à la fois pour des raisons de sécurité et c'est juste une manière plus standard du côté unité des choses) est que vous hébergez simplement les pages d'interaction de base de données côté serveur dans php, puis utilisez l'un ou l'autre des classes WWW ou UnitWebRequest pour l'utiliser réellement.
Vous pouvez récupérer assez facilement des données au format Json pour travailler avec du côté client
Un tutoriel / guide assez ancien (bien que toujours pertinent) pour quelque chose de ce genre peut être trouvé Ici
En général, l'idée est cependant - le jeu fait une demande à PHP en utilisant une clé cryptée pour la validation, PHP fait le travail de la base de données et puis renvoie certaines données généralement au format Json
Vous avez peut-être déjà votre réponse, mais je l'ai fait il y a quelques semaines et c'est assez facile. Je poste le code php et c # ci-dessous, regardez:
Code C #
<?php
$servername = "123";
$server_username = "123";
$server_password = "123";
$dbName = "123";
//Connection
$conn = new PDO ("mysql:host=$servername;dbname=$dbName", $server_username, $server_password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//Check Connection
if(!$conn){
die("Connection failed.");
}else{
echo "Connection Successful";
}
?>
Code PHP
remplacez «123» par les champs obligatoires
WWWForm form = new WWWForm();
WWW www = new WWW("url of file location on server goes here", form);
yield return www;
Debug.Log(www.text);// this should return "successful connection"
J'espère que cela vous aidera!
peut-être que ce lien peut vous aider