Unity WebGL взаимодействует с веб-страницей

Я новичок в единстве. Итак, я изо всех сил пытаюсь объяснить проблему, в которой я застрял, и понятия не имею, как подойти к ней. У меня работает веб-сайт Ruby on Rails.

Я строю небольшую игру на единстве, которая очень похожа на систему управления запасами. Но инвентарь специфичен для пользователя, и пользователь может вносить в него изменения. Пользователь видит игру как часть своего дашборда. Что я хочу сделать:

  1. В тот момент, когда пользователь заходит на свою панель управления, игра Unity должна загружаться с инвентарем пользователей, вошедших в систему.
  2. Я считаю, что для этого единство webgl должно взаимодействовать с моим приложением и получать пользователя.

Также,

  1. Как я могу все это протестировать, не создавая приложение?

person Sonali Gupta    schedule 14.03.2016    source источник
comment
этот вопрос принадлежит gamedev   -  person yuyoyuppe    schedule 14.03.2016
comment
Ладно. размещены там. Благодарность   -  person Sonali Gupta    schedule 14.03.2016
comment
Пользователь должен войти в систему с именем пользователя и паролем? Я считаю, что Unity Webgl должен взаимодействовать с моим приложением? какое приложение?   -  person Programmer    schedule 14.03.2016
comment
Да, необходимо войти в систему с именем пользователя и паролем. У меня есть веб-сайт RoR, т.е. приложение   -  person Sonali Gupta    schedule 14.03.2016


Ответы (2)


Вы можете проверить вход / выход пользователя и панель управления в редакторе, не создавая WebGl. Это будет работать, но вам следует всегда тестировать свою игру на WebGl один раз в время во время разработки < / strong>, чтобы убедиться, что то, что вы делаете, сработает в будущем. Без этого ваша последняя игра может не работать, поскольку вы использовали неподдерживаемый API для WebGL. Вот почему вы должны тестировать игру, но не все время, а только раз время от времени.

Для связи с вашим сервером вы должны использовать новый Unity API UnityWebRequest вместо WWW. Класс WWW будет удален в этом или в ближайшие месяцы. UnityWebRequest полностью поддерживает сборку WebGL. Классы .Net НЕ поддерживаются в сборке WebGL. Таким образом, вы не можете использовать что-либо вроде HttpWebRequest или Sockets ...

person Programmer    schedule 14.03.2016
comment
Хорошо. Спасибо за подробный ответ. На самом деле мне не нужно связываться с сервером для решения этой проблемы. Я хочу связаться с браузером и получить данные пользователя, вошедшего в систему, то есть имя пользователя, хранящееся в сеансе. Потому что пользователь уже вошел в систему и сидит на панели инструментов моего веб-сайта. Я хочу, чтобы отсюда он автоматически попадал в свой инвентарь в игре на единство. - person Sonali Gupta; 14.03.2016
comment
Я хочу знать, о чем вы говорите. Вы программировали приборную панель? - person Programmer; 14.03.2016

Если вы хотите напрямую общаться с браузером, тогда

с WebGL на index.html - Application.ExternalCall (MyFunction, MyValue)

от index.html до WebGL - SendMessage (MyGameObject, MyFunction, MyValue)

Итак, в вашем случае, когда пользователь попадает на свою панель управления, единство должно получить что-то вроде идентификатора входа пользователя в систему из браузера, который необходимо вызвать функцию из index.html и вернуть ее обратно в единство с данными, полученными из сеанса.

WebGL

public void ReloadInventoryBaseOnUser()
{
    Application.ExternalCall("GetUserID");
}

index.html

function GetUserID(){
    //$.ajax here to get session id
    SendMessage("Manager","SetUserID", userID);
    focus();
}

WebGL

public void SetUserID(string ID){
    userID = ID;
    ReloadInventory(userID);
}

Сеанс - это серверная вещь, вы можете написать обработчик Http (который будет использовать идентификатор сеанса, если он есть) и вернуть значение оттуда, используя $.ajax. поэтому предполагая, что вы сохранили идентификатор в переменной js userID

person Tengku Fathullah    schedule 28.06.2016