首先你需要得到Mono.Data.Sqlite.dll 文件 与System.Data.dll文件。如果你在Mac 操作系统下使用Unity那么很悲剧,找不到这两个文件,至少我没能找到。后来我在Windows下的Unity安装路径中找到了它。为了方便大家我将这两个文件上传至网盘中,如果没有这两个文件的朋友请下载。Unity数据库文件.zip
.zip文件下载完毕后直接解压,然后将Mono.Data.Sqlite.dll 文件 与System.Data.dll文件放在Unity工程中的Assets文件夹中。如下图所示,两个文件已经放置在Project视图当中。
注意:下面脚本不要绑定在任何游戏对象身上,大家无需把它当作脚本可以当作一个工具类来使用。
[代码]java代码:
001 using UnityEngine; 002 003 using System; 004 using System.Collections; 005 using Mono.Data.Sqlite; 006 007 public class DbAccess 008 009 { 010 002 0 002 1 002 2 002 3 002 4 002 5 002 6 002 7 002 8 002 9 003 using System; 0 003 using System; 1 003 using System; 2 003 using System; 3 003 using System; 4 003 using System; 5 003 using System; 6 003 using System; 7 003 using System; 8 003 using System; 9 004 using System.Collections; 0 004 using System.Collections; 1 004 using System.Collections; 2 004 using System.Collections; 3 004 using System.Collections; 4 004 using System.Collections; 5 004 using System.Collections; 6 004 using System.Collections; 7 004 using System.Collections; 8 004 using System.Collections; 9 005 using Mono.Data.Sqlite; 0 005 using Mono.Data.Sqlite; 1 005 using Mono.Data.Sqlite; 2 005 using Mono.Data.Sqlite; 3 005 using Mono.Data.Sqlite; 4 005 using Mono.Data.Sqlite; 5 005 using Mono.Data.Sqlite; 6 005 using Mono.Data.Sqlite; 7 005 using Mono.Data.Sqlite; 8 005 using Mono.Data.Sqlite; 9 006 0 006 1 006 2 006 3 006 4 006 5 006 6 006 7 006 8 006 9 007 public class DbAccess 0 007 public class DbAccess 1 007 public class DbAccess 2 007 public class DbAccess 3 007 public class DbAccess 4 007 public class DbAccess 5 007 public class DbAccess 6 007 public class DbAccess 7 007 public class DbAccess 8 007 public class DbAccess 9 008 0 008 1 008 2 008 3 008 4 008 5 008 6 008 7 008 8 008 9 009 { 0 009 { 1 009 { 2 009 { 3 009 { 4 009 { 5 009 { 6 009 { 7 009 { 8 009 { 9 010 0 010 1 010 2 010 3 010 4 010 5 010 6 010 7 010 8 010 9 002 00 002 01 002 02 002 03 002 04 002 05 002 06 002 07 002 08 002 09 002 10 002 11 002 12 002 13 002 14 002 15 002 16 002 17 002 18 002 19 002 20 002 21 002 22 002 23 002 24 002 25 002 26 002 27 002 28 002 29 002 30 002 31 002 32 002 33 002 34 002 35 002 36 002 37 002 38 002 39 002 40 002 41 002 42 002 43 002 44 002 45 002 46 002 47 002 48 002 49 002 50 002 51 002 52 002 53 002 54 002 55 002 56 002 57 002 58 002 59 002 60 002 61 002 62 002 63 002 64 002 65 002 66 002 67 002 68 002 69 002 70 002 71 002 72 002 73 002 74 002 75 002 76 002 77 002 78 002 79 002 80 002 81 002 82 002 83 002 84 002 85 002 86 002 87 002 88 002 89 002 90 002 91 002 92 002 93 002 94 002 95 002 96 002 97 002 98 002 99 003 using System; 00 003 using System; 01 003 using System; 02 003 using System; 03 003 using System; 04 003 using System; 05 003 using System; 06 003 using System; 07 003 using System; 08 003 using System; 09 003 using System; 10 003 using System; 11 003 using System; 12 003 using System; 13 003 using System; 14 003 using System; 15 003 using System; 16 003 using System; 17 003 using System; 18 003 using System; 19 003 using System; 20 003 using System; 21 003 using System; 22 003 using System; 23 003 using System; 24 003 using System; 25 003 using System; 26 003 using System; 27 003 using System; 28 003 using System; 29 003 using System; 30 003 using System; 31 003 using System; 32 003 using System; 33 003 using System; 34 003 using System; 35 003 using System; 36 003 using System; 37 003 using System; 38 003 using System; 39 003 using System; 40 003 using System; 41 003 using System; 42 003 using System; 43 003 using System; 44首先是创建本地数据库,我们创建C#脚本Test.cs直接绑定在摄像机中。
[代码]java代码:
003 using System; 45 003 using System; 46 003 using System; 47 003 using System; 48 003 using System; 49 003 using System; 50 003 using System; 51 003 using System; 52 003 using System; 53 003 using System; 54 003 using System; 55 003 using System; 56 003 using System; 57 003 using System; 58 003 using System; 59 003 using System; 60 003 using System; 61 003 using System; 62 003 using System; 63运行游戏后,数据库对象会自动生成在项目的根目录中。查看数据库的软件我使用的是Navicat Premium,如果没有请大家下载,然后继续。如下图所示,数据库文件xuanyusong.db已经生成在项目的根目录中,接着我使用Navicat Premium软件将这个数据库打开。数据库的表名为momo 打开表后字段包含name、 qq 、email、 blog。都是我们在代码中创建的。
[代码]java代码:
003 using System; 45 003 using System; 46 003 using System; 47 003 using System; 48 003 using System; 49 003 using System; 50 003 using System; 51 003 using System; 52 003 using System; 53 003 using System; 54 003 using System; 55 003 using System; 75 003 using System; 76 003 using System; 77 003 using System; 78 003 using System; 79 003 using System; 61接着是更新数据。UpdateInto是我新写的方法,接受更新多条数据。
[代码]java代码:
003 using System; 45 003 using System; 46 003 using System; 47 003 using System; 48 003 using System; 49 003 using System; 50 003 using System; 51 003 using System; 52 003 using System; 53 003 using System; 54 003 using System; 55 003 using System; 56 003 using System; 93 003 using System; 94 003 using System; 95 003 using System; 96 003 using System; 97 003 using System; 98然后是删除数据DELETE也是我封装的方法。
[代码]java代码:
003 using System; 45 003 using System; 46 003 using System; 47 003 using System; 48 003 using System; 49 003 using System; 50 003 using System; 51 003 using System; 52 003 using System; 53 003 using System; 54 003 using System; 55 003 using System; 75 004 using System.Collections; 11 004 using System.Collections; 12 004 using System.Collections; 13 004 using System.Collections; 14 004 using System.Collections; 15 003 using System; 62 004 using System.Collections; 17 004 using System.Collections; 18 004 using System.Collections; 19 004 using System.Collections; 20 004 using System.Collections; 21 004 using System.Collections; 22 004 using System.Collections; 23最后是查找数据。
[代码]java代码:
003 using System; 45 003 using System; 46 003 using System; 47 004 using System.Collections; 27 004 using System.Collections; 28 004 using System.Collections; 29 004 using System.Collections; 30 004 using System.Collections; 31 004 using System.Collections; 32 004 using System.Collections; 33 004 using System.Collections; 34 004 using System.Collections; 35 004 using System.Collections; 36 003 using System; 58 004 using System.Collections; 38 004 using System.Collections; 39 004 using System.Collections; 40 004 using System.Collections; 41 004 using System.Collections; 42 004 using System.Collections; 43 004 using System.Collections; 44 004 using System.Collections; 45 004 using System.Collections; 46 004 using System.Collections; 47 004 using System.Collections; 48 004 using System.Collections; 49 004 using System.Collections; 50 004 using System.Collections; 51 004 using System.Collections; 52 004 using System.Collections; 53 004 using System.Collections; 54 004 using System.Collections; 55 004 using System.Collections; 56 004 using System.Collections; 57注解1:这里的结构非常像安卓的数据库指针,然后while循环把每一条数据都取出来。 sqReader.Gerordinal()方法就是拿到对应列名称的数据。如下图所示,经过一些列的添加与删除的操作最后数据库的内容如下。
注意:Error building Player: Extracting referenced dlls failed.
无论你编译任何平台都请修改一下这里, 留言中有朋友在编译PC平台中 因为没有修改这里导致无法编译成功。。
然后需要修改Test.cs的脚本,在修改一下数据库保存的路径,我们将数据库放在沙盒当中。这样IOS中才可以读取数据库。
[代码]java代码:
003 using System; 45 003 using System; 46 003 using System; 47 004 using System.Collections; 27 004 using System.Collections; 28 004 using System.Collections; 29 004 using System.Collections; 30 004 using System.Collections; 31 004 using System.Collections; 32 004 using System.Collections; 67 004 using System.Collections; 68 003 using System; 56 004 using System.Collections; 70 003 using System; 94 004 using System.Collections; 72 004 using System.Collections; 73 004 using System.Collections; 74 004 using System.Collections; 75 004 using System.Collections; 76 004 using System.Collections; 77 004 using System.Collections; 19 004 using System.Collections; 79 004 using System.Collections; 80 004 using System.Collections; 22 004 using System.Collections; 82 004 using System.Collections; 83 004 using System.Collections; 50 004 using System.Collections; 85 004 using System.Collections; 86 004 using System.Collections; 87 004 using System.Collections; 88 004 using System.Collections; 89 004 using System.Collections; 56 004 using System.Collections; 91 004 using System.Collections; 92 004 using System.Collections; 93 004 using System.Collections; 94 004 using System.Collections; 95 004 using System.Collections; 96 004 using System.Collections; 97 004 using System.Collections; 98 004 using System.Collections; 99 005 using Mono.Data.Sqlite; 00 005 using Mono.Data.Sqlite; 01下面开始打包成IOS版本,直接运行如下图所示,已经在XCODE的控制台中将字符串信息打印出来。目前我不知道如何读取中文,但是可以确定的是中文信息已经写入数据库中。不信大家可以打开沙盒看看。
Android与IOS在使用SQLite数据库时有点区别,Android需要将第三方DLL放在Plugins当中。脚本也需要修改一下,先看看Test.cs的改动。
[代码]java代码:
003 using System; 45 003 using System; 46 003 using System; 47 004 using System.Collections; 27 004 using System.Collections; 28 004 using System.Collections; 29 004 using System.Collections; 30 004 using System.Collections; 31 004 using System.Collections; 32 004 using System.Collections; 67 005 using Mono.Data.Sqlite; 12 005 using Mono.Data.Sqlite; 13 005 using Mono.Data.Sqlite; 14 005 using Mono.Data.Sqlite; 15 005 using Mono.Data.Sqlite; 16 003 using System; 79 005 using Mono.Data.Sqlite; 18 005 using Mono.Data.Sqlite; 19 005 using Mono.Data.Sqlite; 20 005 using Mono.Data.Sqlite; 21 005 using Mono.Data.Sqlite; 22 005 using Mono.Data.Sqlite; 23 005 using Mono.Data.Sqlite; 24 005 using Mono.Data.Sqlite; 25 005 using Mono.Data.Sqlite; 26 005 using Mono.Data.Sqlite; 27 005 using Mono.Data.Sqlite; 28 005 using Mono.Data.Sqlite; 29 005 using Mono.Data.Sqlite; 30 004 using System.Collections; 53 005 using Mono.Data.Sqlite; 32 005 using Mono.Data.Sqlite; 33 005 using Mono.Data.Sqlite; 34 005 using Mono.Data.Sqlite; 35 005 using Mono.Data.Sqlite; 36 005 using Mono.Data.Sqlite; 37 005 using Mono.Data.Sqlite; 38 005 using Mono.Data.Sqlite; 39 005 using Mono.Data.Sqlite; 40 005 using Mono.Data.Sqlite; 41 005 using Mono.Data.Sqlite; 42 005 using Mono.Data.Sqlite; 43 005 using Mono.Data.Sqlite; 44 005 using Mono.Data.Sqlite; 45 005 using Mono.Data.Sqlite; 46 005 using Mono.Data.Sqlite; 47 005 using Mono.Data.Sqlite; 48 005 using Mono.Data.Sqlite; 49 005 using Mono.Data.Sqlite; 50 005 using Mono.Data.Sqlite; 51 005 using Mono.Data.Sqlite; 52 005 using Mono.Data.Sqlite; 53 005 using Mono.Data.Sqlite; 54 005 using Mono.Data.Sqlite; 55如下图所示,Player Settings 请和我保持一致。
MAC平台下的使用:
请先下载原始版本 SQLite (1).unitypackage.zip
我们只需在原始版本之上进行修改即可。
修改Test.cs文件 ,请注意我在代码中标注的内容。
[代码]java代码:
003 using System; 45 003 using System; 46 003 using System; 47 004 using System.Collections; 27 004 using System.Collections; 28 004 using System.Collections; 29 004 using System.Collections; 30 005 using Mono.Data.Sqlite; 63 005 using Mono.Data.Sqlite; 64 005 using Mono.Data.Sqlite; 65 005 using Mono.Data.Sqlite; 66 005 using Mono.Data.Sqlite; 67 005 using Mono.Data.Sqlite; 14 005 using Mono.Data.Sqlite; 69 005 using Mono.Data.Sqlite; 70 005 using Mono.Data.Sqlite; 71 003 using System; 97 005 using Mono.Data.Sqlite; 73 004 using System.Collections; 42 005 using Mono.Data.Sqlite; 75 004 using System.Collections; 19 005 using Mono.Data.Sqlite; 77 005 using Mono.Data.Sqlite; 24 005 using Mono.Data.Sqlite; 79 005 using Mono.Data.Sqlite; 80 005 using Mono.Data.Sqlite; 81 005 using Mono.Data.Sqlite; 82 005 using Mono.Data.Sqlite; 83 005 using Mono.Data.Sqlite; 84 004 using System.Collections; 53 005 using Mono.Data.Sqlite; 86 005 using Mono.Data.Sqlite; 87 004 using System.Collections; 56 005 using Mono.Data.Sqlite; 89 004 using System.Collections; 92 005 using Mono.Data.Sqlite; 91 005 using Mono.Data.Sqlite; 92 005 using Mono.Data.Sqlite; 39 005 using Mono.Data.Sqlite; 94 004 using System.Collections; 97 005 using Mono.Data.Sqlite; 96 005 using Mono.Data.Sqlite; 97 005 using Mono.Data.Sqlite; 98 005 using Mono.Data.Sqlite; 01 006 00 006 01 006 02 006 03 006 04 006 05 006 06 006 07 006 08 006 09 006 10 006 11 006 12 006 13 006 14 006 15 006 16 006 17 006 18 006 19 006 20 006 21 006 22 006 23 006 24 006 25 006 26生成工程后,运行生成的mac程序,我们可以看到 数据已经取出来了。
Windows平台下与Mac平台有点区别,废了老半天来找到问题所在。MOMO感谢在博客后面留言的朋友,因为没有你们的留言我也不会去研究MAC Windows下如何使用 呵呵。
进入正题,还是先修改Test.cs文件
[代码]java代码:
006 27 006 28 006 29 006 30 006 31 003 using System; 50 006 33 003 using System; 52 003 using System; 53 006 36 006 37 006 38 005 using Mono.Data.Sqlite; 14 006 40 006 41 006 42 003 using System; 97 006 44 006 45 006 46 006 47 004 using System.Collections; 45 006 49 004 using System.Collections; 22 006 51 005 using Mono.Data.Sqlite; 27 006 53 006 54 006 55 006 56 006 57 006 58 004 using System.Collections; 56 006 60 006 61 005 using Mono.Data.Sqlite; 37 006 63 006 64 006 65 004 using System.Collections; 97 006 67 006 68 006 69 006 70 006 00 006 72 006 73 006 74 006 75 006 76 005 using Mono.Data.Sqlite; 52 006 78 006 79 005 using Mono.Data.Sqlite; 55 006 81 006 82 006 12 006 13 006 85 006 15 006 87 006 88 006 89 006 90 006 91 006 92 006 93 006 94 006 24 006 25 006 97 006 98 006 99 007 public class DbAccess 00 007 public class DbAccess 01 007 public class DbAccess 02 007 public class DbAccess 03如下图所示打开Unity然后我们需要下载sqlite3.dll文件,接着将dll都放入Plugins文件夹中。不用担心 稍后我会把真个工程的下载地址贴出来其中包括所有的dll 。