Đây là câu hỏi Unity3d trong C#. Mục đích là tạo một đối tượng để tôi có thể chuyển vào một URL và nhận dữ liệu qua GET
, một đối tượng mà tôi sẽ tạo ra sẽ là một trình bao bọc cho logic WWW. Tôi cũng sẽ thích một đối tượng 'POST', nơi tôi có thể cung cấp một url và một 'Từ điển' của các cặp khóa-giá trị như các đối số sau. Sooo ... chúng ta cuối cùng muốn một cái gì đó như thế này:Unity GET/POST Wrapper
get_data = GET.request("http://www.someurl.com/somefile.php?somevariable=somevalue");
VÀ
post_data = POST.request("http://www.someurl.com/somefile.php", post)
// Where post is a Dictionary of key-value pairs of my post arguments.
Để thử và thực hiện điều này, tôi sử dụng các đối tượng WWW
. Bây giờ, để cung cấp thời gian đối tượng WWW
để tải xuống, chúng tôi cần phải có điều này xảy ra bên trong một đối tượng MonoBehaviour
và yield
kết quả. Vì vậy, tôi nhận được điều này, mà làm việc:
public class main : MonoBehavior
{
IEnumerator Start()
{
WWW www = new WWW("http://www.someurl.com/blah.php?action=awesome_stuff");
yield return www;
Debug.Log(www.text);
}
}
Những gì tôi thực sự muốn là thế này:
public class main : MonoBehavior
{
IEnumerator Start()
{
GET request = new GET("http://www.someurl.com/blah.php?action=awesome_stuff");
Debug.Log(request.get_data()); // Where get_data() returns the data (which will be text) from the request.
}
}
Bây giờ tôi có kịch bản chính kèm theo đơn GameObject
trong hệ thống phân cấp (gọi là root). Tôi có cần phải có tập lệnh GET
được đính kèm vào thư mục gốc GameObject
không? Tôi có thể làm điều đó động từ main
không?
Cuối cùng, tôi cần một giải pháp cho phép tôi dễ dàng gửi yêu cầu GET
và POST
.
Chúc mừng!
vấn đề lớn mặc dù trong sử dụng phương pháp FIND là bạn sẽ có một hit lớn về hiệu suất trò chơi của bạn .... cố gắng tìm một đối tượng trò chơi .... kiểm tra liên kết tốt đẹp về cách làm việc với các đại biểu http: // www .unifycommunity.com/wiki/index.php? title = CSharpMessenger_Extended –
Hoàn toàn chính xác. Lý tưởng nhất là bạn sẽ theo dõi đối tượng thông qua biến tham chiếu và treo vào nó để bạn chỉ cần thực hiện điều đó một lần. Hoặc nếu một trò chơi trong cảnh đang sử dụng trình bao bọc này, bạn có thể có một var công khai có thể được chỉ định DB GO trong trình chỉnh sửa Thống nhất, sau đó bạn không cần tìm bất kỳ thứ gì! – PandemoniumSyndicate
Tôi không nghĩ rằng điều này hoạt động thực sự. Khi bạn đang thực hiện: StartCoroutine (WaitForRequest (yêu cầu)) Debug.Log (request.text) Nếu yêu cầu chưa được thực hiện thì chỉ coroutine sẽ bị dừng, chứ không phải chức năng thực tế. Debug.Log (request.text) nào sẽ được gọi trước khi yêu cầu kết thúc. –