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. ...
随机推荐
- JVM性能分析工具详解--MAT等
获得堆转储文件 巧妇难为无米之炊,我们首先需要获得一个堆转储文件.为了方便,本文采用的是 Sun JDK 6.通常来说,只要你设置了如下所示的 JVM 参数: -XX:+HeapDumpOnOutOf ...
- swift中反向循环
First of all, protocol extensions change how reverse is used: for i in (1...5).reverse() { print(i) ...
- Oracle约束的使用
--5个约束,主键约束.外键约束.唯一约束.检查约束.非空约束. --添加主键约束 Alter table table_name Add constraints constraint_name Pri ...
- hihocoder1075【开锁魔法】
hihocoder1075[开锁魔法] 题意是给你一个 \(1-n\) 的置换,求选 \(k\) 个可以遍历所有点的概率. 题目可以换个模型:有 \(n\) 个球,有 \(cnt\) 种不同的颜色,求 ...
- base64编码方式
一.编码的两大方式: 在python3.x中,字符串编码分为unicode和bytes两大类编码方式. 直接书写s='中国人',这种方式定义的编码方式为unicode,是通用的方式. 另一种是byte ...
- Mac替换sublime图标
下载.icns格式一个图标:http://www.easyicon.net/language.en/iconsearch/sublime/ 终端执行:open /Applications/Sublim ...
- bzoj 3771: Triple 快速傅里叶变换 FFT
题目大意: 给出\(n\)个互不相同的物品,每个物品有价值\(x_i(x_i \leq 40000)\)如果可以从中取一个或两个或三个物品.问能够组合出来的所有价值和对应的方案数,全部输出.取值时,\ ...
- 【LeetCode】039. Combination Sum
题目: Given a set of candidate numbers (C) (without duplicates) and a target number (T), find all uniq ...
- HTML5设计原理
HTML5是Web标准的巨大飞跃,它为什么要包含那些东西,它背后的设计原则是什么? <JavaScript DOM编程艺术>和<HTML5 For Web Designer>作 ...
- MySql 扩展存储引擎
MySql 扩展存储引擎 下面介绍几个列式存储引擎(都有两个版本:社区版.商业版): 一:TokuDB TokuDB 是一个高性能.支持事务处理的 MySQL 和 MariaDB 的存储引擎.Toku ...