Unity中如何高效实现数据库保存操作及最佳实践?
- 数据库
- 2025-11-05
- 6
在Unity中保存数据库,主要涉及到以下几个步骤:
- 选择合适的数据库
- 连接到数据库
- 创建表和字段
- 添加数据
- 保存数据
- 查询数据
以下是详细的步骤和代码示例:
选择合适的数据库
在Unity中,你可以选择多种数据库,如SQLite、MySQL、PostgreSQL等,这里以SQLite为例进行讲解。
连接到数据库
需要导入SQLite的相关库,在Unity编辑器中,可以使用NuGet包管理器搜索并安装“SQLite for Unity”。

安装完成后,在Unity脚本中,你可以通过以下代码连接到SQLite数据库:
using System.Data; using System.Data.SQLite; public class DatabaseManager : MonoBehaviour { private static string dbPath = "path/to/your/database.db"; private static SQLiteConnection connection; void Start() { connection = new SQLiteConnection("URI=file:" + dbPath); connection.Open(); } void OnDestroy() { if (connection != null) { connection.Close(); } } }
创建表和字段
创建一个表和相应的字段,这里以创建一个名为Users的表为例,包含ID、Name和Age三个字段。
public void CreateTable() { using (var command = new SQLiteCommand(connection)) { command.CommandText = "CREATE TABLE IF NOT EXISTS Users (ID INTEGER PRIMARY KEY AUTOINCREMENT, Name TEXT, Age INTEGER)"; command.ExecuteNonQuery(); } }
添加数据
你可以向表中添加数据,以下是一个示例:

保存数据
在上面的代码中,我们已经通过AddData方法向数据库中添加了数据,由于使用了ExecuteNonQuery方法,数据已经被保存到数据库中。
查询数据
你可以通过以下代码查询数据:
public void QueryData() { using (var command = new SQLiteCommand(connection)) { command.CommandText = "SELECT * FROM Users"; using (var reader = command.ExecuteReader()) { while (reader.Read()) { int id = reader.GetInt32(0); string name = reader.GetString(1); int age = reader.GetInt32(2); Debug.Log("ID: " + id + ", Name: " + name + ", Age: " + age); } } } }
以下是相关问答FAQs:

Q1:如何在Unity中关闭数据库连接?
A1: 在DatabaseManager类中,可以在OnDestroy方法中关闭数据库连接,代码如下:
void OnDestroy() { if (connection != null) { connection.Close(); } }
Q2:如何在Unity中更新数据库中的数据?
A2: 你可以通过以下代码更新数据库中的数据:
public void UpdateData(int id, string name, int age) { using (var command = new SQLiteCommand(connection)) { command.CommandText = "UPDATE Users SET Name = @Name, Age = @Age WHERE ID = @ID"; command.Parameters.AddWithValue("@Name", name); command.Parameters.AddWithValue("@Age", age); command.Parameters.AddWithValue("@ID", id); command.ExecuteNonQuery(); } }