Я использовал этот код для подключения моего проекта Unity к моей базе данных MySql:
public void SetupSQLConnection()
{
Debug.Log("Connection Function Started");
if (connection == null)
{
Debug.Log("If connection == null");
try
{
Debug.Log("Try block started");
MySqlConnectionStringBuilder connBuilder = new MySqlConnectionStringBuilder();
connBuilder.Server = "localhost";
connBuilder.UserID = "root";
connBuilder.Database = "therapygame";
connBuilder.Password = "";
connBuilder.OldGuids = true;
Debug.Log("String set");
connection = new MySqlConnection(connBuilder.ConnectionString);
Debug.Log("new MySqlConnection");
connection.Open();
Debug.Log("connection");
}
catch (MySqlException ex)
{
Debug.LogError("MySQL Error: " + ex.ToString());
}
}
}
Это прекрасно работает при запуске моего проекта в редакторе Unity3d.Однако, когда я собираю WebGL, он больше не подключается к базе данных.
Ошибка возникает между Debug.Logs "new MySqlConnection" и "connection".Другими словами, это терпит неудачу в соединении. Open ();оператор.
Вот журнал консоли в Google Chrome:
SystemException: Thread creation failed.
Rethrow as TypeInitializationException: The type initializer for 'System.Threading.Timer.Scheduler' threw an exception.
Rethrow as TypeInitializationException: The type initializer for 'System.Threading.Timer' threw an exception.
Rethrow as TypeInitializationException: The type initializer for 'MySql.Data.MySqlClient.MySqlPoolManager' threw an exception.
(Filename: currently not available on il2cpp Line: -1)
И вот источник этой ошибки (она настолько велика, что мне пришлось разбить ее на части) (см. следующий раздел, чтобы узнать, что искать):
https://0bin.net/paste/-28c3BvLx+Nx+Q+L#ltyOWWb+IembwSAgNKzPCRwvI5MkPOrUfgOAs3i4R+f
https://0bin.net/paste/ZleyLDeOcgr3kj-e#OPVr3oIC8-mcO9mXB1pV/+ONcdnUB+3I1RCy37/NI+p
https://0bin.net/paste/+rbHWsKmXhIXM50A#PaAFLCeDJZzIQTWczYbDepmubFhSaeDWqzcB+ItUTnb
https://0bin.net/paste/VdNv2NA8K0--ZXNM#fomzOVZ9iNOJDHequiSAbuv6I3lxDXXL+E5WK6GPKZv
https://0bin.net/paste/zcDPoycv5lqbjRcA#h0WNQdMSU4VtdIbwzOByW5csu68FERPvEdOKJz9oUeA
Скопируйте и вставьте его в ctrl + f и найдите:
function _JS_Log_Dump(ptr, type) {
var str = Pointer_stringify(ptr);
if (typeof dump == "function") dump(str);
switch (type) {
case 0:
case 1:
case 4:
console.error(str);
return;
case 2:
console.warn(str);
return;
case 3:
case 5:
console.log(str);
return;
default:
console.error("Unknown console message type!");
console.error(str);
}
}
Строки, о которых идет речь,
case 4:
console.error(str);
У меня естьвключил System.Data.dll и MySql.Data.dll в мои ссылки на Visual Studio, а также все файлы I18N.Я также поместил эти файлы в путь к файлу моего встроенного проекта.
Пожалуйста, скажите мне, если вам нужна дополнительная информация, я попытался включить все, что мне показалось уместным.