Unity中使用Sqlite存储本地数据
我的环境:win11、unity团结1.3.4
1.下载sqlite-net,将SQLite.cs脚本导入Unity
2.下载各平台依赖项,如dll、aar等。导入Unity并设置
3.简单列子,打包测试
using System;
using System.IO;
using SQLite;
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour
{
public string databaseFile = "sqlite.db";
public void Start()
{
#if UNITY_EDITOR
string path = Path.Combine(Directory.GetParent(Application.dataPath).FullName, databaseFile);
#elif UNITY_ANDROID
string path = Path.Combine(Application.persistentDataPath, databaseFile);
#elif UNITY_IOS
string path = Path.Combine(Application.persistentDataPath, databaseFile);
#else
string path = Path.Combine(Application.dataPath, databaseFile);
#endif
Debug.Log(path);
// 创建数据库连接
//SQLiteConnection第二个参数配置日期格式,默认Ticks
var db = new SQLiteConnection(path, false);
//打印sql语句
db.Trace = true;
db.Tracer = (sql) => UnityEngine.Debug.Log(sql);
//创建表
db.CreateTable<Users>();
// 插入
var user = new Users() { Name = "张三", Created = DateTime.Now };
var user2 = new Users() { Name = "李四", Created = DateTime.Now };
db.Insert(user);
db.Insert(user2);
// 查询
var users = db.Table<Users>().Where(u => u.Name.StartsWith("张")).ToList();
for (int i = 0; i < users.Count; i++)
{
Debug.Log(users[i]);
}
}
}
public class Users
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
public string Name { get; set; }
public DateTime Created { get; set; }
public bool IsDeleted { get; set; }
public override string ToString()
{
return $"Id:{Id} 名字:{Name} 创建时间:{Created} 是否删除:{IsDeleted}";
}
}
4.效果图,可以看到可以正常在pc/安卓上运行。
百度网盘 Unityt Sqlite测试工程
提取码:dq4n
其它参考:
https://github.com/praeclarum/sqlite-net/issues/1023
https://docs.unity3d.com/2022.1/Documentation/Manual/NativePlugins.html
原文地址:https://blog.csdn.net/weixin_44238530/article/details/144309666
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!