XML & Unity3D

Hola,

Hoy os traigo algo bastante interesante a la hora de cargar información en vuestro juego.

En vuestro juego se puede dar el lugar de tener definida una clase, digamos por ejemplo “arma” o “edificio” la cual durante el juego representaran distintas instancias de armas o edificios, por ejemplo: “cuchillo”, “pistola” o “granja”, “fábrica”.

Lo que diferencia, en nuestro ejemplos, una granja de una fábrica puede ser lo que queramos, pero por ejemplo podría ser la “anchura” y “altura”, o el “coste de construcción” si tenemos un juego de construcción. Lo que define específicamente lo cuesta cada edificio entonces ¿como se lo decimos al juego?.

El error básico, al menos al principio es el siguiente:

(inspector)

Inspector1.png

Tal vez esa imagen os suene. Es del juego del post anterior en este blog.

En ella podéis ver muchos elementos añadidos a mano a través del inspector. En concreto hay definida una clase de tipo “sLevels” la cual tiene una lista de “Level” (podéis ver level 1 y level 2) y esta lista es serializada para que aparezca en el inspector, con el objetivo de definir distintos parámetros que diferencian los distintos niveles del juego.

De esta manera podéis insertar los parámetros de el “level 1” o “level 2” o incluso, los parámetros que diferencian a vuestra “granja” de vuestra “fábrica”.

Si habéis leído el titulo de este post os imaginareis que esto está “mal” (también por que dije que esto es un error mas arriba). El inspector está bien para un parámetro en un lugar determinado que tenga que ver con la Programación del juego. No obstante, los parámetros que diferencian una “granja” de una “fábrica” no tienen nada que ver con la programación, si no mas bien con el Diseño del juego, y teniendo en cuenta que habrá mas edificios, o armas, lo suyo seria poder definirías de manera modular, desde otro sitio, como por ejemplo una base de datos.

¿Una base de datos? No os asustéis no hablo de SQL u Oracle ni nada tan gordo. Para un juego pequeño es mejor algo mas pequeño:

Enter XML

Unity3D y C# son compatibles con muchas cosas, entre ellas XML.

Para explicar como importar vuestro datos para las instancias de las clases (cuchillo, pistola, o granja, fábrica…) he creado un vídeo en YouTube.

Antes de verlo, tal vez en el no queda lo suficientemente claro la estructura del XML (escribo esto a posteriori) sería algo tal que así:

<?xml version=”1.0″ encoding=”utf-8″?>
<root>
<array>
<arrayitem atribute=valor>
<element>valor</element>
</arrayitem>
</array>
</root>

Por ejemplo:

<?xml version=”1.0″ encoding=”utf-8″?>
<BuildingContainer>
<Buildings>
<Building Name =”Granja”>
<Type>Campo</Type>
</Building>

<Building Name =”Fábrica”>
<Type>Ciudad</Type>
</Building>

</Buildings>
</BuildingContainer>

Y ahora el vídeo en sí:

Espero que os haya gustado, dejad un comentario si teneis dudas!

 

Un saludo!

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s