统一使用非monoBehaviour class
Use non monoBehaviour class in unity
我正在经历一个错误或至少是我没有真正理解的问题。
我想在我的 unity 项目中使用 sqlite 数据库。
这是我得到的错误:
DatabaseManager class 是一个 MonoBehaviour class。
这是它的样子:
using UnityEngine;
using System.Collections;
public class DatabaseManager : MonoBehaviour
{
SQLiteDatabase sqlDB;
void Awake()
{
string dbPath = System.IO.Path.Combine (Application.persistentDataPath, "game.db");
var dbTemplatePath = System.IO.Path.Combine(Application.streamingAssetsPath, "default.db");
if (!System.IO.File.Exists(dbPath)) {
// game database does not exists, copy default db as template
if (Application.platform == RuntimePlatform.Android)
{
// Must use WWW for streaming asset
WWW reader = new WWW(dbTemplatePath);
while ( !reader.isDone) {}
System.IO.File.WriteAllBytes(dbPath, reader.bytes);
} else {
System.IO.File.Copy(dbTemplatePath, dbPath, true);
}
}
sqlDB = new SqliteDatabase(dbPath);
}
}
问题是,如果我做对了,我将我的脚本放在 assets 文件夹下这一事实应该足以让它们协同工作并识别其他文件中的 classes。现在问题很简单,我的 DatabaseManager class 无法识别在 SqliteDatabase.cs
中实现的 SqliteDatabase class
有人遇到过这个问题吗?或者我是否错过了有关如何在 MonoBehaviour 脚本中引用非 MonoBehaviour 脚本的内容?
编辑:
我使用了这个教程:Here
谢谢!
您的代码中似乎有一个小写错误。
将 SQLiteDatabase sqlDB
替换为 SqliteDatabase sqlDB
。
我正在经历一个错误或至少是我没有真正理解的问题。
我想在我的 unity 项目中使用 sqlite 数据库。
这是我得到的错误:
DatabaseManager class 是一个 MonoBehaviour class。
这是它的样子:
using UnityEngine;
using System.Collections;
public class DatabaseManager : MonoBehaviour
{
SQLiteDatabase sqlDB;
void Awake()
{
string dbPath = System.IO.Path.Combine (Application.persistentDataPath, "game.db");
var dbTemplatePath = System.IO.Path.Combine(Application.streamingAssetsPath, "default.db");
if (!System.IO.File.Exists(dbPath)) {
// game database does not exists, copy default db as template
if (Application.platform == RuntimePlatform.Android)
{
// Must use WWW for streaming asset
WWW reader = new WWW(dbTemplatePath);
while ( !reader.isDone) {}
System.IO.File.WriteAllBytes(dbPath, reader.bytes);
} else {
System.IO.File.Copy(dbTemplatePath, dbPath, true);
}
}
sqlDB = new SqliteDatabase(dbPath);
}
}
问题是,如果我做对了,我将我的脚本放在 assets 文件夹下这一事实应该足以让它们协同工作并识别其他文件中的 classes。现在问题很简单,我的 DatabaseManager class 无法识别在 SqliteDatabase.cs
中实现的 SqliteDatabase class有人遇到过这个问题吗?或者我是否错过了有关如何在 MonoBehaviour 脚本中引用非 MonoBehaviour 脚本的内容?
编辑:
我使用了这个教程:Here
谢谢!
您的代码中似乎有一个小写错误。
将 SQLiteDatabase sqlDB
替换为 SqliteDatabase sqlDB
。