手机
当前位置:查字典教程网 >编程开发 >IOS开发 >iOS开发:Unity3D 使用C#语言建立本地数据库
iOS开发:Unity3D 使用C#语言建立本地数据库
摘要:首先你需要得到Mono.Data.Sqlite.dll文件与System.Data.dll文件。如果你在Mac操作系统下使用Unity那么很...

首先你需要得到Mono.Data.Sqlite.dll 文件 与System.Data.dll文件。如果你在Mac 操作系统下使用Unity那么很悲剧,找不到这两个文件,至少我没能找到。后来我在Windows下的Unity安装路径中找到了它。为了方便大家我将这两个文件上传至网盘中,如果没有这两个文件的朋友请下载。Unity数据库文件.zip

.zip文件下载完毕后直接解压,然后将Mono.Data.Sqlite.dll 文件 与System.Data.dll文件放在Unity工程中的Assets文件夹中。如下图所示,两个文件已经放置在Project视图当中。

iOS开发:Unity3D 使用C#语言建立本地数据库1Ok ,我们编写C#脚本,原始文章没有Unity数据库更新与删除的方法,我在这里加上更新与删除的方法,方便大家开发时使用。因为其实Unity中更新与删除数据库也是个比较重要的功能。

注意:下面脚本不要绑定在任何游戏对象身上,大家无需把它当作脚本可以当作一个工具类来使用。

[代码]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。都是我们在代码中创建的。

iOS开发:Unity3D 使用C#语言建立本地数据库2OK,我们继续。首先是插入数据,记得将编码修改成UTF-16 不然中文会乱码。

[代码]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()方法就是拿到对应列名称的数据。如下图所示,经过一些列的添加与删除的操作最后数据库的内容如下。

iOS开发:Unity3D 使用C#语言建立本地数据库3如下图所示,我使用Log也将数据库name 与 email的字段打印了出来。最后我在强调一点,我们在OnStart方法中db.CreateTable创建数据库表,如果重复创建系统会抛出错误。避免这个情况请保证你的数据库表只会被创建一次。祝大家学习愉快嘎嘎嘎~~~

iOS开发:Unity3D 使用C#语言建立本地数据库4如下图所示,请先在PlaySettings中修改Api Compatibility Level 改成.NET 2.0,如果不修改会报错

注意:Error building Player: Extracting referenced dlls failed.

无论你编译任何平台都请修改一下这里, 留言中有朋友在编译PC平台中 因为没有修改这里导致无法编译成功。。

iOS开发:Unity3D 使用C#语言建立本地数据库5IOS平台SQLite的使用:

然后需要修改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的控制台中将字符串信息打印出来。目前我不知道如何读取中文,但是可以确定的是中文信息已经写入数据库中。不信大家可以打开沙盒看看。

iOS开发:Unity3D 使用C#语言建立本地数据库6Android平台SQLite的使用:

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 请和我保持一致。

iOS开发:Unity3D 使用C#语言建立本地数据库7值得庆幸的是在Android下读取数据库时正常的显示了中文。如下图所示,运行打包后的程序后在Eclipse的后台已经能看到数据库显示的中文与英文,呵呵。

iOS开发:Unity3D 使用C#语言建立本地数据库8由于工程中需要一些DLL,所以我将工程的下载地址放出,请大家下载。AndroidSQL.unitypackage.zip

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程序,我们可以看到 数据已经取出来了。

iOS开发:Unity3D 使用C#语言建立本地数据库9Windows平台SQLite的使用:

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 。

iOS开发:Unity3D 使用C#语言建立本地数据库10最后直接打包成Windows平台工程。双击运行.exe文件,如下图所示数据库的数据以及路径MOMO已经打印在屏幕当中啦。哇咔咔~ 然后xuanyusong.db文件就放在ddd_Date文件夹中,我已经用红圈标注出来了。ddd就是工程的名称,ddd_Date该文件夹是自动生成的。

iOS开发:Unity3D 使用C#语言建立本地数据库11

【iOS开发:Unity3D 使用C#语言建立本地数据库】相关文章:

iOS开发之widget实现详解

iOS开发中视图的下拉放大和上拉模糊的效果实现

IOS开发:Unity3D游戏引擎之构建框架与导出项目

iOS开发使用JSON解析网络数据

IOS开发:Notification与多线程

ios多种语言的本地化思路

iOS App开发中Core Data框架基本的数据管理功能小结

iOS 引导页的镂空效果实例

iOS开发之事件传递响应链

iOS中关于信鸽推送的使用demo详解

精品推荐
分类导航