unity3d连接Sqlite并打包发布Android

连接Sqlite首先要把dll程序集导入到unity3d工程里面。安装好的unity中可以找到

其实发布PC端有这个就可以了。但如果是发布android的话。则需要这些。

在工程中创建一个文件夹,Plugins,Plugins文件夹中创建一个Android文件夹

Android文件夹放一个so文件libsqlite3,Plugins文件夹放一些sqlite需要的dll文件,如:

Plugins文件下载:http://pan.baidu.com/s/1sjxDzkD

因为Anidoid的文件夹是不固定的。所以数据库和表需要动态创建,

我这来写了一个测试的代码。来创建库,写入数据和读取数据

创建表代码:

 1 using UnityEngine;
 2 using System.Collections;
 3 using Mono.Data.Sqlite;
 4 using System.IO;
 5 public class createTable : MonoBehaviour
 6 {
 7     string path;
 8     string source;
 9
10     SqliteConnection connect;
11     SqliteCommand command;
12
13     string error;
14
15     // Use this for initialization
16     void Start()
17     {
18         Debug.Log(Application.dataPath);
19         try
20         {
21             /*1:Application.persistentDataPath用法:
22              * PC端,Android端通用
23             //persistentDataPath 表示持久化数据,
24              *
25              * Android路径:/data/data/com.company.productnameyy/files/file5.db
26              * pc路径:C:/User/user/AppData/LocalLow/SqiteDemo/flie9.db(ty是发布的时候设置的公司名字,SqiteDemo是工程名)
27              * 必须andorid注意:Plugins文件下必须有一个Android文件夹,里面有一个libsqlite3.so文件。这个libsqlite3.so文件是干什么的呢?
28             */
29             path = Application.persistentDataPath + @"/file9515.db";
30             source = @"Data source=" + path; //发布android和pc都可以这样写
31             //source = "URI=file:" + path;  //发布android和pc都可以这样写
32
33
34             /*
35              *2:Application.dataPath:获取当前工程的目录(D:/project/SqiteDemo/Assets)
36              Application.dataPath 不能发布Android,只能发布PC
37             */
38             //path = Application.dataPath + @"/file121.db";
39             //source = @"Data source=" + path; //PC可以这样写
40             //source = "URI=file:" + path;  //PC也可以这样写
41
42
43             /*
44              3:Application.streamingAssetsPath:获取当前工程的目录(D:/project/SqiteDemo/Asseets/StreamingAssets)
45              * Application.streamingAssetsPath不能发布Android,可以发布PC
46              * 必须在工程目录下已经有该文件夹(StreamingAssets)
47              * 发布的时候工程里面streamingAssetsPath里面的文件会一起打包发布
48              */
49             //path = Application.streamingAssetsPath + @"/file5611.db";
50             //source = @"Data source=" + path;//PC也可以这样写
51             //source = "URI=file:" + path;  //PC也可以这样写
52
53
54             //数据库不存在,创建
55             if (!File.Exists(path))
56             {
57                 //可以手动创建数据库
58                 //SqliteConnection.CreateFile(path);
59
60                 //连接的时候。在没有数据库的时候,会自动创建
61                 connect = new SqliteConnection(source);
62                 connect.Open();
63
64                 //创建表
65                 string sql = "create table hero(name nvarchar(30))";
66                 command = new SqliteCommand(sql, connect);
67                 command.ExecuteNonQuery();
68             }
69         }
70         catch (System.Exception ex)
71         {
72             error = ex.Message;
73         }
74     }
75
76     void OnGUI()
77     {
78         GUILayout.Label(error);
79         GUILayout.Label(path);
80     }
81
82     // Update is called once per frame
83     void Update()
84     {
85
86     }
87 }

插入数据和读取数据代码

 1 using UnityEngine;
 2 using System.Collections;
 3 using Mono.Data.Sqlite;
 4 using UnityEngine.UI;
 5 public class AddDate : MonoBehaviour
 6 {
 7
 8     public InputField input;
 9     string path;
10     string source;
11
12     string msg;
13
14     // Use this for initialization
15     void Start()
16     {
17         path = Application.persistentDataPath + @"/file9515.db";
18         //source = @"Data source=" + path; //PC
19
20         source = "URI=file:" + path;  //
21     }
22
23     // Update is called once per frame
24     void Update()
25     {
26
27     }
28
29     public void Add(bool i)
30     {
31         if (i) //插入数据,其实每次插入也需要判断表或者库是否存在
32         {
33             string text = input.text;
34             if (!string.IsNullOrEmpty(text))
35             {
36                 try
37                 {
38                     SqliteConnection conn = new SqliteConnection(source);
39                     conn.Open();
40                     SqliteCommand comm = new SqliteCommand("insert into hero(name)values(‘" + text + "‘)", conn);
41                     comm.ExecuteNonQuery();
42                 }
43                 catch (System.Exception ex)
44                 {
45                     //msg = ex.Message + "~";
46                 }
47             }
48         }
49         else //读取数据,
50         {
51             SqliteConnection conn = new SqliteConnection(source);
52             conn.Open();
53             SqliteCommand comm = new SqliteCommand("select * from hero", conn);
54
55             SqliteDataReader read = comm.ExecuteReader();
56
57             msg = string.Empty;
58
59             while (read.Read())
60             {
61                 msg += read["name"] + "~";
62             }
63         }
64     }
65
66     void OnGUI()
67     {
68         GUILayout.Label(msg);
69     }
70 }

主要代码就是这些。大家可以自己打包测试下。

时间: 2024-07-28 19:58:52

unity3d连接Sqlite并打包发布Android的相关文章

Unity3D游戏开发之如何发布Android游戏

怎么在Unity3D游戏开发软件里,发布Android游戏?如果你感到有疑问,不如看看下面笔者的介绍. 新装的软件会自带一个demo,我们的讲解就是拿demo打不一款Android游戏,点击File -> build seting.如果你已经创建好一个场景需要发布,也可以加载进来跟着以下的步骤进行. 我们要发布到Android平台上,所以在这里就需要选择Android平台,再点击player settings.当然这里还需要你对游戏的部署信息进行写修改,值得注意的是:如果你使用的是破解版Unit

Ant自动编译打包&发布 android项目

Eclipse用起来虽然方便,但是编译打包android项目还是比较慢,尤其将应用打包发布到各个渠道时,用Eclipse手动打包各种渠道包就有点不切实际了,这时候我们用到Ant帮我们自动编译打包了. 1  Ant自动编译打包android项目 1.1   Ant安装 ant的安装比较简单,下载ant压缩包  http://ant.apache.org  (最新的为1.9.3版本),下载之后将其解压到某个目录(本人解压到E:\Program Files\apache-ant-1.9.3) ,然后配

Andorid进阶7—— Ant自动编译打包&发布 android项目

http://www.cnblogs.com/tt_mc/p/3891546.html Eclipse用起来虽然方便,但是编译打包android项目还是比较慢,尤其将应用打包发布到各个渠道时,用Eclipse手动打包各种渠道包就有点不切实际了,这时候我们用到Ant帮我们自动编译打包了. 1  Ant自动编译打包android项目 1.1   Ant安装 ant的安装比较简单,下载ant压缩包  http://ant.apache.org  (最新的为1.9.3版本),下载之后将其解压到某个目录(

Unity3d打包发布Android程序

unty3d这个款游戏引擎的强大之处就是编写一个程序.可以多平台发布.我的是安卓手机.所以此文介绍下发布安卓的过程 发布安卓前. 1:需要配置java环境.这里之前写过一篇java的配置  http://www.cnblogs.com/nsky/p/4495305.html 2:下载SDK,下载SDK的话国内有映像文件,这里推荐一个:http://www.cnblogs.com/bjzhanghao/archive/2012/11/14/2769409.html 或者到我这里下载好的ADT ht

Unity 打包发布Android新手教学 (小白都能看懂的教学 ) [转]

版权声明:本文为Aries原创文章,转载请标明出处.如有不足之处欢迎提出意见或建议,联系QQ531193915 扫码关注微信公众号,获取最新资源 最近在Unity的有些交流群里,发现好多Unity开发的爱好者们都遇到了这个问题. 而且都说在网上看到好多教程弄了好几天都弄不出来,每个人都解释一遍有觉得比较繁琐. 索性我就写一个博客永久保存.希望大家会喜欢. 本文纯属个人经验之谈,如有不足,欢迎指出. 下面进入正题 如果想要让Unity可以打包Apk,你需要先下载一个JDK7以上(包括7)的版本.

Unity3D - 发布Android游戏

本文将介绍如何使用Unity3D来发布Android游戏,这里我使用的Unity3D版本为4.6.3f1 下载Java SDK 使用Unity3D来发布Android游戏时需要用到Android SDK,而Android又是基于Java运行的,所以我们首先需要下载的就是Java SDK,地址为:http://www.oracle.com/technetwork/java/javase/downloads/index.html 我使用的操作系统为64位Windows 7 ,所以我的下载如图: 下载

【Android基础】(15)应用程序打包发布

本文出处:http://blog.csdn.net/scarthr/article/details/42675223 Andorid系统会根据软件的签名来判断是否可以升级,如果一个应用的签名证书不一致的话,是没有办法升级的. 打包发布APK 下面介绍一下如何打包发布一个程序: 1. 右键工程-->Export-->Andoird-->Export Android Application 2. 确定我们的工程-->next-->Create new keystore 3. Lo

unity3d-配置Android环境,打包发布Apk流程详解

31:unity3d-配置Android环境,打包发布Apk流程详解 作者 阿西纳尼 关注 2016.08.28 22:52 字数 498 阅读 1806评论 0喜欢 5 Unity配置Android环境,打包发布安卓流程 一:SDK与JDK下载地址:http://pan.baidu.com/s/1mhVaXHe下载完成后,解压文件 SDK文件 二.安装 JDK 运行安装程序jdk-7u67-windows-x64 Java-JDK 分别点击下一步进行安装. 安装中 在安装过程中先后会出现两次选

RN在Android打包发布App

参考资料:http://www.jianshu.com/p/b8811669bcb6 RN在Android打包发布App 1-:生成一个签名密钥你可以用keytool命令生成一个私有密钥.在Windows上keytool命令放在JDK的bin目录中(比如C:\Program Files\Java\jdkx.x.x_x\bin),你可能需要在命令行中先进入那个目录才能执行此命令.在mac上,直接进入项目根目录输入一下命令: $ keytool -genkey -v -keystore my-rel