Android conexión SQLite en Unity

Muchas veces la conexion de SQLite con Unity es muy fácil de hacer pero cuando exportamos a Android no nos funciona; eso se da por el simple hecho de no agregar una librería propia de Android SQLite.
Ahora vamos a necesitar agregar como muestra la siguiente figura las librerias dentro de Assets/Plugins/DataBase:
Primero descargamos la librería SQLite x64 (Click Aquí), extraemos el archivo y solo copiamos el archivo sqlite3.dll dentro de Assets/Plugins/DataBase como esta en la figura anterior.

Segundo descargamos la librería SQLite Android (Click Aquí), y solo pasamos el archivo a la carpeta Assets/Plugins/DataBase/Android como muestra la figura anterior.
Por último asegurate de copiar el archivo de la base de datos a Assets/StreamingAssets
Ahora viene la parte de codificar para que tu base de datos funcione correctamente en dispositivos Android.
   
using Mono.Data.Sqlite;
using System.Data;
using System.IO;
using UnityEngine;
using UnityEngine.Networking;

public class SQLite : MonoBehaviour
{
    private string uri;
    private IDbConnection connection;
    private UnityWebRequest loadFile;

    public void Connect()
    {
        uri = Application.persistentDataPath + "/Plugins/DataBase/data.db";
        CheckDataBaseFile();
        try
        {
            connection = (IDbConnection)new SqliteConnection("URI=file:" + uri);
        }
        catch (SqliteException e)
        {
            Debug.Log(e.Message);
        }
    }

    void CheckDataBaseFile()
    {
        try
        {
            if (!Directory.Exists(uri.Remove(uri.LastIndexOf("/"))))
            {
                Directory.CreateDirectory(uri.Remove(uri.LastIndexOf("/")));
            }
            if (!File.Exists(uri))
            {
                StartCoroutine("CreateFile");
            }
        }
        catch (IOException e)
        {
            Debug.Log(e.Message);
        }
    }

    IEnumerator CreateFile()
    {
        loadFile = UnityWebRequest.Get(Path.Combine(Application.streamingAssetsPath, uri.Substring(uri.LastIndexOf("/") + 1)));
        yield return loadFile.SendWebRequest();
        try
        {
            File.WriteAllBytes(uri, loadFile.downloadHandler.data);
        }
        catch (IOException e)
        {
            Debug.Log(e.Message);
        }
    }
} 

Comentarios

Entradas populares de este blog

Paginación de Memoria

Principales herramientas del Banco Central del Ecuador para reducir la oferta de dinero