Está en la página 1de 6

Tutorial de Unity 3D

Tema 52
Bases de Datos

Tutorial de Unity 3D
Bases de Datos
En este tutorial trabajaremos el almacenamiento de informacin en una base de datos, bien sea local
o remota. Dicha informacin puede ser propia el cliente (Crditos de juego, puntos de experiencia...) como
del servidor (N de usuarios, hora local...), y de la misma forma ser accedida por ambos.
Para ello utilizaremos MySQL para gestionar la base datos, mientras que accederemos a ella tanto para
consultas como para peticiones utilizando sencillas funciones en PHP. Por supuesto, todo lo tendremos
fcilmente accesible desde Unity, engine con el que trabajaremos para gestionar toda la lgica de juego.
Para el alojamiento del fichero PHP utilizaremos un gestor de ficheros FTP, en nuestro caso Filezilla,
mientras que para el alojamiento de la base de datos utilizaremos el hosting gratuito de Zymic. Ambas
plataformas pueden ser fcilmente sustituidas por tu herramienta preferida.
1. Creacin de la base de datos
Generalmente nuestra base de datos tendr que estar almacenada en un servidor remoto,
generalmente son servicios de pago que nos garantizan cierto rendimiento (Tiempo de respuesta,
capacidad...) pero para nuestras primeras pruebas podemos crear una cuenta en algn hosting gratuito, en
nuestro caso utilizarmeos Zymic por su facilidad.

Tutorial de Unity 3D Tema 52

Pg. 1

Tutorial de Unity 3D
Tema 52
Bases de Datos

- Crea una cuenta gratuita en http://www.zymic.com/


- Accede al men Control Panel Home, y dentro de l Create New Web Host Account para crear
una nueva cuenta de hosting.
- Accede a Database management, y accede al men Create a database para crear una nueva
base de datos, ya que puedes tener varias dentro del mismo hosting.
- El siguiente paso es crear un usuario para nuestra base de datos. Para ello le daremos un nombre
y una contrasea (Recuerda dichos datos, ya que sern los que utilicemos ms adelante en nuestro
cdigo PHP para realizar la conexin).

Los usuarios de una base de datos pueden tener distintos privilegios de acceso, bsicamente puedes
imaginarlos como accesos en lectura o escritura, pero si ya has trabajado anteriormente con bases de
datos observars que los permisos son insertar, crear, seleccionar, etc.
- Vamos a asignar privilegios a nuestro nuevo usuario sobre la base de datos creada desde la
pestaa Assign privileges.
- Es muy importante que anotes en algn sitio el usuario, su password y la base de datos, y despus
volvemos al panel de control de Zymic, y accedemos a Database Administrator,
- Ah nos pedirn de nuevo el nombre de usuario, la contrasea y la base de datos, as que lo
introducimos y entramos en el editor SQL. En la seccin Consulta introducimos este script:
CREATE TABLE tabla
(id int(3) PRIMARY KEY, nombre char(50));
INSERT INTO tabla(id,nombre) VALUES(1,'Mamerto');
INSERT INTO tabla(id,nombre) VALUES(2,'Gilberto');
INSERT INTO tabla(id,nombre) VALUES(3,'Humberto');
INSERT INTO tabla(id,nombre) VALUES(4,'Heriberto');
SELECT * FROM tabla;

Tutorial de Unity 3D Tema 52

Pg. 2

Tutorial de Unity 3D
Tema 52
Bases de Datos

El script anterior es un sencillo cdigo SQL que se encarga de crear una nueva tabla en nuestra base de
datos y aadir en ella entradas compuestas por un simple nmero (int), que servir como identificador de la
entrada, acompaadas de un texto (char) en el que introducimos el nombre de una persona.
Enhorabuena, ya has creado tu primera base de datos e introducida en ella una tabla con informacin.

Tutorial de Unity 3D Tema 52

Pg. 3

Tutorial de Unity 3D
Tema 52
Bases de Datos

2. Creacin del fichero PHP


En el fichero PHP escribiremos cdigo que nos servir para acceder a nuestra base de datos, bien
sea para consultarla o para realizar modificaciones.
- Crea un fichero de cdigo llamado resultado.php e introduce en l el siguiente cdigo:
<?php
$host = 'localhost';
$user = 'root';
$pass = 'password';
$db = 'database';
$i = 0;
$database = mysql_connect($host, $user, $pass) or die('No se puede conectar:
' . mysql_error());
mysql_select_db($db) or die('No se pudo seleccionar una base de datos.');
$query = "SELECT * FROM `tabla`";
$result = mysql_query($query) or die('La query fall: ' . mysql_error());
$num_results = mysql_num_rows($result);
// Utilizamos while y no for porque segn documentacin, es ms rpido
hacer un bucle while
while($i<$num_results){
$row = mysql_fetch_array($result);
echo $row['id'] . "\t" . $row['nombre'] . "\n";
$i++;
}
$i=0;
?>

El cdigo anterior se encarga de acceder a nuestra base de datos y consultar su contenido utilizando un
sencillo bucle while.
Es muy importante que modifiques las primeras lneas del cdigo anterior para introducir el host gratuito
que acabas de crear en Zymic (p.ej. XXX.99k.org) y el nombre de usuario, contrasea y base de datos que
hemos creado en l y que deberas haber anotado durante los pasos anteriores.
Utilizando un gestor FTP, como por ejemplo Filezilla, aloja el fichero PHP anterior en tu hosting. Puedes
encontrar los datos de acceso FTP a tu hosting en Zymic a travs de la informacin en la columna a la
izquierda del panel de control:

Tutorial de Unity 3D Tema 52

Pg. 4

Tutorial de Unity 3D
Tema 52
Bases de Datos

Dicha informacin debes introducirla en los siguientes campos de Filezilla. El puerto de conexin por defecto
es el 21:

Enhorabuena, ya has alojado tu cdigo PHP en una URL accesible fcilmente por Unity, as que ahora viene el
paso fcil: Slo tenemos que acceder a l y utilizar las consultas que tiene implementadas.

Tutorial de Unity 3D Tema 52

Pg. 5

Tutorial de Unity 3D
Tema 52
Bases de Datos

3. Conexin con la base de datos desde Unity 3D


Crea un nuevo script en JavaScript que puedes llamar por ejemplo ConectarBD.js, y aade en l el
siguiente cdigo:
// Donde host ser la direccin de nuestra pgina
miPagina.com/result.php (no aadas www. ni http://)
public var url="host/result.php";
private var mensaje:String="";

web.

Por

ejemplo:

function Start(){
resultado();
}
// Imprime el resultado de mensaje, el cual almacena el resultado de la query
alojada en el archivo php
function OnGUI(){
GUI.Box(Rect(10,10,500,400), mensaje);
}
// Llama al archivo php, el archivo obtiene un resultado de la base de datos,
dicho resultado se almacena en en hs_get y si no hay errores, se almacena en
mensaje
function resultado(){
hs_get = WWW(url);
yield hs_get;
if(hs_get.error){
print("ERROR: "+hs_get.error);
} else {
mensaje = hs_get.text;
}
}

Como podrs observar, el script anterior incorpora un mtodo Start ( ) que se encargar de invocar
automticamente el mtodo resultado ( ). Dicho mtodo acceder a tu cdigo PHP cuya URL debes indicar en
la variable pblica url, y siguiendo los pasos anteriores devolver a Unity el contenido de la tabla, que ser
mostrado por pantalla utilizando el mtodo OnGUI ( ).
Enhorabuena, ya has accedido a tu primera base de datos con Unity 3D.
Agradecimientos a drafa de UnitySpain y Aitor de Androtiyas

Tutorial de Unity 3D Tema 52

Pg. 6

También podría gustarte