C#中Excel文件转换为SQLite文件并在Unity3D中读取遇到的一些坑

公司有这个需求,学习了一下。用的是C#。不过好像直接有软件可以做到,恶寒……只是单纯抱着学习的心态做的这东西。

机子是新装的,很多东西都没有。

分为三个步骤

一、读取:

http://www.open-open.com/code/view/1420029490093

用的方式二,不过记得不是这篇文章……当时那篇找不着了。

比较麻烦的是下标处理。由于当时没装Excel,出现了很奇怪的错误(忘了是什么错误)。

最后的解决办法是装好Excel后在工程中添加两个COM引用:
Microsoft Excel 15.0 Object Library
Microsoft Office15.0 Object Library

 

二、转换为SQLite的db文件:

当时参考的是这里的文章

http://www.oschina.net/code/snippet_1169053_38296

由于是新机子,没有SQLite。下载页面在http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki

除了系统位数,版本号之外,还有一个比较重要的区别是下载的文件有bundle与binary之分。这个坑了我好久,这个就赘述了,有需要的朋友自行搜索吧。

 

三、在U3D中读取db文件:

http://www.xuanyusong.com/archives/831

这篇文章写的比较详细了。

http://blog.csdn.net/luxiaoyu_sdc/article/details/20376233

这篇文章可以避免坑。

dll文件一定要放到Plugins文件夹下,然后在C#中对其进行引用。

在我的经历中,Mono.Data.Sqlite.dll和sqlite3.dll是要放到Plugins里的。当然我还放了一个System.Data.dll,不知是否是必要的。

 

四、在Android中使用:

http://forum.unity3d.com/threads/unity-3d-android-sqlite-examples.114660/

参考的是这篇文章。因为Android中资源Unity的资源存储和Windows中不一样。(具体如何还在学习中)

需要将DB文件放入Assets/StreamingAssets中。

并再在三的基础上,于Plugins/Android中添加libsqlite.so文件。

 

附资源读取方式:

转自http://game.ceeger.com/forum/read.php?tid=12101

Android:在Assets中新建一个StreamingAssets文件夹,将要打包的各种资源文件放到该目录下面就可以了。这样资源就被打包进Apk包里面的Assets文件夹里面了。这里面的资源通过什么目录访问呢,其实也挺简单 
"jar:file://" + Application.dataPath + "!/assets" 就是访问该目录的路径

如果是在IOS平台,路径则是 Application.dataPath +"/Raw",这里面一定要注意文件路径大小写,这里面是区分大小写的,如果不注意这个问题,可能就会资源加载不了的问题。所以项目的命名规范一开始就 
要做好。

 

posted on 2015-11-05 16:01  Lucky_hugh  阅读(1442)  评论(0)    收藏  举报

导航