Unity 3D помещает / удаляет методы http

Я думаю о переносе веб-приложения JavaScript на C# Unity3D (бесплатная / личная версия) для RPG, которую я разрабатываю. У меня есть расширяемый отдельный API, встроенный в PHP Laravel 5.1, с которым моя игра взаимодействует через jQuery http-вызовы.

Мне нужно продолжать делать стандартные restful звонки,get,post,put,delete, и т.д. в Unity, но я только нашелUnityEngine.WWW#, который делает getsи posts.

Этот so Post разделяет другие доступные методы http Unity3D, но ни один из которых на самом деле получает все restful вызовы в одном. Я спрашиваю снова, потому что это было опубликовано в 2012 году, и я не нашел никаких обновлений, которые удовлетворяют этому в обновленной документации .

Есть лучший HTTP Basic и Лучший HTTP для $ 45 и $ 55, но думал, что будут другие бесплатные варианты.

Я упускаю что-то в Unity, что позволяет выполнять стандартные вызовы restful?

1 ответ

  1. WebClient и WebRequestоба доступны в Unity и выглядит так, как это будет работать только с Pro Unity версии так же, как любой другой API из System.Netпространства имен. Я не знаю, изменилось ли это ограничение в Unity 5. Они поддерживают все те спокойные звонки, упомянутые в вашем вопросе.

    Unity добавил новый API под названием UnityWebRequest в версии 5.2 с поддержкой мобильной платформы в 5.3 . Он был разработан для замены WWWи поддерживает все вызовы restfull, перечисленные в вашем вопросе. Ниже приведены примеры для каждого из них. Это не полный пример. Вы можете найти полные примеры в ссылке, которую я предоставил выше.

    //Get
    UnityWebRequest get = UnityWebRequest.Get("http://www.myserver.com/foo.txt");
    
    //Post
    UnityWebRequest post = UnityWebRequest.Post("http://www.myserver.com/foo.txt","Hello");
    
    //Put
    byte[] myData = System.Text.Encoding.UTF8.GetBytes("This is some test data");
    UnityWebRequest put = UnityWebRequest.Put("http://www.my-server.com/upload", myData);
    
    //Delete
    UnityWebRequest delete = UnityWebRequest.Delete("http://www.myserver.com/foo.txt");
    

    Вы можете увидеть полный пример для каждого из них, включая публикацию с json здесь .