Unity中使用Sqlite存储本地数据

sqlite-net
sqlite下载页

我的环境:win11、unity团结1.3.4

1.下载sqlite-net,将SQLite.cs 脚本导入Unity

2.下载各平台依赖项,如dll、aar 等。导入Unity并设置

3.简单列子,打包测试

csharp 复制代码
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

相关推荐
小贺儿开发5 小时前
Unity 程序员编曲花絮:汪峰《河流》细节修复
科技·学习·unity·程序员·音乐·demo·写代码
598866753@qq.com6 小时前
Unity UniText笔记
unity·unitext
杨丰玮4186 小时前
从零手写Java飞机躲障碍游戏|Swing绘图、鼠标跟随、计时器碰撞检测实战(五)
java·python·游戏·游戏引擎·图形渲染·动画·贴图
衿心.8 小时前
Django TemplateDoesNotExist
数据库·django·sqlite
鼎艺创新科技18 小时前
不依赖 UE/Unity:我们如何从零搭建一套国产三维 GIS 渲染引擎
人工智能·算法·unity·游戏引擎·三维电子沙盘
huihui36121 小时前
校友网管理软件技术选型框架:基于功能核验与系统架构的量化评估
unity·系统架构·游戏引擎
五仁烧饼21 小时前
Unity性能优化系列设置篇 - URP 移动端设置基线与分档策略
unity·游戏引擎
新手unity自用笔记1 天前
unity基于Socket的网络学习
网络·网络协议·学习·unity·c#·游戏引擎
心前阳光1 天前
Unity之XR Interaction Toolkit | IPointerDownHandler问题
unity·游戏引擎·xr
张人玉1 天前
基于 Vue 3 + ECharts + Three.js + Express + SQLite——智慧城市数字孪生可视化平台
javascript·vue.js·信息可视化·sqlite·echarts