sábado, 5 de octubre de 2013

Utilizar SQLite con Unity.



Saludos amigos, en esta ocasión os traigo un vídeo de como crear una base de datos en Unity.








#pragma strict

// Enumeraciones.js

enum CUBOTIPO {
 
 SinTipo = 0,
 Rojo = 1,
 Amarillo = 2,
 Azul = 3,
 
}



#pragma strict

// Cubos.js

var valor : float;
var _tipoCubo : CUBOTIPO;

private var cantidadDb : int = 0;
private var valorDb : float = 0;
private var nombreDb : String = "dbGame";
private var nombreTabla : String = "Cubos";
private var tipo : String = "";



function Start () {
 
 SwitchTipo ();
 
}

function Update () {
 
 
 
}

function OnTriggerEnter (other : Collider) {
 
 if (other.gameObject.CompareTag ("Player")) {
  ActualizaDb ();
  Destroy (gameObject);
 }
 
}

function ActualizaDb () {
 
 var db : DataBaseGame;
 db = new DataBaseGame();
 
 db.AbreDB(nombreDb);
 
 cantidadDb = db.ConsultaCantidad (nombreTabla, tipo);
 cantidadDb ++;
 //db.IntroduceCantidad (nombreTabla, tipo, cantidadDb);
 
 valorDb = db.ConsultaValor (nombreTabla, tipo);
 valorDb += valor;
 //db.IntroduceValor (nombreTabla, tipo, valorDb);
 
 db.IntroduceData (nombreTabla, tipo, cantidadDb, valorDb);
 
 db.CierraDB();
 
}

function SwitchTipo () {
 
 switch(_tipoCubo) {
      
      case CUBOTIPO.SinTipo:
       
       tipo = "";
       
      break;
      
      case CUBOTIPO.Rojo:
       
       tipo = "Rojo";
       
      break;
      
      case CUBOTIPO.Amarillo:
       
       tipo = "Amarillo";
       
      break;
      
      case CUBOTIPO.Azul:
       
       tipo = "Azul";
       
      break;
      
     }
     
}



#pragma strict

// DataBaseGame.js

import System;
import System.Data;
import Mono.Data.Sqlite;



class DataBaseGame {
 
    private var rutaBaseDeDatos : String;
    private var conexion : IDbConnection;
    private var comando : IDbCommand;
    private var reader : IDataReader;
 
    function AbreDB(p : String){
    rutaBaseDeDatos = "URI=file:Assets\\SQlite_Test\\Data\\" + p;
    conexion = new SqliteConnection(rutaBaseDeDatos);
    conexion.Open();
    }
 
 function ConsultaCantidad (tabla : String, color : String){
        var query : String;
        var v : int;
        query = "SELECT Cantidad FROM "+ tabla +" WHERE Color = '"+ color +"'"; 
        comando = conexion.CreateCommand();
        comando.CommandText = query; 
        reader = comando.ExecuteReader();
        if(reader != null){
         reader.Read();
         v = parseInt(reader.GetValue(0).ToString());
        }else{
         v = -1;
        }
        return v;
        
    }
    
    function ConsultaValor (tabla : String, color : String){
        var f : float;
        var query : String;
        query = "SELECT Valor FROM "+ tabla +" WHERE Color = '"+ color +"'"; 
        comando = conexion.CreateCommand();
        comando.CommandText = query; 
        reader = comando.ExecuteReader();
        if(reader != null){
         reader.Read();
         f = parseFloat(reader.GetValue(0).ToString());
        }else{
         f = -1;
        }
        return f;
    }
 
 function IntroduceCantidad (tabla : String, color : String, cantidad : int){
        var query : String;
        query = "UPDATE " + tabla + " SET Cantidad = " + cantidad + " WHERE Color = '"+ color +"'";
        comando = conexion.CreateCommand();
        comando.CommandText = query; 
        reader = comando.ExecuteReader();
        
    }
    
    function IntroduceValor (tabla : String, color : String, valor : float){
        var query : String;
        query = "UPDATE " + tabla + " SET Valor = " + valor + " WHERE Color = '"+ color +"'"; 
        comando = conexion.CreateCommand();
        comando.CommandText = query; 
        reader = comando.ExecuteReader();
        
    }
 
    function IntroduceData (tabla : String, color : String, cantidad : int, valor : float){
        var query : String;
        query = "UPDATE " + tabla + " SET Cantidad = " + cantidad + ", Valor = " + valor + " WHERE Color = '"+ color +"'"; 
        comando = conexion.CreateCommand();
        comando.CommandText = query; 
        reader = comando.ExecuteReader();
        
    }
 
 
    function CierraDB(){
        reader.Close();
        reader = null; 
        comando.Dispose(); 
        comando = null; 
        conexion.Close(); 
        conexion = null; 
    }
  
}



1 comentario: