在U3D中使用Sqlite做配置数据存取的靠谱做法

这几天为了做这个,在网上查了很多资料,其实都是不靠谱的,大多数人都是复制粘贴来教育别人,误导子民。。。。


在iphone和android下都亲自调试过了,我这个比较靠谱:


怎么使用sqlite网上到处都是,现在只讲两点网上没怎概括到的坑。

一、怎么让手机能使用sqlite

二、怎么在打包时将db文件放在合适位置,然后代码里怎么加载到合适的路径。

三、怎么把策划的csv转换成sqlite db


操作方法:

        在Assets目录下新建Plugins,把Mono.Data.dll、Mono.Data.Sqlite.dll、System.Data.dll放到这层目录下,然后在这层目录下建立Android,再将libsqlite3.so放到Android目录下,最后再在这个Android目录下创建assets目录,然后将.db文件放于此,如果是苹果包则在Assets目录下创建StreamingAssets目录,把db放到这个下面,我试过各种路径存放和试剥离不需要的dll,都不行,必须按我这个方法搞,我搞了几天才摸索出来的啊,至于怎么把csv转换到db里去,方法如下:


D:\Sqlite3>sqlite3.exe CangLong.db
sqlite> .separator ','
sqlite> .import Skill.csv Skill


加载部分的代码:

void Start ()
{
Instance = this;




if (Application.platform == RuntimePlatform.WindowsEditor || Application.platform == RuntimePlatform.OSXEditor)
{
LocalDBFullPath = Application.dataPath + "/Plugins/Android/assets/" + DBTableStruct.DBName;
}
else
{
if (Application.platform == RuntimePlatform.Android)
{
                LocalDBFullPath = Application.persistentDataPath + "/" + DBTableStruct.DBName;
                if (!File.Exists(LocalDBFullPath))
                {
                    WWW loadDB = new WWW("jar:file://" + Application.dataPath + "!/assets/" + DBTableStruct.DBName);
                    while (!loadDB.isDone) { }


                    File.WriteAllBytes(LocalDBFullPath, loadDB.bytes);


                }
}
else
{
if (Application.platform == RuntimePlatform.IPhonePlayer)
{
LocalDBFullPath =  Application.dataPath +"/Raw/" + DBTableStruct.DBName; 
if(!File.Exists(LocalDBFullPath))
{
NGUIDebug.Log("Not Exists db !!!!!!");
return;
}
}
else
{
LocalDBFullPath = "";
}
}
}

//NGUIDebug.Log (LocalDBFullPath);

LoadDbToCache(LocalDBFullPath);
}


我的环境是:unity 4.3 sqlite3 android

sqlite3下载:http://pan.baidu.com/s/1jGoRlP0

我已经打配置好的文件放在网盘,自己下载:

http://pan.baidu.com/s/1ntDN7nz

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值