统一使用非monoBehaviour类

时间:2015-09-30 09:58:48

标签: c# sqlite unity3d unityscript

我正在经历一个错误,或者至少我没有得到的东西。

我正在尝试在我的Unity项目中使用sqlite数据库。

以下是我得到的错误:

enter image description here

DatabaseManager类是MonoBehaviour类。

这是它的样子:

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文件夹下的事实应该足以让他们一起工作并识别其他文件中的类。现在问题很简单我的DatabaseManager类无法识别在SqliteDatabase.cs中实现的SqliteDatabase类

是否有人遇到过这个问题,或者我错过了如何在MonoBehaviour脚本中引用非MonoBehaviour脚本?

编辑:

我使用了本教程:Here

谢谢!

1 个答案:

答案 0 :(得分:2)

您的代码中似乎存在较小的大小写错误。

SQLiteDatabase sqlDB替换为SqliteDatabase sqlDB