Unity WebGL: могу ли я получить доступ к MySql с помощью MySqlConnector? - PullRequest
2 голосов
/ 13 марта 2019

Я разрабатываю приложение WebGL с Unity 2018.

Мне нужен доступ к базе данных MySQL, размещенной на том же сервере.

Мои вопросы: могу ли я использовать C # и MySqlConnector (решение, которое я предпочитаю), или я должен использовать вместо этого вызовы веб-служб?

РЕДАКТИРОВАТЬ: кажется, что невозможно использовать / использовать веб-сервис в сборке WebGL, потому что System.Web.Services это недоступно.

Спасибо

Ответы [ 3 ]

2 голосов
/ 16 марта 2019

Общий способ сделать это (как по соображениям безопасности, так и с точки зрения стандартного подхода) заключается в том, что вы просто размещаете страницы взаимодействия с базой данных на стороне сервера в php, а затем используете либо WWW или UnitWebRequest классы, чтобы фактически использовать это.

Вы можете довольно легко получить обратно данные в формате Json для работы на стороне клиента

Довольно старый (хотя все еще вродерелевантный) учебник / руководство для чего-то в этом направлении можно найти Здесь

Как правило, идея заключается в том, что - Game делает запрос в PHP, используя какой-то зашифрованный ключ для проверки, PHPработает ли база данных, а затем запускает некоторые данные в формате Json

2 голосов
/ 13 марта 2019

Вы можете сделать веб-розетку. Сервер, на котором будет размещено приложение WebGL, будет иметь сервер веб-сокетов, который будет осуществлять связь с MySQL и возвращать результаты. И приложение WebGL (Unity One) подключается к этой веб-розетке с помощью токена аутентификации (чтобы убедиться, что подключается WebGL, а не кто-то другой) и получает результаты запросов там

1 голос
/ 20 марта 2019

Возможно, у вас уже есть ответ, но я сделал это несколько недель назад, и это довольно легко. Я размещаю оба кода php и c # ниже, посмотрите:

Код C #

 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"

Код PHP

заменить '123' на обязательные поля

 <?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";
} 
?>

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...