Comments 6
Сделал на WWW систему динамической подгрузки бандлов. Еще WWW файлы по частям не умеет грузить. Когда-то реализовывали download manager контента с загрузкой файлов по частям, с поддержкой паузы закачки.
В одном из проектов использую просто обвертку по типу:
Ответ с сервера приходит в json.
public WWW POST (string url, Dictionary<string,string> post)
{
WWWForm form = new WWWForm ();
foreach (KeyValuePair<string,string> post_arg in post)
{
form.AddField (post_arg.Key, post_arg.Value);
}
WWW www = new WWW (url, form);
StartCoroutine (WaitForRequest (www));
return www;
}
Ответ с сервера приходит в json.
А что у вас делает код, который вызывает POST(..);, проверяет на request.isDone? Как раз я хотел избавиться от этого.
Может есть решение, которое позволяет красиво это сделать?
Может есть решение, которое позволяет красиво это сделать?
WaitForRequest просто:
а сам код, который вызывает POST по типу:
В принципе этого вполне хватает. Игровой проект у меня, как бы точнее сказать, нечто вроде «небольшой» социальной сети (рейтинги, комментарии, личка, друзья и т.п.), почти 80% данных хранит и обрабатывает сервер. Локально хранится только часть профиля, чтобы в офлайне поиграть могли.
По правде сказать, в юнити мне не особо нравится работа через WWW, с его асинхронностью бывают задержки на доли секунд, и тут или блокировать интерфейс перед показом, или рывок «обновления» в самом интерфейсе. А изобретать велосипед, или использовать решения по типу UniWeb уже поздно т.к. перепиливать придется много :)
private IEnumerator WaitForRequest (WWW www)
{
yield return www;
if (www.error == null) { ParseAnswer(www.text); }
}
а сам код, который вызывает POST по типу:
public void PostComment(int gameID, string message, int parentId)
{
var url = baseURL + "add_comment";
var post = new Dictionary<string, string>();
post.Add("game_id", gameID.ToString());
post.Add("parent_id", parentId.ToString());
post.Add("body", message);
post.Add("facebook_id", ProfileManager.CurrentProfile.FacebookId);
POST(url, post);
}
В принципе этого вполне хватает. Игровой проект у меня, как бы точнее сказать, нечто вроде «небольшой» социальной сети (рейтинги, комментарии, личка, друзья и т.п.), почти 80% данных хранит и обрабатывает сервер. Локально хранится только часть профиля, чтобы в офлайне поиграть могли.
По правде сказать, в юнити мне не особо нравится работа через WWW, с его асинхронностью бывают задержки на доли секунд, и тут или блокировать интерфейс перед показом, или рывок «обновления» в самом интерфейсе. А изобретать велосипед, или использовать решения по типу UniWeb уже поздно т.к. перепиливать придется много :)
Глянул статью, думал что-то полезное, но увы. Вот зачем извращаться над тем, что и так хорошо работает? Советую почитать про WWW и WWWForm (это GET и POST соотв.) более внимательно. Последний позволяет параметры вбивать в удобном формате. Вот комментом выше xa3apg привел хороший пример.
На счет проблемы синхронностью — используйте Coroutine.
На счет проблемы синхронностью — используйте Coroutine.
Тоже написал свой «велосипед» вокруг WWW.
Может кому пригодиться u3d.as/content/webjema/www-wrapper
Бесплатно :)
Может кому пригодиться u3d.as/content/webjema/www-wrapper
Бесплатно :)
Sign up to leave a comment.
Обертка над WWW в Unity3D