martes, 26 de abril de 2011

Descargar objetos en Unity3D con MeshSerializer2



Bien pues ahora resolveré una de las dudas que tenían mis alumnos al querer descargar modelos en tiempo real desde Unity3D.
Lo primero que necesitamos será descargar el siguiente package: http://www.unifycommunity.com/wiki/images/3/31/MeshSerializer2.zip

Vámos por pasos:
1.-Importamos el package en unity importando todo su contenido en una carpeta nueva.
2.-Agregamos el script "SaveMeshForWeb.js" a nuestro objeto
3.-Cambiamos desde el Inspector el nombre "SerializedMesh.data" por "tuobjeto.data" (respetando la extensión .data).
4.-Ponemos Play y notaremos que se ha creado un nuevo asset en nuestro proyecto llamado "tuobjeto.data".

Listo, este nuevo objeto lo subiremos a nuestro servidor quedando algo así:
(ejemplo) http://www.tupagina.com/tuobjeto.data

Ahora para leer haremos lo siguiente:

1.-Creamos un espacio de descarga como un box común y corriente.
2.-Le asignaremos el script "LoadMeshFromWeb.js".
3.-Cambiaremos la url del script a la dirección de tu objeto: http://.........../tuobjeto.data
4.-Dejaremos la opción "MeshRenderer" activada en el box, sólo se verá en el editor pero al descargar el modelo se cambiará automaticamente por el objeto descargado. Es importante que la escala del box sea: 1,1,1. También puede que tengamos que darle vuelta.

Ahora bien, el objeto se visualizará con un material gris, lo cual no nos sirve.
Previamente tendremos que realizar mapeo UV de nuestro objeto con una sola textura (no importa el tamaño). Y deberemos colocarla en el servidor quedando algo así:
http://www.tupagina.com/mapasuv.jpg

Seleccionamos nuestro box y agregamos también el siguiente código en un nuevo Js:


---------------------------------------------------------------------------------

//descargar texturas///////////////////////
var url = "http://www.tupagina.com/mapasuv.jpg";
function Start () {
var www : WWW = new WWW (url);
yield www;

renderer.material.mainTexture = www.texture;
}


---------------------------------------------------------------------------------

Esto me dió resultado a mí pero experimentar no cuesta nada.

1 comentario: