添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
傻傻的滑板  ·  Cluster health check ...·  4 月前    · 
睿智的青椒  ·  SuperMap iClient3D ...·  5 月前    · 
咆哮的青蛙  ·  文本文件的读取操作·  1 年前    · 

这是针对关于安卓平台对项目数据库文件的访问

刚来公司实习不久,开始了一个小项目demo,本来是用csv文件读取一些数据,然而老板开始要求用数据库来读取,因此我就简单的直接读取本机的数据库,在PC上运行没有问题。老板开始要求在安卓上运行,此时问题就出现了,安卓上是无法通过ip去访问数据库。其实可以通过访问网站来获取数据库的数据,但是对于我这种刚毕业的新手来说是无法实现的,只能妥协通过访问数据库导出来的db文件来读取数据。

首先要去网上百度一下sqlconvert软件,这个软件是用于将sqlserver中的表转换为.db文件。

接着需要下面4个文件,其中Mono.Data.Sqlite.dll和System.Data.dll可以在文件夹Unity\Editor\Data\Mono\lib\mono\2.0中找到,剩下两个文件可以找网上百度找到。
在这里插入图片描述
接着在Assets文件夹建立以下文件夹,其中上面的文件放在Android文件夹下,然后db文件放在assets的文件夹下。
在这里插入图片描述

如果在PC上运行,那么路径很简单就是

string path = @"data source =" + Application.dataPath + "/Plugins/Android/assets/" + (数据库文件.db);
SqliteConnection dbConnection = new SqliteConnection(path);

如果在安卓上运行,那么路径就是

    string path = Application.persistentDataPath + "/" + (数据库文件.db); 

其中 Application.persistentDataPath指的是地址手机内/data/data/xxx.xxx.xxx/files

if (!File.Exists(path)) {
                //现用www先从Unity中下载到数据库
                WWW loadDB = new WWW(Application.streamingAssetsPath + "/" + (数据库文件.db));
                while (!loadDB.isDone) {           
                //等待时的操作        
                File.WriteAllBytes(path, loadDB.bytes);
            SqliteConnection dbConnection = new SqliteConnection("URI=file:" + path);

一般一开始Application.persistentDataPath上是不存在我们的数据库文件,因此要到unity中将数据库文件拷贝一份出来到Application.persistentDataPath上进行读取。用WWW读取unity中的数据。
其中本来是

WWW loadDB = new WWW("jar:file://" + Application.dataPath + "!/assets/” + (数据库文件.db));

经过百度后发现,其实
Application.streamingAssetsPath = jar:file://" + Application.dataPath + "!/assets

当从unity加载完数据库文件后,就利用

File.WriteAllBytes(path, loadDB.bytes);

将文件拷贝一份到Application.persistentDataPath上,此时安卓平台就能读取到项目上的数据库文件。至于要读取远程计算机的数据库,好像只能通过建立服务器通过网站去进行访问,对于我这个新手而言比较麻烦,只能以后慢慢去摸索。

这是针对关于安卓平台对项目数据库文件的访问刚来公司实习不久,开始了一个小项目demo,本来是用csv文件读取一些数据,然而老板开始要求用数据库来读取,因此我就简单的直接读取本机的数据库,在PC上运行没有问题。老板开始要求在安卓上运行,此时问题就出现了,安卓上是无法通过ip去访问数据库。其实可以通过访问网站来获取数据库的数据,但是对于我这种刚毕业的新手来说是无法实现的,只能妥协通过访问数据库导出来... 网官下载地址 https://www.mongodb.com/download-center/community 网盘下载地址链接:https://pan.baidu.com/s/1bhrEk0si4SkB0XX0Zyu5_Q提取码:6rrt 安装MongoDB的管理工具 网官下载地址 https://robomongo.org/ 网盘下载地址...
导入dll文件,Mono.Data.Sqlite.dll以及SQLite3.dll,放到Asset/Plugins下面。 Mono.Data.Sqlite.dll在Unity安装目录下面找一个 SQLite3.dll网上下一个 我有.Net 2.0版本的你们可以试试 https://pan.baidu.com/s/10zfaiH_kY0NP5ub_WfH_fQ,提取码9ls3 代码内using一下 using Mono.Data.Sqlite; * Author : Jk..
Unity3D工程中使用配置文件一般使用Txt、Xml、Json、Db(数据库),四种格式文件对比: Txt: 需要自己设定格式、封装读取的方式;一般只读,不做修改(操作麻烦) Xml:标签语言,有自己的格式,系统提供读取和修改等相关API,操作方便。小游戏可用来存档 Json:采用键值对的方式进行存储,适合任意平台,一般客户端与服务端通讯采用该数据格式,同等数据信息要比Xml文件小,还可以只
/// <param name="path"></param> /// <returns></returns> public static string FileRead(string path) st...
首先,我们要从unity的安装路径中复制mono.data.sqlite.dll和sqlite3.dll两个动态链接到untiy的plugins目录下,如下图所示: 转存失败重新上传取消 使用navicat for sqlite创建一个sqlite数据库文件,放到Resources文件夹目录中,如下图所示: 转存失败重新上传取消 新建一个DbAccess脚步,添加以下脚步: using...
声明:本文主要参考 雨松momo 的文章(十分感谢),但是在android设备上运行时,出现了不能操作数据库的问题;原文链接:http://www.xuanyusong.com/archives/831  http://www.xuanyusong.com/archives/1454 本篇文章我们讨论如何在Unity中打开一个第三方数据库配合Android与编辑器进行同步开发。 一. 怎么
public class JsonLoader : MonoBehaviour private string jsonUrl = "http://example.com/myjson.json"; // json文件的URL地址 void Start() StartCoroutine(LoadJson()); IEnumerator LoadJson() UnityWebRequest request = UnityWebRequest.Get(jsonUrl); yield return request.SendWebRequest(); if (request.result != UnityWebRequest.Result.Success) Debug.Log(request.error); string json = request.downloadHandler.text; Debug.Log(json); 在这个示例中,我们使用UnityWebRequest发送一个GET请求,读取jsonUrl指定的URL地址中的Json文件。如果请求成功,我们使用downloadHandler获取Json文件的文本内容,并输出到控制台中。如果请求失败,我们输出错误消息。需要注意的是,需要在协程中执行UnityWebRequest。