当前位置: 首页 > article >正文

Unity中使用Sqlite存储本地数据

sqlite-net
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


http://www.kler.cn/a/428637.html

相关文章:

  • DS18B20温度传感器详解(STM32)
  • Linux内核编程(二十一)USB驱动开发-键盘驱动
  • 云计算、AI与国产化浪潮下DBA职业之路风云变幻,如何谋破局启新途?
  • AQS公平锁与非公平锁之源码解析
  • mysql的测试方案
  • MIAOYUN信创云原生项目亮相西部“中试”生态对接活动
  • Python之爬虫入门(1)
  • 电商项目-微服务网关使用的问题
  • 透彻理解并解决Mockito模拟框架的单元测试无法运行的问题
  • redis击穿,穿透,雪崩以及解决方案
  • unity 2D像素种田游戏学习记录(自用)
  • Three.js曲线篇 6.雕刻平面大师shape
  • Java IO流与NIO技术综合应用
  • Qt实现自定义消失动画弹出提示框
  • 数据结构 (27)查找的基本概念
  • 基于MATLAB野外观测站生态气象数据处理分析实践应用
  • HCIA-openGauss_2_2连接与认证
  • 2024第十六届蓝桥杯模拟赛(第二期)-Python
  • 汽车总线协议分析-CAN-FD总线
  • ORB-SLAM2 ---- 词袋模型BOW
  • PHP语法学习(第七天)-循环语句,魔术常量
  • quartz 架构详解
  • 算法-字符串-43.字符串相乘
  • 【并集查询】.NET开源 ORM 框架 SqlSugar 系列
  • G15沈海高速茶白高架自动化监测
  • 机器学习之Friedman检验