El documento explica cómo SQLite puede usarse para organizar información en una aplicación de Unity3D. SQLite es una biblioteca de base de datos ligera que almacena todos los datos en un solo archivo, lo que la hace portátil. El documento guía al lector a través de la creación de una base de datos SQLite, la escritura de código para conectarse a ella y manipular datos, y probar el código en Unity3D y un navegador de bases de datos.
2. ¿Porqué escribo esto?
Estoy desarrollando una aplicación con Unity3D y necesitaba una forma de organizar toda la
información de la app dentro de algo.
Investigando encontre algunas formas, entre ellas es usar los PlayerPrefs que me serviría (tenía
limitaciones para mí), pero necesitaba algo que me ayude a mantener la información organizada
porqué manejaba bastante información. Unity3D no soporta las Base de datos pero hay
soluciones que nos pueden ayudar a manejarlo, entre ellas el PlayerPrefs y SQLite, éste ultimo
es la opción que elejí.
Les explico los conceptos basicos de SQLite y veamos en código como obtenemos la data. Para
ello tienen que saber C# en Unity y Sentencias SQL.
3. ¿Que es SQLite?
- Es un sistema de Gestión de base de datos relacional, contenida en una biblioteca escrita en C.
- No necesita un motor de Base de datos (a diferencia de MySQL, PostgreSQL, Oracle, etc.) es
totalmente independiente que pasa a integrarse a la aplicación.
- El conjunto de la base de datos (definiciones,tablas, índices, y los propios datos), son
guardados como un solo fichero estándar, en la máquina local.
- En su v.3 permite hasta 2TB de información, tipos de datos BLOB Foreing Key.
4. ¿Porque usar SQLite?
- Tamaño: tiene una pequeña memoria y una única biblioteca para acceder a bases de datos.
- Rendimiento: Realiza operaciones eficientes y es más rápido que MySQL y PostgreSQL.
- Portabilidad: funciona en muchas plataformas y sus base de datos pueden ser portadas sin
ninguna configuración o administración.
- Estabilidad: SQLite es compatible con ACID, reuniendo los cuatos criterios de Atomicidad,
Consistencia, Aislamiento y Durabilidad.
- SQL: Implemente un gran subconjunto de ANSI -92 SQL, vistas, triggers y otros.
- FREE: es libre de usar.
5. Sus Caracteristicas
- Cero Configuración: no requiere un servidor, un administrador ni configuración.
- Portabilidad: Ejecutado en cualquier plataforma.
- Autónomo: Una única biblioteca contiene todo el sistema de base de datos, que se integra
directamente al host de la aplicación.
- Longitud Variable: a comparación de otras bases de datos, SQLite usa solo el espacio en disco
necesario para almacenar.
- Transaccional: Compatible con ACID, lo que permite acceso seguro a partir de múltiples
procesos.
- SQL: Soporta las sentencias SQL encontradas en el estandar SQL 92.
En general: SQLite proporciona un entorno relacional muy funcional que consume un mínimo de
recursos y minimos en molestias para desarrolladores y usuarios.
6. Algo breve: ¿Porque Unity3D?
Como sabemos Unity3D es un motor de Juegos, pensada para hacer JUEGOS -.-! Pero la
caracteristica principal que es Multiplataforma (hacer que tus juegos y apps funcionen en
diferentes SO) hizo que muchos desarrolladores y empresas empiezen a hacer apps con este
motor, PERO tienes que ver si te combiene usar Unity para lo que quieres hacer, en mi caso si
porque usamos Objetos 3D dentro de la app, quise hacer otro tipo de app con mapas y
geolocalización y me limité mucho con Unity porque no habian herramientas que me permitian
hacer eso (recien aparecen) y otros, porque Unity NO esta orientado ah hacer Apps, pero recien
hay Plugins y otras soluciones que nos estan ayudando mucho para este tema, en diferentes
areas como Medicina, Minería, Educación, Turismo y muchos otros.
7. ¿Que necesitamos?
- Descargar este Plugin de Librerias SQLite (.dll para usar las funciones de SQLite)
http://www.mediafire.com/download/ay3qq8afe49ql1k/Plugins.rar
- Descargar SQLite Databases Browser (Navegador de base de datos)
http://sourceforge.net/projects/sqlitebrowser/
8. ¿Que hacemos?
1. En Unity creamos un proyecto DBTest con las siguientes carpetas:
2. Abrimos el SQLite Database Browser y abrimos la ventana para crear nuestra base de datos
muy facil.
9. 3. Creamos nuestra base de datos en “File - new database”, mostrándonos una ventana, nos pedirá
nombre de la tabla y luego las columnas que contendrá con sus tipos de datos, cuando terminemos de lo
guardamos dentro de la carpeta “DB” de nuestro proyecto de Unity.
10. 4. Ahora vamos a Unity y dentro de la carpeta “Plugins” copiamos los archivos(.dll y sqlite) de
.rar que descargamos.
11. 5. Ahora a codear: Creamos un archivo “DBConnector.cs” dentro de la carpeta “Scripts” y
escribimos el siguiente codigo.
12. 6. Creamos otro archivo “Access” donde haremos la prueba de nuestro código y manipular la
data del SQLite.
1ro: Hacemos referencia de la clase DBConnector.
2do: Abrimos la Base de Datos.
3ro: Insertamos, seleccionamos, actualizamos y seleccionamos sobre la Base de Datos.
13. 7. Ejecutamos el código en Unity y tambien en el SQLite Database Browsers y nos mostrará los
siguientes datos.
Ahora podemos usar ésto como código base para manejar BD dentro de nuestros juegos o
aplicaciones dentro de Unity3D. Les dejo los enlaces al final.
14. Enlaces
- Plugin (dll y sqlite):
http://www.mediafire.com/download/ay3qq8afe49ql1k/Plugins.rar
- SQLite Databases Browser.
http://sourceforge.net/projects/sqlitebrowser/
- SQLite
http://www.sqlite.org/
- Otros
http://en.wikipedia.org/wiki/SQLite :)
http://www.scribd.com/fullscreen/52882068?access_key=key-
7tv13o05cj4dj11lq9b&allow_share=true&escape=false&view_mode=scroll
http://answers.oreilly.com/topic/1914-what-is-sqlite/