Как записать значение переменной счетчика в базу данных sqlite в unity? фрагмент кода:
if (hit.transform.CompareTag("PickUp")) {
device++;
Destroy(hit.transform.gameObject);
if (Application.Quit ()) {
Application.dataPath + "/stydent.db3";
}
}
Имеется переменная devise
, которая каждый раз увеличивается при выполнении какого-то события. Нужно записать конечный результат этой переменной при выходе из программы.
Чтобы поймать событие выхода из приложения используйте
OnApplicationQuit
вызывает автоматически во всех Monobehaviour
скриптах, но его нужно объявить
void OnApplicationQuit(){}
Дальше Application.dataPath + "/stydent.db3";
Это вообще получаете просто string. Если вам надо сохранить в sql базу, вам либо надо писать свой плагин, который в фоновом режиме будет производить запись каких-то параметров, и получать их из вызовов в Unity через CallStatic
(либо найти готовый).
В этом плане погуглите, ну или вот есть небольшая статья по этой теме туц
p.s. Но имейте ввиду, что OnApplicationQuit
вызывается только, вы вызываете Application.Quit()
, то есть допустим пользователь нажал кнопку выйти из игры, вы должны вызвать эту функцию. И также пользователь может ее завершить не корректно, через диспетчер, или она "вылетит", и OnApplicationQuit
не сработает.
Вы используете плагин для sqlite? Если да, то там всё довольно просто:
При подключении базы вы создаёте подключение к ней и хешируете его:
private SQLiteConnection _connection;
_connection = new SQLiteConnection(dbPath, SQLiteOpenFlags.ReadWrite);
dbPath - путь до базы, включающий и её название. Вторым параметром тип соединения. В базе у тебя есть так называемые Table - таблицы с определёнными столбцами. Создай в unity класс с такими же параметрами, как и в нужной таблице. Например, если тебе нужен только параметр и его значение:
using SQLite4Unity3d;
public class PARAMS {
[PrimaryKey, AutoIncrement, NotNull]
public string PARAM { get; set; }
[NotNull]
public int VALUE{ get; set; }
public override string ToString() {
return string.Format (
"[mess: Param= {0}, " +
"value: {1}.]",
PARAM , VALUE
);
}
}
Для добавления в ДБ делается вызов следующего вида:
public void InsertParam(string param, int value)
{
var p = new PARAMS
{
PARAM = param,
VALUE = value
};
_connection.Insert(p);
}
Соответственно, как сказали чуть выше, если приложение закроется экстренно, то void OnApplicationQuit(){} не отработает. Поэтому лучше всего сохранять значение сразу после его изменения.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть такая проблема: когда делаю построчный парсингtxt файла при помощи рег
Как можно передать количество параметров, которое может каждый раз меняться в sql запрос? Мне нужно следующий запрос оформить для всевозможного...
Очень нужно разобраться с тем как работает ComboBox в таблице DataGrid на WPFМне важно чтобы было грамотно разъяснено и правильно реализовано