Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Temas recientes

Descargar Imagenes servidor

Iniciado por Jony, Febrero 06, 2020, 12:38:39 PM

Tema anterior - Siguiente tema
Febrero 06, 2020, 12:38:39 PM Ultima modificación: Febrero 06, 2020, 12:43:41 PM por nomoregames
Quisiera descargar todas las imagenes que tengo en un servidor, es decir tengo la carpetta fotos2020 en el servidor, con 25 fotos. Quisera hacer tipo un album que vallan pasando las fotos. 
 
Tengo foto01, foto02, foto03...
 
Cuando entro a la escena que se vea foto01, al darle boton siguiente que se vea foto02, y asi sucesivamente.
 
COmo podria hacerlo?
 
Un saludo

Qué tipo de servidor es? Un Firebase? Uno que soporta PHP?  Si soporta PHP,  empezaría por crear un servicio REST en JSON  que te devolviera 1, n o un rango. Luego llamaría a esa API REST desde Unity. A partir de ahí ya mostrarlas con un ScrollRect.
 
 

Es un hosting en Ionos. No se si sera lo mejor o que... Me recomiendas alguna otra forma de hacerlo?
 
 
 
Un saludo
 
A ver yo hacer una peticion con PHP se hacerla. Y descargala y mostrarla, lo que no veo claro es si dentro de una carpeta en el hosting hay 15 fotos por decir algo, que se descarguen o que se muestren, una a una, como si fuese un array. Peor para hacer solo una peticion mando la direccion de la imagen, lo que quiero es descargar o ir mostrando una a una todas las que hayan, como si fuese un array.
 
 
 
Un saludo

Febrero 06, 2020, 03:03:07 PM #3 Ultima modificación: Febrero 06, 2020, 03:04:20 PM por iRobb
Si las URL's son públicas, pues más fácil. Para descargar lo que sea, incluido imágenes, está el API UnityWWebRequest:
 
https://docs.unity3d.com/es/530/Manual/UnityWebRequest.html
 
Una vez las tengas en un array de Image, mírate el componente ScrollRect:
 
https://docs.unity3d.com/2018.3/Documentation/ScriptReference/UI.ScrollRect.html
 
O el GridLayout mejor si son en plan galería:
 
https://docs.unity3d.com/ScriptReference/GridLayout.html

Si, si la conozco. Pero mi pregunta es: con Unitywebrequest debo mandarle la url de la imagen una a una o puedo decirle de la carpeta fotos2020 quiero todas? 
 
 
 
Es que no se si me explico bien.
 
 
 
Un saludo

Hola @Jony existen varios modos de realizar esto, pero por lo general se trata de realizar mediante un API REST para que todas tus consultas sean genéricas.
 
Con API REST tu consulta sería tal que "https://host.com/api/fotos/2020/[ID DE LA FOTO]". esto te retorna un objeto  llamado "PAGINADOR" que contiene algunos datos importante como el ID de la siguiente y anterior foto y la URL de la IMAGEN La URL de la imagen seria tal que "https://host.com/api/fotos/2020/[ID DE LA FOTO]/source"
 
Esto se puede lograr con NODE.JS o en PHP con Laravel. 

En lo personal uso PHP y no me gusta utilizar librerías, de hecho tengo una libreria propia que uso para muchos proyectos y funciona como PSEUDO API REST, esto debido a que no me parece del todo buena idea los métodos extras al GET y POST.
 
¿Cómo puedes realizar esto con un simple PHP?

Puede crear un archivo index.php en el directorio de las fotos donde obtengas todos los archivos y lo agregue a un arreglo y te lo retorna como JSON_ENCODE
 

<?php
$files["files"] = new array();
foreach (new DirectoryIterator('./') as $fileInfo) {
    if($fileInfo->isDot()) continue;
    $files["files"][] = $fileInfo->getFilename();
}
echo json_encode($files);

 
Luego desde Unity recibes el objeto JSON y lo conviertes con JsonUtylitis a la clase mapeada para este objeto.
 

string json = WebRequest.Get("host/carpeta/fotos");
string[] files = JsonUtility.ToObject<PhotosCollectionJSON>(json).files;
[Serializable]
public class PhotosCollectionJSON
{
     public string[] files;
}

 
La variable FILES debería contener todas las URL de las imágenes que se encuentran dentro de la carpeta.

Vale, lo probare. Una vez tenga las variables en el array files ya puedo mostrarlas. De momento con esa informacion creo que podria empezar a intentarlo. Os mantendre informados... jejejeje
 
 
 
Gracias

Etiquetas: