Esta es una pregunta de Unity3d in C#. El objetivo es crear un objeto tal que pueda pasar una URL y recibir datos a través del GET
, un objeto que yo crearía sería un contenedor para la lógica WWW. También me gustaría un objeto 'POST' también, donde podría proporcionar una url y un 'Diccionario' de pares clave-valor como las argumentaciones posteriores. Taaan ... que en última instancia gustaría algo como esto:Unity GET/POST Wrapper
get_data = GET.request("http://www.someurl.com/somefile.php?somevariable=somevalue");
Y
post_data = POST.request("http://www.someurl.com/somefile.php", post)
// Where post is a Dictionary of key-value pairs of my post arguments.
para tratar de lograr esto, yo uso el objeto WWW
. Ahora, para dar el tiempo de objeto WWW
para descargar, necesitamos que esto suceda dentro de un objeto MonoBehaviour
y yield
los resultados. Así que me dio esto, que funciona:
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);
}
}
Lo que realmente quiero es éste:
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.
}
}
ahora tengo el script principal unido a la única GameObject
en la jerarquía (denominado raíz). ¿Debo tener también el script GET
adjunto a la raíz GameObject
? ¿Puedo hacer eso dinámicamente desde main
?
En última instancia, necesito una solución que me permita enviar fácilmente GET
y POST
solicitudes.
¡Salud!
El gran problema al usar el método FIND es que tendrás un gran impacto en el rendimiento de tu juego .... tratando de encontrar un objeto del juego .... mira un buen enlace sobre cómo trabajar con los delegados http: // www .unifycommunity.com/wiki/index.php? title = CSharpMessenger_Extended –
Absolutamente correcto. Idealmente, debería hacer un seguimiento del objeto a través de la variable de referencia y aferrarse a él para que solo necesite hacer eso una vez. O si un objeto de juego en la escena usa este envoltorio, podría tener una var pública a la que se le podría asignar el DB GO en el editor de Unity, ¡entonces no necesita encontrar nada! – PandemoniumSyndicate
No creo que esto funcione realmente. Cuando lo esté haciendo: StartCoroutine (WaitForRequest (request)) Debug.Log (request.text) Si la solicitud aún no se ha realizado, la coroutine se detendrá, no la función real. Se llamará a Debug.Log (request.text) antes de que finalice la solicitud. –