Unity3d 5.3.5使用sqlite3
http://blog.csdn.net/glunoy/article/details/52037598
国内讲的乱七八糟,更有故作神秘提供Mono.Data.Sqlite.dll System.Data.dll的,就是不告诉你这两文件在哪里。。我很无语。
看国外的,多靠谱。
http://answers.unity3d.com/questions/743400/database-sqlite-setup-for-unity.html
中文版如下。
1.先在Assets下新建Plugins文件夹。将C:\Program Files\Unity\Editor\Data\MonoBleedingEdge\lib\mono\2.0
下的Mono.Data.Sqlite.dll System.Data.dll拷贝至刚才新建的文件夹Plugins 下。
2.到https://www.sqlite.org/download.html 下载最新版的sqlite Precompiled Binaries版本。或者你喜欢折腾下源码自己编也行。
记住windows64 32位的区别。里面解压出来会有sqlite3.def sqlite3.dll 也拷贝到上面的Plugins下。
3.要在Android底下使用sqlite3 必须到这个帖子下http://forum.unity3d.com/threads/sqlite-for-android-help-please.97043/#post-705960下载一个附件。里面包含了libsqlite3.so这个文件。然后将它放到Assets/Android下。
我不知道它和安卓系统里面的system/lib/libsqlite.so有啥区别。。因为我拿不出来那个文件。所以没有尝试。
3.5,在Player Setting里的 OtherSettings里有个Optimization 下边的API Compatbility Level 选择.NET 2.0。--这步漏了,补上
4.连接字符串.conn = "URI=file:" + Application.persistentDataPath + "/test.db"; 不管什么版本,都必须是这个目录。不推荐什么streaming asset 什么aseet。因为跨平台的版本,只有这个目录拥有可读写权限。
哪怕因此带来一些麻烦也没关系。(至于那些datasource=什么什么,我没有去试,也不想去弄清楚他们的区别)
这个值 windows下目录对应为:C:\Users\你的用户名\AppData\LocalLow\公司名\项目名
而在安卓下 对应为/data/data/包名/files 发布的时候必须注意。
至于ios....首先我得先有个ios再说吧.穷人装不起那个逼。
5.代码示例。从上面的老外连接照抄。不推荐什么sqllite hleper.cs当然,你要用我也没意见。代码如下:防止天草哪天心情不好又不给访问了。
string conn = "URI=file:" + Application.dataPath + "/PickAndPlaceDatabase.s3db"; //Path to database.
SqliteConnection dbconn;
dbconn = new SqliteConnection(conn);
dbconn.Open(); //Open connection to the database.
SqliteCommand dbcmd = dbconn.CreateCommand();
string sqlQuery = "SELECT value,name, randomSequence " + "FROM PlaceSequence";
dbcmd.CommandText = sqlQuery;
SqliteDataReader reader = dbcmd.ExecuteReader();
while (reader.Read())
{
int value = reader.GetInt32(0);
string name = reader.GetString(1);
int rand = reader.GetInt32(2);
Debug.Log( "value= "+value+" name ="+name+" random ="+ rand);
}
reader.Close();
reader = null;
dbcmd.Dispose();
dbcmd = null;
dbconn.Close();
dbconn = null;
}
如果一定要用什么什么helper,推荐使用http://www.xuanyusong.com/archives/831 或者http://***/Article/49868 这里的。其实没啥区别...
另外我能吐槽一下么。。。你们两个在构造函数里打开数据库,酱紫真的好处理返回值么?里面throw了异常,外面的包装函数又不处理异常,又不抛出异常,你们这是坑爹造不?
当然,上面的示例调用也没有处理异常...
附带一些多余的话.
Debug.log有时候中文会乱码。只要将.cs文件的编码改成utf-8 无bom即可。用VS的话来讲 叫:utf8-无签名。为了跨平台,推荐都使用UTF-8。具体请自行搜索..
sqlite3 管理工具 推荐使用SQLite Expert Personal
Unity3d 5.3.5使用sqlite3的更多相关文章
- Unity3d在各个平台读取Sqlite3数据库
这也是我第一次在Unity3d中使用Sqlite来作为配置表文件,当然了,SQLite有优秀的读写性能. 如果这个项目用着稳定的话,我会一直使用下去. Android平台: 1,下载libsqlite ...
- Unity3D连接sqlite数据库操作C#版
unity3d有自己对应的sqlite.dll分别需要三个文件 1.Mono.Data.Sqlite.dll 在unity安装文件“Unity\Editor\Data\MonoBleedingEdge ...
- Unity3D所使用的第三方工具
前言 最近在研究Unity3D的结构和原理.关于Unity3D怎么用之类的教程在网上一找一大堆,想看教程之类的就不用看这篇文章了.我想做的是从使用Unity3D所看到的表象(表),摸透其设计原则和组织 ...
- [转载]Unity3D 游戏引擎之使用C#语言建立本地数据库(SQLITE)
以前在开发中一直使用IOS源生的数据库,通过传递消息的形式在与Unity3D中进行交互.本文我在详细说说如何使用C#语言来在MAC 操作系统下创建Unity本地数据库,我是C#控哇咔咔--- 首先你需 ...
- Unity3d 中 将远程 MySQL 数据库转换为本地 Sqlite
1.创建MySQL2Sqlite脚本mysql2sqlite.sh:(代码地址:https://gist.github.com/esperlu/943776) #!/bin/sh # Converts ...
- Unity3d学习 预设体(prefab)的一些理解
之前一直在想如果要在Unity3d上创建很多个具有相同结构的对象,是如何做的,后来查了相关资料发现预设体可以解决这个问题! 预设体的概念: 组件的集合体 , 预制物体可以实例化成游戏对象. 创建预设体 ...
- Unity3d入门 - 关于unity工具的熟悉
上周由于工作内容较多,花在unity上学习的时间不多,但总归还是学习了一些东西,内容如下: .1 根据相关的教程在mac上安装了unity. .2 学习了unity的主要的工具分布和对应工具的相关的功 ...
- TDD在Unity3D游戏项目开发中的实践
0x00 前言 关于TDD测试驱动开发的文章已经有很多了,但是在游戏开发尤其是使用Unity3D开发游戏时,却听不到特别多关于TDD的声音.那么本文就来简单聊一聊TDD如何在U3D项目中使用以及如何使 ...
- warensoft unity3d 更新说明
warensoft unity3d 组件的Alpha版本已经发布了将近一年,很多网友发送了改进的Email,感谢大家的支持. Warensoft Unity3D组件将继续更新,将改进的功能如下: 1. ...
随机推荐
- HDU - 1241 Oil Deposits 【DFS】
题目链接 https://cn.vjudge.net/contest/65959#problem/L 题意 @表示油田 如果 @@是连在一起的 可以八个方向相连 那么它们就是 一块油田 要找出 一共有 ...
- shell的面试题
在网上看到一道考shell的题--统计出一个文件夹下大小大于7MB的文件夹 好,我也来装一下深沉,个人觉得,这道题主要考的是对经常使用的linux的熟练程度(我不是很熟,哈哈),题目要统计,主要用到两 ...
- C# nunit 单元测试
1. 引包 nunit.framework.dll
- 9--RESTful支持
1.对url进行规范,写RESTful格式的url 非REST的url:http://...../queryItems.action?id=001&type=T01 REST的url风格:ht ...
- 安装与设置hexo
普通用户(非全局)安装nodejs和npm wget -qO- https://raw.github.com/creationix/nvm/master/install.sh | sh nvm ins ...
- Apache Flink vs Apache Spark——感觉二者是互相抄袭啊 看谁的好就抄过来 Flink支持在runtime中的有环数据流,这样表示机器学习算法更有效而且更有效率
Apache Flink是什么 Flink是一款新的大数据处理引擎,目标是统一不同来源的数据处理.这个目标看起来和Spark和类似.没错,Flink也在尝试解决 Spark在解决的问题.这两套系统都在 ...
- JDK中主要的包介绍
- 常用SASS封装
结合Compass库和工作总结,列出了项目中最为常用的SASS片段.内容收集于网络,我进行了简单整理并测试正常,可以根据实际项目情况进行取舍,值得学习或直接应用,感谢! //重置浏览器默认样式@imp ...
- P4311 士兵占领[最大流]
题目地址 有一个$M * N$的棋盘,有的格子是障碍.现在你要选择一些格子来放置一些士兵,一个格子里最多可以放置一个士兵,障碍格里不能放置士兵.我们称这些士兵占领了整个棋盘当满足第i行至少放置了$L_ ...
- ACM学习历程—NPU1045 2015年陕西省程序设计竞赛网络预赛(热身赛)C题 Graph Theory(递推 && 组合数学 && 大数)
Description In graph theory, a matching or independent edge set in a graph G = (V , E) is a set of e ...