Отображение диалогового окна Javascript в браузере из Unity C# приводит к отключению и сбою фотонной сети.
Моя игра Unity WebGL, работающая в браузере, требует, чтобы пользователь ПРОШЕЛ некоторую информацию.
Браузер не позволяет Unity обращаться к прошлому буферу напрямую из Unity, поэтому я написал некоторый код JavaScript для отображения диалогового окна PROMPT, чтобы пользователь мог вставить информацию. Этот код JavaScript вызывается из кода Unity C#.
Проблема в том, что моя игра также использует фотонную сеть, которой постоянно нужно пинговать сервер. Когда мой код C# вызывает код JavaScript и отображается диалоговое окно, движок единства зависает в течение времени, в течение которого отображается диалоговое окно JavaScript PROMPT, это зависание не позволяет фотону пинговать сервер, поэтому, если пользователь занимает более несколько секунд, чтобы выполнить вставку и закрыть диалоговое окно, время ожидания фотона истекает, и он отключается, так как не может пропинговать сервер, и игра вылетает.
Кто-нибудь знает, почему Unity зависает, пока javascript показывает диалоговое окно? есть ли вокруг него?
вот мой код JavaScript
function DoJavaScriptPaste()
{
var retVal = prompt("Paste Here", "Paste Here");
if (retVal==null) {
retVal="";
}
var buffer = _malloc(lengthBytesUTF8(retVal) + 1);
writeStringToMemory(retVal, buffer);
return buffer;
};
Unity вызывает такой код Javascript из C#
[DllImport("__Internal")]
private static extern string DoJavaScriptPaste();
public void DoPaste()
{
string pastedInfo=DoJavaScriptPaste();
text.text = pastedInfo;
}
Я даже пытался вызвать DoPaste из сопрограммы C#, но Unity Engine все еще зависает...